尝试从nagios发送电子邮件

我对Nagios很新。 我正在尝试发送电子邮件提醒。 但是,这似乎并没有工作。

但在我的日志中,我可以看到这个:

SERVICE ALERT: Appserver;Tmp directory;CRITICAL;HARD;1; 

在通过电子邮件生成主机通知的情况下,只有服务警报不起作用。 而当我看着sendEmail日志,我可以看到这个:

 Sep 14 12:38:39 xxxx sendEmail[23005]: ERROR => You must specify a 'from' field! Try --help. Sep 14 12:39:39 xxxxx sendEmail[23129]: ERROR => You must specify a 'from' field! Try --help. Sep 14 12:40:39 xxxxx sendEmail[23233]: ERROR => You must specify a 'from' field! Try --help. 

我犯了什么错误?

提前致谢。

您没有指定您在EC2实例上使用的发行版,但是Ubuntu Lucid框中的notify-host-by-email命令定义如下所示:

 define command{ command_name notify-host-by-email command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/bin/mail -s "$HOSTSTATE$ - $HOSTNAME$ ping" -r "Nagios Alert <[email protected]>" $CONTACTEMAIL$ } 

并通过电子邮件通知服务如下所示:

 define command{ command_name notify-service-by-email command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" | /usr/bin/mail -s "$SERVICESTATE$ $HOSTALIAS$/$SERVICEDESC$" -r "Nagios Alert <[email protected]>" $CONTACTEMAIL$ } 

那么,Nagios基本上做的是将格式化的消息体传递给/usr/bin/mail命令,该命令有一堆命令行选项来指定Subject,Reply-to等。特别是,我明确地设置From:使用“-r”选项,因为我希望这样的通知来自我们的通用“系统”邮件列表。

您可能已经build立了自己的电子邮件通知命令。 看看你的系统mail命令的手册页,看看你可以使用什么选项来指定通常的邮件标题。

您必须查找用于发送通知的命令定义。 在我的情况下,我所有的通知命令都在nagios / etc / misccommands.cfg中 。 该定义中的某处是运行发送通知电子邮件的命令。 你必须解决这个问题。 我是一个Solaris的人,不熟悉sendEmail命令,但手册页应该给你提供线索。 也许比较主机通知定义和服务通知定义并寻找差异。