嗨,目前Nagios从nagios@server.domain.com发送通知,我该如何配置它?谢谢
嗨,目前Nagios从nagios@server.domain.com发送通知,我该如何配置它?谢谢
Answers:
在默认的Nagios安装中,它也在host-notify-by-mail
或service-notify-by-mail
命令中定义,您可以在中找到commands.cfg
。默认值是这样的:
/bin/echo -e "$NOTIFICATIONTYPE$ - Service notification for $SERVICEDESC$ from host $HOSTNAME$ - $HOSTALIAS$\n$SERVICEDESC$: $SERVICEOUTPUT$\n" | /bin/mail -s '$NOTIFICATIONTYPE$/$SERVICESTATE$ - $HOSTNAME$/$SERVICEDESC$' $CONTACTEMAIL$
因此,只需-r sender@address
在mail命令中添加一个选项,该选项便会起作用。
/bin/mail
在-s
无法使用“--r nagios@domain.com”解决方案。原来,“-”是sendmail的选项之后。查看sendmail选项时,它应该是“ -fnagios @ domain”。注意-f和nagios@domain.com之间没有空格。
所以下面的工作了:
command_line /usr/bin/printf "%b" "Notification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTNAME$\Address: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$LONGSERVICEOUTPUT$" | /bin/mail -s "$SERVICESTATE$ - Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$ -- -fnagios@domain.com
我可以通过将命令更改为简单的方式来做到这一点:
command_line /usr/bin/printf "%b" "Notification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTNAME$\Address: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$LONGSERVICEOUTPUT$" | /bin/mail -s "$SERVICESTATE$ - Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$ -- -r $ADMINEMAIL$
魔术是“--r”部分。
在您的nagios.cfg中设置了ADMINEMAIL,但可以是“发件人”地址的任何电子邮件地址。
以上都不适用于当前版本的Nagios和/或Postfix。需要添加到文件“ commands.cfg”中的Nagios“主机通过邮件发送通知”或“服务通过邮件发送通知”命令的标志,内容如下:
-a "From: john.doe@uzh.ch"
请注意,引号是必不可少的!
这在 etc/nagios3/conf.d/contacts_nagios2.cfg
您可以使用电子邮件和组定义用户。您还可以为不同的目的配置不同的组-例如,用于http警报的web_admin,用于主机警报的admin等。
对于bsd-mailx
我的/usr/bin/mail
命令所链接到的,似乎没有任何作用,因此我使用了/usr/sbin/sendmail
(由postfix提供)如下:
command_line /usr/bin/printf "%b" "Subject:** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **\n\n**** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/sbin/sendmail -r "nagios@example.com" $CONTACTEMAIL$
有sendmail
两件事要考虑:
-r
指定的返回路径(从地址)-s
主题。相反,请在Subject:
邮件标头中添加printf
两个换行符\n\n