启用详细的调试后,我可以看到Nagios正在正确触发通知..这是我在Nagios.logs中看到的内容
[1430915423] SERVICE ALERT: test;Check node port;CRITICAL;HARD;4;Connection refused
[1430915423] SERVICE NOTIFICATION: abhishek;test;Check node port;CRITICAL;notify-service-by-email;Connection refused
[1430915423] SERVICE NOTIFICATION: root;test;Check node port;CRITICAL;notify-service-by-email;Connection refused
但是,我没有在指定的联系人处收到电子邮件。我正在使用SSMTP。它也可以正常工作..此命令有效 -
ssmtp abc@xxx.com
因此,这两个事情都可能发生 -
notify-service-by-email
不起作用或某些安全检查正在滤除此类电子邮件(当我从我的电子邮件地址发送电子邮件时,这不应该发生)..任何人都可以建议如何调试。?
编辑 - 这是我的 notify-service-by-email 命令 -
define command{
command_name notify-service-by-email
command_line /usr/bin/printf "%b" "***** Nagios *****nnNotification Type: $NOTIFICATIONTYPE$nnService: $SERVICEDESC$nHost: $HOSTALIAS$nAddress: $HOSTADDRESS$nState: $SERVICESTATE$nnDate/Time: $LONGDATETIME$nnAdditional Info:nn$SERVICEOUTPUT$n" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
}
终于找到了问题。
SSMTP正常工作。
ssmtp -s abcd@xxx.com
启用DEBUG
日志可以发现/etc/ssmtp/ssmtp.conf
没有足够的许可。
该文件归root
而不是nagios
用户
希望这对某人有帮助。