nagios(最后通知:N/A(通知 0))

nagios(最后通知:N/A(通知 0))

我不明白,但由于某种原因,Nagios 没有向我发送有关我监控的某些服务的警报,我想知道是否有人可以帮我一点忙。

这就是服务

定义服务 {
    hostgroup_name nrpe磁盘
    service_description 磁盘
    使用警报,检查
    check_command check_nrpe1!check_disk
    寄存器 1
    }

这是我的命令

定义命令 {
       命令名称 check_nrpe1
       命令行$USER1$/check_nrpe-H$HOSTADDRESS$-c$ARG1$
}

这是服务模板

定义服务 {
       姓名报警
       通知间隔 0
       通知期限 247
       通知选项 w,u,r,c,f,s
       通知已启用 1
       contact_groups 员工
       寄存器 0

}
定义命令 {
       命令名称 通过电子邮件通知主机
       command_line /usr/bin/printf "%b" "***** Nagios *****\n\n通知类型:$NOTIFICATIONTYPE$\n主机:$HOSTNAME$\n状态:$HOSTSTATE$\n地址:$HOSTADDRESS$\n信息:$HOSTOUTPUT$\n\n日期/时间:$LONGDATETIME$\n" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ 主机警报:$HOSTNAME$ 是 $HOSTSTATE$ **" $CONTACTEMAIL$
}   

定义命令 {
       命令名称 通过寻呼机通知主机
       command_line /usr/bin/printf "%b" "通知类型:$NOTIFICATIONTYPE$\n主机:$HOSTNAME$\n状态:$HOSTSTATE$\n地址:$HOSTADDRESS$\n信息:$HOSTOUTPUT$" | /usr/bin/mail $CONTACTPAGER$
}   

定义命令 {
       命令名称 通过电子邮件通知服务
       command_line /usr/bin/printf "%b" "***** Nagios *****\n\n通知类型:$NOTIFICATIONTYPE$\n\n服务:$SERVICEDESC$\n主机:$HOSTALIAS$\n地址:$HOSTADDRESS$\n状态:$SERVICESTATE$\n\n日期/时间:$LONGDATETIME$\n\n附加信息:\n\n$SERVICEOUTPUT$" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ 服务警报:$HOSTALIAS$/$SERVICEDESC$ 为 $SERVICESTATE$ **" $CONTACTEMAIL$
}   

定义命令 {
       命令名称 通过传呼机通知服务
       command_line /usr/bin/printf "%b" "通知类型:$NOTIFICATIONTYPE$\n\n服务:$SERVICEDESC$\n主机:$HOSTALIAS$\n地址:$HOSTADDRESS$\n状态:$SERVICESTATE$\n\n附加信息:\n\n$SERVICEOUTPUT$" | /usr/bin/mail $CONTACTPAGER$
}   
定义联系组{
    contactgroup_name 员工
    别名 XXXXXXXX
    会员 XXXXXXXX XXXXXXXX
    }   
定义联系人{
    联系人姓名 XXXXXXX XXXXXX
    别名 XXXXXXXXX
    host_notifications_enabled 1
    service_notifications_enabled 1
    主机通知周期 247
    服务通知期限 247
    host_notification_options d,u,r,f,s
    service_notification_options w,u,c,r,f,s
    host_notification_commands 通过电子邮件通知主机,通过寻呼机通知主机
    service_notification_commands 通过电子邮件通知服务,通过寻呼机通知服务
    电子邮件                               [电子邮件保护]
    寻呼机                               [电子邮件保护]
    }

答案1

我没有在你的问题或任何答案中看到它,但你有没有检查过nagios.cfg文件中的启用通知设置?是否设置为0或者1

另外,这是否只发生在特定服务通知上,还是会影响所有通知?如果是,我怀疑 nagios.cfg 文件中的 enable_notifications 设置为 0。如果是这样,请尝试将其更改为 1 并重新启动 Nagios。

答案2

Nagios 调试日志帮助我诊断了类似的问题。它位于我的 nagios.cfg 末尾

debug_level=32
debug_file=/var/log/nagios3/nagios.debug
debug_verbosity=2

重新启动 nagios,然后查看文件nagios.debug;它会显示类似的内容:

[1416254305.106042] [032.0] [pid=928] ** Service Notification Attempt ** Host: 'myhost', Service: 'myservice', Type: 0, Options: 0, Current State: 2, Last Notification: Wed Dec 31 19:00:00 1969
[1416254305.106106] [032.0] [pid=928] Notification viability test passed.
[1416254305.106114] [032.1] [pid=928] Current notification number: 1 (incremented)
[1416254305.106120] [032.2] [pid=928] Creating list of contacts to be notified.
[1416254305.106137] [032.1] [pid=928] Service notification will NOT be escalated.
[1416254305.106174] [032.1] [pid=928] Adding normal contacts for service to notification list.
[1416254305.106185] [032.2] [pid=928] Adding contact 'mycontact' to notification list.
[1416254305.106219] [032.2] [pid=928] ** Attempting to notifying contact 'mycontact'...
[1416254305.106449] [032.2] [pid=928] ** Checking service notification viability for contact 'mycontact'...
[1416254305.106463] [032.2] [pid=928] We shouldn't notify this contact about CRITICAL service states.
[1416254305.106474] [032.0] [pid=928] No contacts were notified.  Next possible notification time: Wed Dec 31 19:00:00 1969
[1416254305.106481] [032.0] [pid=928] 0 contacts were notified.

就我而言,我的联系不畅service_notification_options,导致初始通知无法发出,从而阻止了我所有的升级(如果我们从不发送通知 0,我们就永远无法收到通知 1)

答案3

我的第一步是尝试直接定义所有参数,而不是依赖继承。如果可以的话,也要避免使用组。这至少为您提供了一个干净的调试起点。

define service {
    host_name                  XXXXXXX
    service_description        disk
    notification_interval      0
    notification_period        247
    notifications_enabled      1
    contacts                   XXXXXXX
    check_command              check_nrpe1!check_disk
    }

您可能还想尝试将 notification_interval 切换为其他值,甚至将其保留(默认为 60)。直到您使其正常工作。

答案4

改变

register 0

register 1

您的“警报”服务可能会有所帮助。

相关内容