Nagios 4;需要一种方法来查看服务的历史记录

Nagios 4;需要一种方法来查看服务的历史记录

我需要在 nagios 中找出某项服务的历史记录。因此我点击了该服务,然后点击“查看此服务的历史记录”,但只收到一条错误消息,提示“在当前日志文件中未找到此服务的历史记录信息”。我查看了 /usr/local/nagios/var 中的日志文件,找到了 nagios.log,但该文件每天轮换一次,这似乎很合理。该目录中还有许多其他临时文件,其名称格式为 nagios.tmp[0-9a-z]{6},我推测这些文件是其他日期的滚动日志,但它们的格式不同,不太合适。我认为 nagios 只查看第一个日志文件,然后就放弃了。

那么,如何在保持日志轮换的同时通过 Web 界面查看整个历史记录?

答案1

我建议运行类似下面的操作(您可能需要调整您实际 grep 的内容,以使搜索更具限制性,和/或在第一个 grep 之后通过管道传输到第二个 grep,在数字/-n排序之前进一步选择行):

grep -rni "HOST;SERVICE" /usr/local/nagios/var | sort -n | perl -pe 's/(\d+)/localtime($1)/e' | gzip > /tmp/myservice.gz

此命令将:

  • 递归地通过 grep 查找下面的任何/usr/local/nagios/var字符串 ( HOST;SERVICE)
  • 按数字顺序对输出进行排序:假设使用 UNIX 时间戳,这意味着无论文件 grep:d 的顺序如何,输出都将按顺序排列
  • 使用 perl 将所有 unix 时间戳转换为人类可读的格式(本地时间)
  • 压缩输出以/tmp/myservice.gz供检查zless

此命令可能会花费很长时间,因此2019*如果您希望限制范围,您可以试验实际 grep 的文件(也许),和/或您也可以使用正则表达式通过 UNIX 时间戳进行 grep。

相关内容