什么是在事情发生时通知您的方法?#34;不要"发生?

时间:2015-06-27 05:23:00

标签: php linux

我有很多不同的脚本和相当多的cron作业,可以在一天内触发不同的事情。很多时候是从外部API下载数据或定期运行某种类型的脚本。

然而,如果这些事情没有发生,我无法找到一种简单的方法来通知我。例如,最近,我的一台服务器上发生了一些导致所有cron作业停止运行的事情。我花了几天时间才开始抱怨事情没有成功。您使用哪些方法来确保定期发生事情?

3 个答案:

答案 0 :(得分:2)

Nagios支持一种称为"被动检查"的检查。通常,Nagios使用Active Checks直接监视诸如服务器ping或服务是否正在运行之类的事情。即你ping服务器,或每五分钟询问一次服务的状态。如果没有响应或底层的nagios检查脚本报告失败,那么Nagios最终会将该主机或服务标记为" Hard Down"。然后,根据您的通知和警报规则,您会收到有关某些内容被破坏的警报。

检查cronjobs是否运行等一些检查有点棘手,因为如果它运行,你不能直接询问cron作业。我想你可以写一个脚本来搜索你的cron日志,看看cronjob是否在一定的时间内运行,但它可能变得复杂。

但是,Nagios可以配置为"被动"检查" UP"由外部服务在特定时间段内提交给Nagios的状态。因此,不是Nagios直接轮询状态,您可以扭转局面,让脚本向Nagios提交成功/失败状态。

所以说你有一个应该每24小时运行一次的任务。任务完成后,它会直接向Nagios提交结果。在Nagios上,您可以配置被动检查以确保此结果显示在24小时的窗口内。如果它没有(例如crond崩溃或删除了cron作业条目),那么Nagios会提醒你它没有结果。

相关的Nagios文档:

  

http://nagios.sourceforge.net/docs/3_0/passivechecks.html

本文展示了一个有效的例子:

  

http://www.admin-magazine.com/Archive/2014/22/Nagios-Passive-Checks

所有这一切的关键是被动服务检查freshness_threshold,即如果Nagios在该时间段内没有看到新结果,那么它会发出警报。

答案 1 :(得分:0)

这些情况通常是使用NagiosMunin等服务器监控工具的情况。这些工具可以让您监控服务器的正常运行时间,在出现异常情况时提醒您(并允许您采取措施)。

如果您有任何疑问,请与我们联系!

答案 2 :(得分:0)

尝试在https://www.setcronjob.com/设置帐户 - 然后您的crons独立于您的服务器运行,您可以管理多台服务器上的crons,获得更精细的时间控制等等。