验证 cronjob 是否在失败时通过 Nagios 通知执行的最佳方法?

验证 cronjob 是否在失败时通过 Nagios 通知执行的最佳方法?

我有一个每天早上运行的 cron 作业,成功运行时会生成一个输出文件。我希望有一个后续流程来验证作业是否正确执行,如果没有执行,则触发 Nagios 警报。

我觉得我可以使用 Nagios check_file_age 服务检查来实现这一点,通过仔细构建服务定义中的 check_interval 和 check_period 将检查限制为每天早上只发生一次,但我想知道是否有更简单的方法?

答案1

我想到了一些选择:

  1. 使用被动检查结果让验证脚本告诉 Nagios 发出警报,如果您想知道验证脚本是否不运行,则设置一个略大于 24 小时的新鲜度间隔,并让主动检查命令始终处于关键状态;或者
  2. 让 cron 作业本身在成功完成时提交 OK 被动检查结果,但在失败时不执行任何操作。然后,再次使用自动关键主动检查命令检查新鲜度,以便在一切不顺利时发出警报。

答案2

可以考虑让 cronjob 向日志输出错误代码,然后让 nagios 查看日志。如果 cronjob 报告错误,那就好了。或者,更简单但不太精确的是,让 cronjob 脚本的最后一行写入日志文件。让 nagios 检查日志文件的修改日期。如果超过 25 小时,则发出警报。

相关内容