定义Nagios从其发送电子邮件的电子邮件地址


16

嗨,目前Nagios从nagios@server.domain.com发送通知,我该如何配置它?谢谢

nagios 

Answers:


14

在默认的Nagios安装中,它也在host-notify-by-mailservice-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命令中添加一个选项,该选项便会起作用。


那就是我所做的,而且效果很好。由于我们的自动售票程序,实际上是通过不同的帐户发出不同的警报。
2009年

1
/bin/mail-s
jgritty

@RainyRat-您是否有可能编辑答案以将-r放置为第一个参数?-正如其他答案所暗示的,然后很乐意赞成您的答案:o)
Dazed

3

无法使用“--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


2

对我有用的是-r $ADMINEMAIL$在之前-s(紧随在之后/bin/mail)添加,当然$ADMINEMAIL$必须nagios.cfg使用admin_email设置来设置。


1

我可以通过将命令更改为简单的方式来做到这一点:

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,但可以是“发件人”地址的任何电子邮件地址。


1

以上都不适用于当前版本的Nagios和/或Postfix。需要添加到文件“ commands.cfg”中的Nagios“主机通过邮件发送通知”或“服务通过邮件发送通知”命令的标志,内容如下:

-a "From: john.doe@uzh.ch"

请注意,引号是必不可少的!


这将更改“发件人”地址,但不会更改“返回路径”地址。您可能要同时更改两者。
Christopher K.19年

0

这在 etc/nagios3/conf.d/contacts_nagios2.cfg

您可以使用电子邮件和组定义用户。您还可以为不同的目的配置不同的组-例如,用于http警报的web_admin,用于主机警报的admin等。


在联系人配置中,可以配置已发送邮件的收件人,而不是发件人地址。这个问题是关于如何更改发件人地址(“它发送邮件来自 ”)。
Christopher K.19年

0

对于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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.