我需要运行一个shell脚本,如果一个服务可以与monit,链接到我的其他监控系统(nagios)。
基本上我需要实现的是在服务重启时发出警报,当服务正常时发出另一个警报。
我已经尝试了以下没有任何运气:
if 1 restarts within 1 cycles then exec "<send WARNING alert here>" if 0 restarts within 5 cycles then exec "<send OK alert here>"
以上抱怨“错误:在行动比率陈述中不允许使用零或负值”“确定”“
if 1 restarts within 1 cycles then exec "<send WARNING alert here>" else if succeeded for 5 cycles then exec "<send OK alert here>"
上面抱怨的“其他”…我相信“如果X重新启动”不支持“其他”
任何build议来实现这一目标?
既然你说monit正在进入NAGIOS,那么为什么不用NAGIOS来做繁重的工作(即决定和发送通知)呢? 如果monit监视重新启动,则可以使用send_nsca通知NAGIOS重新启动。
NAGIOS反过来可以接受这种被动服务,被devise为通知一个单一的警报,但也定义了一个新鲜度testing,如果它听不到任何一段时间(在这里,60分钟),它会调用一个脚本返回“0 OK”,所以会在重新开始通知后通知“OK”。
define service{ use <standard template> host_name foo service_description bar active_checks_enabled 0 passive_checks_enabled 1 check_command no-restarts-ok check_freshness 1 max_check_attempts 1 normal_check_interval 60 }
和
define command{ command_name no-restarts-ok command_line $USER1$/check_dummy 0 OK }