我有一个日志文件,其中应用程序记录了完成与其他子系统相关的几个操作所需的时间。我希望 Nagios(或其他)能够绘制并监控该日志文件中的时间。
有什么好方法可以解决这个问题?
我发现日志检查器插件可以在正则表达式上工作,但使用正则表达式进行数字比较似乎……不太稳定。
我可以修改程序,以便它以不同的方式记录时间。
谢谢
答案1
一般来说简单来说,Nagios 用于根据当前情况发出警报,而 cacti 之类的东西用于记录值并存储它们以供历史分析。Nagios 可以制作一些基本的趋势图,但与 cacti 相比就差远了。当您说想要“图表”时,这意味着高级历史图表/分析,这意味着 cacti。(或您选择的其他类似解决方案。)
话虽如此,我个人还是会选择一种方法,这种方法不一定最简单,但在未来可能是最有用的。这是一个两步过程。第一步是设计一种方法来从日志文件中提取值。第二步是将该值放入跟踪系统中。
对于第一步,我建议在存储日志文件的服务器上设置 net-snmp。编写一个脚本,或者找到一个已经写好的脚本,它可以从日志文件中提取您想要存储的值。然后,您可以自定义 snmpd 来为您运行此脚本,并使用您指定的自定义 OID 返回该值。
对于第二阶段,您将指示绘图工具 (cacti) 联系相关服务器,并查询特定的 OID,然后调用脚本并返回一个值。这将绘制到您的历史绘图解决方案中。
如果您谈论的是监控日志文件中最新条目的当前状态,那么您谈论的是 Nagios。如上所述,编写您自己的脚本,但此脚本将成为由 nrpe 调用的 Nagios 插件。
这种基于 snmp 的方法需要一些前期工作,但可以产生巨大的价值,因为您可以开始跟踪环境中的各种自定义值并将它们绘制成图表。
希望这可以帮助。
答案2
我认为你指的是http://exchange.nagios.org/directory/Plugins/Log-Files/check_logfiles/details。不管怎样,我用它来警告数值间隔,效果很好。不懂绘图。