繁体   English   中英

logstash安装后100%的CPU使用率

[英]100% CPU usage after logstash install

我按照教程在我的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 service logstash stop不会阻止进程运行。 我也试过以下删除Web服务这个 ,没有成功。 我真的不知道从哪里搜索。 任何帮助是极大的赞赏。

Digital Ocean的教程在Kibana前使用nginx并侦听端口80.logstash附带了logstash-web ,它也想收听端口80。

由于Ubuntu使用upstart ,因此尝试杀死java进程将无法成功,因为它们将根据/etc/init/logstash*.conf继续重新生成。 高CPU使用率来自于logstash在启动时使用大量CPU时间并且应该在几秒后冷静下来这一事实,但由于它死于无法绑定到端口80并保持重生,看起来好像它一直在使用资源。

如果您遇到与我相同的问题,请查看logstashPID ,您会发现它们发生了变化。 您还应该看到Address already in use - bind - Address already in use /var/log/logstash/logstash.log末尾Address already in use - bind - Address already in use

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

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

要停止logstash-web而不重新启动,我们使用

$ sudo stop logstash-web

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

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

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

另请注意, localhost可能会为您提供IPv6结果; 你可能想说127.0.0.0而不是。

可以在logstash文档中看到elasticsearch输出的文档

你没有说你是否使用嵌入式弹性搜索; 默认为false,所以我猜你不是。

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

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

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

FWIW,我发现'Logstash Book'非常值得(而且便宜)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM