Ubuntu logstash安装后100%的CPU使用率

Ubuntu logstash安装后100%的CPU使用率,ubuntu,logstash,Ubuntu,Logstash,我按照教程在我的Ubuntu服务器上安装了一个软件栈Logstash/ES/Kibana。我更改了logstash配置,以便在尝试发送日志之前在本地测试所有内容。因此,我有一个运行ES/Kibana和Logstash的单节点,配置如下: input { file { path => "/var/log/syslog" type => "syslog" } } output { elasticsearch { host => localhost } }

我按照教程在我的Ubuntu服务器上安装了一个软件栈Logstash/ES/Kibana。我更改了logstash配置,以便在尝试发送日志之前在本地测试所有内容。因此,我有一个运行ES/Kibana和Logstash的单节点,配置如下:

input {
  file {
    path => "/var/log/syslog"
    type => "syslog"
  }
}
output {
  elasticsearch { host => localhost }
}
从我在Kibana上看到的情况来看,一切都正常工作,但我有一个消耗100%cpu的后台进程。Top告诉我这是一个在logstash用户下运行的java作业
sudo服务日志存储停止
不会停止进程运行。我还尝试删除web服务跟踪,但没有成功。
我真的不知道从那里去哪里搜索。非常感谢您的帮助。

您可以使用
skill-u logstash
终止日志存储进程。在前台运行logstash,增加详细度

如果(暂时)将输出更改为标准输出,您会注意到什么

请注意,如果您可能与其他节点通信;说
host=>localhost
并不意味着你只需要与端口
9300
进行通信(我建议在
lo
eth0
上使用
tcpdump
进行测试)(或者任何合适的方法)。因此,检查你的防火墙,或者暂时关闭防火墙

还请注意,
localhost
可能会给您一个IPv6结果;您可能会说
127.0.0.0

elasticsearch输出的文档可以在

你没有说你是否在使用嵌入式elasticsearch;默认值是false,所以我猜你不是

我确实记得在我自己的部署中有一个问题,logstash和elasticsearch在同一个主机上,并且端口9300发生冲突;我通过让logstash使用端口
9301
(bind_port)解决了这个问题

我建议您也应该设置“集群”。默认的“协议”将是“节点”,这意味着它将尝试成为集群的一部分(虽然不是数据节点),您可以尝试将其更改为“传输”或
http
,并观察行为更改

我发现在开始工作时仔细查看网络流量非常有用,以便仔细验证行为


FWIW,我发现“日志记录簿”非常值得(而且便宜)。

数字海洋的教程在Kibana前面使用nginx并在端口80上侦听。日志记录提供了日志记录web,也希望侦听端口80

由于Ubuntu使用upstart,试图杀死java进程将不会成功,因为它们将根据
/etc/init/logstash*.conf
不断重新启动。CPU使用率高的原因是logstash在启动时占用大量CPU时间,几秒钟后应该会平静下来,但因为无法绑定到端口80和不断地重生,它看起来好像在不断地使用资源

如果您遇到与我相同的问题,请查看logstash的PID,您会注意到它们发生了变化。您还应该在
/var/log/logstash/logstash.log
末尾看到
地址已在使用-绑定-地址已在使用

所以,我们只需要禁用logstash web。在Ubuntu上,这可以通过以下方式完成:

$echo manual | sudo tee/etc/init/logstash-web.override

要在不重新启动的情况下停止logstash web,我们使用

$sudo stop logstash web


很明显,我并没有注意到OP的链接中有相同的禁用logstash web的说明。对此我很抱歉。也许我的回答仍然可以帮助调试这个问题。我尝试过,但并没有成功。它正在杀死我的系统,cpu的四个核心几乎都在100%使用。最后,我不得不卸载logstash。@A你们注意到了吗PIDs的行为,并在日志中获得相同的消息?