作者:三千仇人-奈我何 | 来源:互联网 | 2023-05-19 12:46
IfollowedthistutorialtoinstallasoftwarestackLogstashESKibanaonmyUbuntuserver.Ichang
I followed this tutorial to install a software stack Logstash/ES/Kibana on my Ubuntu server. I changed logstash configuration to test everything locally before trying to ship logs. So I have a single node running ES/Kibana and Logstash configured as follow :
我根据本教程在Ubuntu服务器上安装了一个软件堆栈日志/ES/Kibana。在尝试发送日志之前,我更改了loghide配置以在本地测试所有内容。因此,我有一个运行ES/Kibana和loghide的节点,配置如下:
input {
file {
path => "/var/log/syslog"
type => "syslog"
}
}
output {
elasticsearch { host => localhost }
}
Everything is working as intended from what I can see on Kibana, but I have a background process that eats 100% cpu. Top tells me it's a job in java running under logstash user. sudo service logstash stop
does not stop the process from running. I've also tried to remove web service following this, without success. I don't really know where to search from there. Any help is greatly appreciated.
根据我在Kibana上看到的,一切都按照预期运行,但是我有一个消耗100% cpu的后台进程。Top告诉我这是一个运行在loghide用户下的java作业。sudo服务日志存储停止不会停止进程的运行。我也尝试删除web服务,但没有成功。我真的不知道从那里去找什么。非常感谢您的帮助。
2 个解决方案
0
You can kill the logstash processes using skill -u logstash
. Run logstash in the foreground with increased verbosity.
您可以使用技能-u日志隐藏来终止日志隐藏进程。在前景中运行日志隐藏,增加冗余度。
If you change (temporarily) the output to be just a stdout output, what do you notice?
如果您将输出(暂时)更改为仅输出stdout,您会注意到什么?
Note that if you'll likely get communication with other nodes; saying host => localhost
doesn't mean that you just get communication with port 9300
(I suggest testing with tcpdump
on the lo
and eth0
(or whatever is appropriate). So check your firewall, and perhaps take the firewall down temporarily.
注意,如果您可能与其他节点进行通信;说主机=> localhost并不意味着您只需要与端口9300进行通信(我建议在lo和eth0上使用tcpdump进行测试(或者任何合适的方法)。所以,检查你的防火墙,或者暂时关闭防火墙。
Also note that localhost
may be giving you a IPv6 result; you may like to say 127.0.0.0
instead.
还要注意,localhost可能会给你一个IPv6结果;你可能喜欢说127.0.0.0。
The documentation the elasticsearch output can be seen at logstash docs
弹性搜索输出的文档可以在loghide文档中看到
You don't say if you're using the embedded elasticsearch or not; the default is false, so I guess you are not.
你不会说你是否在使用嵌入的弹性搜索;默认是假的,所以我猜你不是。
I do recall having an issue in my own deployment where logstash and elasticsearch were present on the same host, and there was a collision for port 9300; I resolved that by having logstash use port 9301
(bind_port).
我记得在我自己的部署中有一个问题,在同一个主机上有logstack和弹力搜索,9300端口发生了碰撞;我通过让loghide使用端口9301 (bind_port)解决了这个问题。
I suggest that you should also set the 'cluster'. The default 'protocol' will be 'node', which means it will try to become part of the cluster (not a data-node though), you could trying changing this to 'transport' or http
and observe behavior change.
我建议您也应该设置“群集”。默认的“协议”将是“节点”,这意味着它将尝试成为集群的一部分(而不是数据节点),您可以尝试将其更改为“传输”或http并观察行为更改。
I found it very useful to look at the network traffic carefully when I was starting out in order to carefully validate the behavior.
我发现,在开始时仔细查看网络流量非常有用,以便仔细验证该行为。
FWIW, I found the 'Logstash Book' very worthwhile (and cheap).
FWIW,我发现“日志收藏书”非常有价值(也很便宜)。