我有Nagios检查服务状态并发送关于服务状态的SMS消息。
有些问题在夜间并不重要,宁愿晚上不要发送。
define timeperiod{ timeperiod_name non_work alias Non work hours sunday 00:00-24:00 monday 00:00-09:00,18:00-24:00 tuesday 00:00-09:00,18:00-24:00 wednesday 00:00-09:00,18:00-24:00 thursday 00:00-09:00,18:00-24:00 friday 00:00-09:00,18:00-24:00 saturday 00:00-24:00 }
但是,早上我希望所有的问题,而不是新的问题都会被发送。 我如何configuration?
或者nagios没有这个function?
有些问题在夜间并不重要
正如您所build议的那样,Nagios允许您configuration时间段,然后您可以将这些时间段应用于检查,通知,通知组和单个用户。 当然,如果您指定要执行检查,但没有发送通知,那么您将不会在电子邮件中看到问题, 但可以随时在Nagios网页中查看完整的警报历史logging 。 为什么不安排一个cron工作,在早上第一时间通过电子邮件向你发送警报? 例如
0 8 * * * wget -O /tmp/nagios.html -i /home/user/nagioslist; mail [email protected] </tmp/nagios.html
/ home / user / nagioslist包含如下内容:
http://example.com/nagios/cgi-bin/summary.cgi?report=1&displaytype=1 &timeperiod=last24hours&hostgroup=all&servicegroup=all&host=all&alerttypes=3 &statetypes=2&hoststates=7&servicestates=120&limit=1000
(这将显示最多24小时内检测到的1000个硬状态)
OTOH,你可以设置一个不同的通知脚本来运行你想推迟的通知,并把它们放在稍后发送的队列中(例如使用'at')。
或者,您可以设置MTA以特定间隔处理其传出的mailq – 与不同的电子邮件地址/不同的主题相结合,然后您可以根据收件人/主题/时间有效地优先/推迟邮件。
我不知道,如果nagios不按默认的做这个。 你只需要扭转你的通知时间周期,所以它只包括工作时间,而不是非工作时间。
这很容易testing:只需定义一个检查失败的默认情况下,相应设置的通知时间段,从当前时间开始几分钟后,看看你是否只有在这个时期才能得到消息。
如果这不起作用,你可以尝试在升级计划中玩弄,在晚上发送邮件,在工作时间内发送短信,在escalation_period声明的帮助下。