Nagios comportamento errático ao enviar e-mails de notificação

3

Estou com dificuldades para configurar o nagios3 para fazer o que eu quero. Muitos arquivos de configuração e não sei exatamente onde está o problema, pois tudo parece correto.

Primeiro, as notificações foram enviadas para down hosts e serviços críticos, então eu queria configurá-lo para que ele também enviasse notificações sobre recuperação e agora ele só envia isso, mas não para tudo.

A maneira que eu quero configurá-lo é para usar o serviço genérico como modelo e depois configurar detalhes adicionais se eu precisar, mas não está jogando bola, aqui estão meus arquivos de configuração, veja se você vê algo errado:

O que eu quero é simples. Envie e-mail quando o host estiver inoperante, quando o serviço for crítico e quando ele for recuperado - é isso!

---- Arquivo 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                           [email protected]
        }


define contactgroup{
        contactgroup_name       admins
        alias                   Nagios Administrators
        members                 admin
        }

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

------ arquivo 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 --------

---- arquivo 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!
        }

---- Excerce de 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 -----

--- Trecho de Hostgroups.cfg ----

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

---- EOF -----

    
por Ulukai 13.12.2015 / 19:41

1 resposta

0

Suas configurações parecem um pouco fora de mim. Se uma verificação NÃO for OK, o Nagios irá verificar novamente cada 'retry_check_interval' (tempo entre cada nova tentativa) X 'max_check_attempts' (número de falhas em uma linha) antes ele enviará um alerta de que algo está quebrou. Na causa de sua verificação de 'HDD', isso significa que o disco rígido precisará estar em um estado NÃO OK por 2 horas antes de receber uma notificação. Se uma verificação retornar a um estado OK antes , as condições acima serão atendidas, então nenhuma notificação com falha será enviada. No entanto, você receberá a notificação de recuperação. Isso provavelmente acontecerá com a verificação de 'LOAD', mesmo com o retry_check_interval muito menor, já que o uso do sistema é muito dinâmico.

Além disso, eu não acredito em definir um intervalo de notificação para '0' - eu sinto que é uma prática muito ruim que leva à falta de alertas, especialmente nos modelos genéricos *. Eu deixo o meu aos '60' minutos no modelo, então uso um '240' minutos nos poucos cheques que eu não quero ouvir tantas vezes.

Você também deve verificar esse arquivo 'hostgroup.cfg' novamente. Os grupos de host que você define em suas verificações não são listados no arquivo de configuração do grupo de hosts em seus exemplos.

No Nagios 3 e acima:

 'retry_check_interval' alterado para 'retry_interval'

 'normal_check_interval' alterado para 'check_interval'

Dito isso, para compatibilidade com versões antigas de arquivos de configuração, todos os quatro ainda são suportados - mesmo no Nagios versão 4.

    
por 28.12.2015 / 18:39