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

Неустойчивое поведение Nagios при отправке уведомлений по электронной почте

Мне очень сложно настроить nagios3, чтобы делать то, что я хочу. Слишком много файлов конфигурации и не уверен, в чем именно проблема, поскольку все кажется правильным.

Сначала уведомления отправлялись для неработающих хостов и критических служб, затем я хотел настроить его, чтобы он также отправлял уведомления о восстановлении, и теперь он отправляет только это, но не для всего.

Я хочу настроить его так, чтобы он использовал общий сервис в качестве шаблона, а затем настраивал дополнительные детали, если мне нужно, но он не играет в мяч, вот мои файлы конфигурации, посмотрите, видите ли вы что-нибудь не так:

Я хочу просто. Отправлять электронную почту, когда хост не работает, когда обслуживание критично и когда оно восстанавливается - вот и все!

---- Файл contacts.cfg ---

define contact{
        contact_name                    admin
        alias                           administrator
        service_notification_period     24x7
        host_notification_period        24x7
        service_notification_options    u,c,r
        host_notification_options       d,u,r
        service_notification_commands   notify-service-by-email
        host_notification_commands      notify-host-by-email
        email                           admins@host.com
        }


define contactgroup{
        contactgroup_name       admins
        alias                   Nagios Administrators
        members                 admin
        }

--------------------- EOF ----------

------ файл generic-service.cfg ---------

define service{
        name                            generic-service ; The 'name' of this service template
        active_checks_enabled           1       ; Active service checks are enabled
        passive_checks_enabled          1       ; Passive service checks are enabled/accepted
        parallelize_check               1       ; Active service checks should be parallelized (disabling this can lead to major performance problems)
        obsess_over_service             1       ; We should obsess over this service (if necessary)
        check_freshness                 0       ; Default is to NOT check service 'freshness'
        notifications_enabled           1       ; Service notifications are enabled
        event_handler_enabled           1       ; Service event handler is enabled
        flap_detection_enabled          1       ; Flap detection is enabled
        failure_prediction_enabled      1       ; Failure prediction is enabled
        process_perf_data               1       ; Process performance data
        retain_status_information       1       ; Retain status information across program restarts
        retain_nonstatus_information    1       ; Retain non-status information across program restarts
        notification_interval           0       ; Only send notifications on status change by default.
        is_volatile                     0
        check_period                    24x7
        normal_check_interval           1
        retry_check_interval            1
        max_check_attempts              4
        notification_period             24x7
        notification_options            w,u,c,r
        contact_groups                  admins
        register                        0       ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!
        }

--------------- EOF --------

---- файл generic-host.cfg ----

define host{
        name                            generic-host    ; The name of this host template
        notifications_enabled           1       ; Host notifications are enabled
        event_handler_enabled           1       ; Host event handler is enabled
        flap_detection_enabled          1       ; Flap detection is enabled
        failure_prediction_enabled      1       ; Failure prediction is enabled
        process_perf_data               1       ; Process performance data
        retain_status_information       1       ; Retain status information across program restarts
        retain_nonstatus_information    1       ; Retain non-status information across program restarts
#       check_command                   check-host-alive
        check_command                   check_tcp_alive
        max_check_attempts              10
        notification_interval           0
        notification_period             24x7
        notification_options            d,u,r
        contact_groups                  admins
        register                        0       ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
        }

---- За исключением servicegroups.cfg -----

define service {
        hostgroup_name                  Live, inhouse
        service_description             USERS
        check_command                   check_nrpe_1arg!check_users
        use                             generic-service
    normal_check_interval

               10
            retry_check_interval            10
            contact_groups                  admins
            notification_interval           0 ; set > 0 if you want to be renotified
    }

    # check the LOAD
    define service {
            hostgroup_name                  Live, inhouse
            service_description             LOAD
            check_command                   check_nrpe_1arg!check_load
            use                             generic-service
        normal_check_interval           5
            retry_check_interval            1
            notification_interval           0 ; set > 0 if you want to be renotified
    }       


    # check the HDD
    define service {
            hostgroup_name                  Live, inhouse
            service_description             HDD
            check_command                   check_nrpe_1arg!check_all_disks
            use                             generic-service
        normal_check_interval           600
            retry_check_interval            30
            notification_interval           0 ; set > 0 if you want to be renotified
    }

----- EOF -----

--- Выдержка из Hostgroups.cfg ----

define hostgroup {
        hostgroup_name  http-servers
        alias           HTTP servers
        members         *
        }

---- EOF -----

Мне ваши конфиги кажутся немного не такими. Если проверка НЕ ​​ОКОНЧАТЕЛЬНА, то Nagios будет перепроверять каждый 'retry_check_interval' (время между каждой повторной попыткой) X 'max_check_attempts' (количество сбоев в строке) перед он отправит предупреждение о том, что что-то сломалось. В случае проверки вашего жесткого диска это означает, что жесткий диск должен находиться в НЕПРАВИЛЬНОМ состоянии в течение 2 часов. перед вы получите уведомление. Если проверка должна вернуться в состояние ОК перед При соблюдении вышеуказанных условий уведомление о сбое не отправляется. Однако вы получите уведомление о восстановлении. Скорее всего, это произойдет при проверке «ЗАГРУЗИТЬ», даже с гораздо меньшим retry_check_interval, поскольку использование системы часто очень динамично.

Кроме того, я не верю в установку интервала уведомлений на «0» - я считаю, что это очень плохая практика, которая приводит к пропуску предупреждений, особенно в шаблонах generic- *. Я оставляю в шаблоне свое значение «60 минут», а затем использую «240 минут» для тех нескольких проверок, о которых я не хочу слышать так часто.

Вы также должны еще раз проверить этот файл hostgroup.cfg. Группы хостов, которые вы определяете в своих проверках, не указаны в файле конфигурации группы хостов в ваших примерах.

В Nagios 3 и выше:

"retry_check_interval" изменен на "retry_interval"

'normal_check_interval' изменен на 'check_interval'

Тем не менее, для обратной совместимости со старыми версиями файлов конфигурации все четыре по-прежнему поддерживаются - даже в Nagios версии 4.