我正在一台服务器上使用logstash,在另一台服务器上使用logstash转发器来发送日志文件。通过logstash-forwarder发送文件的服务器正在处理大量日志(每10分钟约40万个日志)。运行logsash-forwarder约2天后,它停止工作,我必须重新启动它。我该怎么做才能解决此问题?
最佳答案
这主要是由您转发的日志文件的日志轮换引起的。
这是发生在我身上的相同示例: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)您可以获取它以将syslog转发到logstash / flex 搜索,以便对其进行自我监控,并可以看到停止的地方!
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
关于logging - Logstash-forwarder运行几天后停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23739748/