我在一台服务器上使用logstash,在另一台服务器上使用logstash-forwarder来发送日志文件。通过logstash-forwarder发送文件的服务器正在处理大量日志(大约每10分钟400,000个)。运行了大约2天后,logstash-forwarder停止工作,我必须重新启动它。我能做些什么来解决这个问题呢?
发布于 2014-10-29 18:44:44
这主要是由您转发的日志文件的日志轮换引起的。下面是发生在我身上的相同示例: 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 / elastic search,这样它就可以自己监控它,您可以看到它在哪里停止!
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
https://stackoverflow.com/questions/23739748
复制相似问题