我们正在使用 nagios-plugins 中的 check_log 来监控日志,但问题是,对于较大的日志文件,即使我们每小时轮换一次日志,该插件也会导致内存和 CPU 使用率大幅飙升。
这是因为 check_log 使用 diff 将日志文件的旧版本与当前版本进行比较。
问题是,如果不需要检查所有 check_log 替代方案的来源,是否有任何方案不使用 diff,而是例如遵循最后检查的行号并从那里开始检查?
答案1
检查日志文件插件就是您正在寻找的:
当发生这样的日志文件轮换时,check_logfiles 会检测到这种情况并分析存档日志文件的行,即使它是压缩的。
答案2
按计划检查日志文件不是一种非常有效的方法。虽然可以编写一个插件来跟踪文件中最后一个偏移的位置并处理旋转,但更简单的方法是针对日志文件运行过滤器守护程序 -有很多这样的工具可用的。
(您仍然可以使用 nagios 处理此类工具的输出以用于报告/跟踪目的)