首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nagios 4;需要一种查看服务历史的方法。

问Nagios 4;需要一种查看服务历史的方法。
EN

Server Fault用户
提问于 2019-04-01 10:20:45
回答 1查看 514关注 0票数 1

我需要找出nagios服务的历史记录。因此,我点击了服务,然后“查看此服务的历史记录”,但是只收到一个错误,上面写着“在当前日志文件中没有找到该服务的历史信息”。我查看了/usr/local/nagios/var中的日志文件,并找到了nagios.log,但该文件每天旋转一次,这似乎是合理的。该目录中还有许多其他的临时文件,其名称为nagios.tmp0-9a-z{6},我猜想这些文件是其他日子的滚动日志,但它们的格式不同,不太容易接受。我认为nagios只查看第一个日志文件,然后放弃。

那么,在维护日志旋转的同时,如何通过web界面查看整个历史呢?

EN

回答 1

Server Fault用户

发布于 2019-08-28 17:20:33

我建议运行类似以下内容(您可能希望调整实际grep的内容,以使搜索更具限制性,并/或在第一个在数字/-n排序之前进一步选择行的第二个grep之后,将其转换为第二个grep):

代码语言:javascript
复制
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检查

这个命令可能要花费很长的时间,所以如果您希望限制作用域,可以尝试实际使用grep (可能是2019*)的文件,并且/或者您也可以使用regex来通过UNIX时间戳来实现grep。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/960918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档