Nagios 在服务器宕机时发送邮件

Nagios 在服务器宕机时发送邮件

我正在使用 nagios 3.06 来监控服务器。当某个服务处于关键状态时,它会发送邮件,但是当某个服务器宕机时,不会发送任何邮件。即使所有服务都处于关键状态,也不会发送任何邮件。

我有以下配置:

define command {
    command_name notify-host-by-email
    command_line python /etc/nagios3/send_mail.py "[Nagios] $HOSTNAME$" "******** Nagios ****\n\n Host: $HOSTNAME$\n Description: the server is down"
}

define command{
    command_name notify-service-by-email
    command_line python /etc/nagios3/send_mail.py "[Nagios] $HOSTNAME$: $SERVICEDESC$ ($NOTIFICATIONTYPE$)" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\nDate/Time: $LONGDATETIME$\nAdditional Info:$SERVICEOUTPUT$"
}

该 python 脚本是发送邮件的脚本。如果我从命令行执行它,它会起作用,但它不会从 nagios 发送电子邮件。

我做错了什么?

更新:联系方式如下:

define contact{
    contact_name                    root
    alias                           Root
    service_notification_period     24x7
    host_notification_period        24x7
    service_notification_options    w,u,c,r
    host_notification_options       d,r
    service_notification_commands   notify-service-by-email
    host_notification_commands      notify-host-by-email
    email                           [email protected]
}

define contactgroup{
    contactgroup_name       admins
    alias                   Nagios Administrators
    members                 root
}

答案1

首先通过查看 nagios.log 检查 nagios 是否确实启动了您的脚本。如果它正在采取适当的行动,您可以尝试通过添加 2>&1 >> /tmp/mynagiosemail.log 来记录电子邮件脚本的输出,以查看它是否引发错误(无论是与 python 相关还是与 os 相关)。

我注意到您的脚本位于 /etc/nagios3 中,这里不适合放置 nagios 将要执行的内容,您可能需要将其移动到 /usr/lib/nagios/plugins/ 或 /usr/lib/nagios3 以保持一致,然后确保 nagios 用户可以读取和执行它。看起来似乎没有任何 apparmor 限制,但不会有什么坏处。

答案2

您的或的service_notification_options设置是什么(如果存在)?由于您收到了警告电子邮件,因此听起来您没有设置,也没有设置host_notification_optionscontactcontactgroupcservice_notification_optionsdhost_notification_options

答案3

在您的联系人{}中您是否有以下内容?

host_notification_commands      host-notify-by-email

相关内容