我知道我的手机提供商的短信网关,所以我可以向其发送电子邮件。
我正在寻找 contacts.cfg 和 command.cfg 中特定于移动设备的条目示例。
答案1
在contacts_nagios2.cfg
:
define contactgroup{
contactgroup_name admins
alias Nagios Administrators
members user
}
define contact{
contact_name name
alias name
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,r
service_notification_commands notify-by-sms
host_notification_commands host-notify-by-sms
email mail
pager MOBILENUMBER
}
并且在commands.cfg
define command{
command_name notify-by-sms
command_line script-to-sms-service
}
define command{
command_name host-notify-by-sms
command_line script-to-sms-service
}
答案2
使用第三方 SMS 服务,或者(更好的是)使用 GSM 设备(正如 Craig 建议的那样),将会更加可靠/稳定。
如果您坚持使用提供商的电子邮件->短信网关,则可以使用精简的联系命令,如下所示:
define command {
command_name notify-host-by-sms
command_line /usr/bin/printf "%b" "$NOTIFICATIONTYPE$\n$HOSTNAME$ is $HOSTSTATE$\n$HOSTOUTPUT$\n" | /usr/bin/mail -s "[Nagios] ($HOSTNAME$ $HOSTSTATE$)" $CONTACTEMAIL$
}
define command {
command_name notify-service-by-sms
command_line /usr/bin/printf "%b" "$NOTIFICATIONTYPE$\n$SERVICEDESC$ ($HOSTNAME$) is $SERVICESTATE$\n$SERVICEOUTPUT$" | /usr/bin/mail -s "[Nagios] ($HOSTNAME$/$SERVICEDESC$)" $CONTACTEMAIL$
如果其中任何一个太长,您可以根据需要在多个位置删除或替换不同的宏。请参阅宏列表了解通知命令中可用的内容的信息。
答案3
第一个答案将满足您的需要。
您可以通过短信服务发送短信,通过手机提供商的电子邮件将其发送到短信地址,或者使用本地短信服务器。我们采用的是后者。此链接将为您提供有关如何操作的详细信息:
http://www.linuxjournal.com/magazine/using-sms-server-provide-robust-alerting-service-nagios
它已经运行了 1.5 年。非常可靠,并且不依赖于电子邮件服务器或第三方服务。