我已经在3.13(Ubuntu 14.04.2)的LXC容器中设置了ELK,我认为它配置正确(日志中没有错误或其他)。话虽这么说,当我尝试启动LogStash时,我收到以下错误
/etc/init.d/logstash: 55: ulimit: error setting limit (Operation not permitted)
是的,当我运行命令时,我是root用户。运行service start logstash
尽管有错误,但我发现logstash started.
之后。但是,一个快速的netstat清楚地表明Logstash没有倾听(是的,我已经尝试过将日志推到它上面但无济于事)...
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 6523/nginx
tcp6 0 0 :::9200 :::* LISTEN 5890/java
tcp6 0 0 :::9300 :::* LISTEN 5890/java
udp 0 0 0.0.0.0:68 0.0.0.0:* 303/dhclient
udp 0 0 0.0.0.0:44889 0.0.0.0:* 303/dhclient
udp6 0 0 :::2274 :::* 303/dhclient
udp6 0 0 :::54328 :::* 5890/java
关于如何解决这个问题的想法?我可以合理地确定它因ulimit
呕吐而成为LXC问题,但我不确定如何补救。
编辑:进一步阅读告诉我,这确实是一个极端问题。我已经超过我的用户限制超过16384(logstash init想要的),但是我在重新启动容器后仍然遇到问题。我的/etc/security/limits.conf
附加了以下行
user soft nofile 24576
user hard nofile 24576
答案 0 :(得分:0)
我知道这是一个较老的问题,但任何有同样问题的人都可能会像我一样在这里结束。
我的答案就在这里:From terminal in ubuntu, change ulimit for file descriptor number
具体来说,确保/etc/pam.d/su包含该行(我只需要在Ubuntu 14.04中取消注释):
session required pam_limits.so
然后退出并登录并且它有效。