Logstash-forwarder在运行几天后停止运行

时间:2014-05-19 13:58:19

标签: logging elasticsearch logstash

我在一台服务器上使用logstash,在另一台服务器上使用logstash-forwarder来发送日志文件。通过logstash-forwarder发送文件的服务器正在处理大量日志(每10分钟约400,000个)。运行约2天后,logstash-forwarder停止工作,我必须重新启动它。我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:0)

这主要是由您要转发的日志文件的日志轮换引起的。 这是发生在我身上的相同示例:syslog正在重新编码事件,然后在00:01停止,

Oct 28 23:59:37 vhcdm5a logstash-forwarder[21246]: 2014/10/28 23:59:37.086385 Registrar received 6 events
Oct 28 23:59:44 vhcdm5a logstash-forwarder[21246]: 2014/10/28 23:59:44.586154 Registrar received 5 events
Oct 28 23:59:49 vhcdm5a logstash-forwarder[21246]: 2014/10/28 23:59:49.586503 Registrar received 3 events
Oct 28 23:59:54 vhcdm5a logstash-forwarder[21246]: 2014/10/28 23:59:54.586481 Registrar received 3 events
Oct 29 00:00:01 vhcdm5a CRON[23334]: (graphite) CMD (/home/graphite/scripts/execute_graphite_scripts.sh 1)
Oct 29 00:00:02 vhcdm5a logstash-forwarder[21246]: 2014/10/29 00:00:02.085533 Registrar received 3 events
Oct 29 00:01:01 vhcdm5a CRON[23787]: (graphite) CMD (/home/graphite/scripts/execute_graphite_scripts.sh 1)
Oct 29 00:02:01 vhcdm5a CRON[24338]: (graphite) CMD (/home/graphite/scripts/execute_graphite_scripts.sh 1)
Oct 29 00:03:01 vhcdm5a CRON[24794]: (graphite) CMD (/home/graphite/scripts/execute_graphite_scripts.sh 1)
Oct 29 00:04:01 vhcdm5a CRON[25260]: (graphite) CMD (/home/graphite/scripts/execute_graphite_scripts.sh 1)
Oct 29 00:05:01 vhcdm5a CRON[25721]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
Oct 29 00:05:01 vhcdm5a CRON[25723]: (graphite) CMD (/home/graphite/scripts/execute_graphite_scripts.sh 1)
Oct 29 00:06:01 vhcdm5a CRON[26178]: (graphite) CMD (/home/graphite/scripts/execute_graphite_scripts.sh 1)
Oct 29 00:07:01 vhcdm5a CRON[26660]: (graphite) CMD (/home/graphite/scripts/execute_graphite_scripts.sh 1)
Oct 29 00:08:01 vhcdm5a CRON[27126]: (graphite) CMD (/home/graphite/scripts/execute_graphite_scripts.sh 1)

你可以大致了解什么时候停止

a)你可以让它将系统日志转发到logstash / elastic搜索,以便它自己监控它,你可以看到它停在哪里!

b)类似tail -1000 syslog.1 | grep logstash的内容会在停止解析日志时向您显示,然后找到最后一个事件grep -C 10 "00:00:02.085533" syslog.1,这样您至少知道它何时停止。

在我的情况下,我们在00:00:00进行日志轮换,因此排队很顺利。你的一些选择是:

1)每12小时或者其他什么时候放一份工作来重新启动货运代理。

2)修改logrotate策略,使其更频繁地旋转,例如,如果使用log4j,则可以使用yyyy-MM-dd-a每12小时轮换一次。

你可以在这里阅读更多关于人民的考验和磨难 https://github.com/elasticsearch/logstash-forwarder/issues/162