我正在尝试解决的问题: - 监控日志文件的年龄,如果它超过某个阈值,则重新启动一堆相关服务。
目前的解决方案: - 这相当简单,我们可以通过事件处理程序和标准文件年龄插件来实现这一点。
这个问题的棘手之处在于,当服务重新启动时,日志会获得一个新条目。在这种情况下,我一看到故障(第一个软状态,即不等待重新检查),就会通过事件处理程序重新启动服务。现在,最初的检查是查看日志文件是否超过 90 分钟,重新检查间隔为 15 分钟。问题是,在第二次重新检查时,文件年龄将小于 90 分钟,因此不会发送通知。
我的问题是:- 有没有办法在事件处理程序中间更改检查参数?这意味着我可以将检查的阈值降低到 10 分钟以进行第二次重新检查吗?- 有没有比让事件处理程序脚本休眠一段时间并手动重新检查(即通过 bash 脚本)文件年龄更简单的解决方案?
进一步阐明问题的时间表(假设我们正在监视文件 X 以查看其年龄是否大于 90 分钟,并且失败时的重新检查时间为 15 分钟):
晚上 8:27 - X 的最后一次修改 晚上 10:00 - 检查失败并触发事件处理程序 晚上 10:00 - 服务重新启动 晚上 10:00 - 由于服务重新启动,X 得到更新 晚上 10:15 - X 通过重新检查,因为文件的使用期限少于 90 分钟。
理想情况下,晚上 10:15 的检查应该检查文件是否少于 10 分钟,以查看日志文件是否实际已更新。
任何帮助都将不胜感激!
答案1
是的,您可以使用外部命令执行此操作,如自适应监控文档。
您让事件处理程序提交外部命令来修改检查命令和/或其参数。确保最终将其改回原样(例如,当发送通知时)。