警报消息的默认格式是:
**恢复主机警报:服务器已启动** ***** Nagios ***** 通知types:RECOVERY 主机:服务器 状态:UP 地址:server.ru 信息:PING OK - 分组丢失= 0%,RTA = 26.00 ms date/时间:星期四8月13日17:08:16 MSD 2009
我想用最less的字母来获取最大的信息 首先,能够从SMS获取信息。 其次,要在90%的情况下只读取电子邮件的标题。
例如,以前的消息可以是“ H: server is UP ”,其中H代表Host Alert 。 如果这个服务器closures了,我想得到这样一个信息: [!] H: server is DOWN 。
而不是消息,“交换服务器上的使用率是关键”我想得到“[:服务器/交换使用率是> 50%”其中50是从check_swap的nagiosconfiguration,而不是硬编码到消息。
如果“路由器/ wan2是关键”,我想看到“ADSL通道closures”。
所以,总结一下,我想分别为每个服务及其状态定制消息,并能够在文本中使用插件参数。
我怎样才能做到这一点?
Nagios可以configuration为通过各种方式和各种格式发送通知。 如果您需要个性化,请参阅您的commands.cfg。
这是一个例子,向您展示如何使用gnokii通过短信接收短消息:
define command{ command_name notify-host-by-sms command_line /usr/bin/printf "%.120s" "$HOSTALIAS$ is $HOSTSTATE$" |/usr/local/bin/gnokii --sendsms $CONTACTPAGER$ -r }
define command{ command_name notify-host-by-sms command_line /usr/bin/printf "%.120s" "$HOSTALIAS$ is $HOSTSTATE$" |/usr/local/bin/gnokii --sendsms $CONTACTPAGER$ -r }
定义命令{
command_name通知服务的短信
command_line / usr / bin / printf“%.120s”“$ HOSTALIAS $ / $ SERVICEDESC $ is $ SERVICESTATE $”| / usr / local / bin / gnokii –sendsms $ CONTACTPAGER $ -r
}
输出是这样的“主机名是”
有几个Nagios的集合插件,除了允许您指定更短的警报外,还会将多个警报合并到一个页面中,以便在大量事件同时发生时不会分页200次。
两个好的是:
警报看起来像这样从南非(但可以定制当然)
CRITICAL pages: 2 hostname.example.com - WWW is CRITICAL - Thu Aug 13 11:00:00 EDT 2009 | hostname.example.com - SSL is CRITICAL - Thu Aug 13 11:00:01 EDT 2009
另外,如果你需要更多的灵活性,可以考虑在你和nagios之间放置一个bash脚本。 这可以让您发送更加灵活的邮件,例如,您不希望将恢复电子邮件发送到自动票证创build者。