Назад | Перейти на главную страницу

nagios (последнее уведомление: н / д (уведомление 0))

Я не могу понять, но по какой-то причине Nagios не отправляет мне оповещения о некоторых сервисах, которые я отслеживаю, мне было интересно, может ли кто-нибудь мне немного помочь.

это сервис

define service {
    hostgroup_name          nrpe-disk
    service_description     disk
    use             alarm,check
    check_command           check_nrpe1!check_disk
    register            1
    }

вот моя команда

define command {
       command_name                         check_nrpe1
       command_line                         $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

вот шаблон услуги

define service {
       name                                 alarm
       notification_interval                0
       notification_period                  247
       notification_options                 w,u,r,c,f,s
       notifications_enabled                1
       contact_groups                       staff
       register                         0

}
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 "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$
}   

define command {
       command_name                         notify-host-by-pager
       command_line                         /usr/bin/printf "%b" "Notification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$" | /usr/bin/mail $CONTACTPAGER$
}   

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 "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
}   

define command {
       command_name                         notify-service-by-pager
       command_line                         /usr/bin/printf "%b" "Notification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" | /usr/bin/mail $CONTACTPAGER$
}   
define contactgroup {
    contactgroup_name                   staff
    alias                               XXXXXXXX
    members                             XXXXXXXX XXXXXXXX
    }   
define contact {
    contact_name                        XXXXXXX XXXXXX
    alias                               XXXXXXXXX
    host_notifications_enabled          1
    service_notifications_enabled       1
    host_notification_period            247
    service_notification_period         247
    host_notification_options           d,u,r,f,s
    service_notification_options        w,u,c,r,f,s
    host_notification_commands          notify-host-by-email,notify-host-by-pager
    service_notification_commands       notify-service-by-email,notify-service-by-pager
    email                               XXXXXXXXX@XXXXXXXX.XXX
    pager                               XXXXXXXXXX@messaging.sprintpcs.com
    }

Журнал отладки 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)

Я не вижу, чтобы это упоминалось в вашем вопросе или любом из ответов, но вы проверили nagios.cfg файл для включить уведомления установка? Это установлено на 0 или 1?

Кроме того, это происходит только с определенным сервисным уведомлением или влияет на все уведомления? Если это все, я подозреваю, что для параметра enable_notifications установлено значение 0 в файле nagios.cfg. В таком случае попробуйте изменить его на 1 и перезапустить Nagios.

Моим первым шагом было бы попытаться определить все параметры напрямую, а не в зависимости от наследования. По возможности избегайте групп. По крайней мере, это дает вам чистую отправную точку для отладки.

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). Пока вы не заставите его работать.

Есть ли у вас в конфигурационном файле команд раздел «уведомлений по электронной почте»? Вот соответствующий раздел из моего:

определение команды 'notify-by-email'

определить команду {имя_команды send-email строка_команды / 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 $ "| / bin / mail -s "** $ NOTIFICATIONTYPE $ alert - $ HOSTALIAS $ / $ SERVICEDESC $ is $ SERVICESTATE $ **" $ CONTACTEMAIL $}

Может ли ваша система вообще отправлять почту? Можете ли вы использовать "mail -s test foo@bar.com", затем ввести текст, пустую строку и, наконец, Ctrl-D для отправки?

изменение

register 0

к

register 1

в вашем "сигнальном" сервисе может помочь.

Где сервис-шаблон для чек ? Поскольку вы используете с шаблонами сигнализацию и проверку. я думаю чек перезаписывает тревога...

define service {
    hostgroup_name          nrpe-disk
    service_description     disk
    use             alarm,check
    check_command           check_nrpe1!check_disk
    register            1
    }

возможно notification_failure_criteria могу помочь тебе

У тебя действительно есть уведомление_период называется 247 или скорее 24x7?

Вы получаете правильную обратную связь от своей команды (значит, должен быть сигнал тревоги?)? вы тестировали команду в командной строке (как ваш nagios-пользователь)?