如何最好地监控logstash?


8

我已经在邮件列表上看到过几次这个问题,但是没有令人满意的答案。

如何最好地监视管道是否阻塞?客户端-> logstash-> elasticsearch。

Logstash尤其是elasticsearch容易出现资源匮乏的情况。他们俩都擅长从上次停站的地方接站,但是人们究竟是如何观看他们的观看者的呢?

欢迎意见。


Answers:


2

我个人实际上检查过Redis是否仍在LS + ES上游的中央日志记录主机上出队。

即:redis-cli llen logstash小于某个固定数字。

虽然这可能并不表示日志根本没有出现在redis中,但是我想也可以进行检查。

诸如检查之类的东西redis-cli info | grep total_commands_processed不断增加,也许吧?


随着更多日志的推出,这种情况会不会继续增加?我们将需要LPOP的总数。或当LLEN太大时发出警告?
Dan Garthwaite 2014年

是的 我的措辞很差,我检查llen小于某个数字,并警告是否不是。
Sirex 2014年

total_commands_processed如果不是从logstash轮询而不是从info命令本身进行轮询,是否总不会增加?
Dan Garthwaite 2014年

2

我在环境中使用zabbix,但我想这种方法也可以在其他设置中使用。我已经配置了允许zabbix使用的以下命令:

UserParameter=elasticsearch.commits,/usr/bin/curl -s 'localhost:9200/_cat/count?v' | /bin/sed -n '2p' | /bin/awk '{print $3}'

这将返回已提交的Elasticsearch记录总数。因此,我将这个值除以自上次采样以来的秒数(我每分钟检查一次),如果该数字降至任意限制以下,我可以发出警告。我还使用zabbix来检查logstash PID是否已死,并发出警报,并运行以下命令:

UserParameter=elasticsearch.health,/usr/bin/curl -s 'http://localhost:9200/_cluster/health?pretty=true' | /bin/sed -n '3p' | /bin/awk -F'\"' '{print $4}' | /bin/sed s/yellow/0/ | /bin/sed s/green/0/ | /bin/sed s/red/1/

如果群集运行状况变为红色(黄色和绿色都可以),则将返回1,我也可以发出警报。


0

检查以确保最终端点(例如,elasticsearch)的每秒日志数量高于某个基线。

也就是说,进行端到端检查,如果最终结果正确运行,则您知道管道中的所有步骤都正确运行。

如果您经常遇到问题,或者需要更好的自省,请按照上面的建议开始对管道的每个部分进行检测,例如redis。


0

我们使用几种方法:

  1. monit的,听的弹性和Logstash端口和重新启动它们
  2. 对于某些情况发生的不好的情况,并且一切都可以从监视的角度进行,但是日志没有被使用/存储,有一个简单的脚本可以每小时检查一次活动索引,并在上一小时文档数没有变化的情况下发出警报。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.