1 votes

nagios (Dernière notification : N/A (notification 0))

Je n'arrive pas à comprendre pourquoi Nagios ne m'envoie pas d'alerte sur certains des services que je supervise, je me demandais si quelqu'un pouvait m'aider un peu.

il s'agit d'un service

define service {
    hostgroup\_name          nrpe-disk
    service\_description     disk
    use             alarm,check
    check\_command           check\_nrpe1!check\_disk
    register            1
    }

voici mon ordre

define command {
       command\_name                         check\_nrpe1
       command\_line                         $USER1$/check\_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

Voici le modèle de service

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
    }

4voto

A.k. Points 33

Le journal de débogage de nagios m'a aidé à diagnostiquer un problème similaire. Il se trouvait à la fin de mon fichier nagios.cfg

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

redémarrer nagios, puis suivre le fichier nagios.debug il vous montrera quelque chose comme :

[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.

Dans mon cas, j'ai eu un mauvais contact service_notification_options ce qui a empêché l'envoi de la notification initiale, ce qui a bloqué toutes mes escalades (si nous n'envoyons jamais la notification 0, nous ne pourrons jamais atteindre la notification 1).

0voto

Dave Mooney Points 529

Je commencerais par essayer de définir tous les paramètres directement plutôt que de dépendre de l'héritage. Évitez également les groupes, si vous le pouvez. Cela vous donne au moins un point de départ propre à partir duquel vous pouvez déboguer.

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
    }

Vous pouvez également essayer de remplacer notification_interval par quelque chose d'autre, voire de ne pas l'utiliser (la valeur par défaut est de 60). Jusqu'à ce que cela fonctionne.

0voto

WildJoe Points 2515

Je ne le vois pas mentionné dans votre question ni dans aucune des réponses, mais avez-vous vérifié le site web de l nagios.cfg pour le fichier enable_notifications de l'environnement ? Est-il réglé sur 0 o 1 ?

Par ailleurs, cela se produit-il uniquement pour une notification de service donnée ou cela affecte-t-il toutes les notifications ? Si c'est le cas, je pense que enable_notifications est réglé sur 0 dans le fichier nagios.cfg. Si c'est le cas, essayez de le mettre à 1 et redémarrez Nagios.

-1voto

Keith Stokes Points 907

Avez-vous une section "notify-by-email" dans votre fichier de configuration des commandes ? Voici la section correspondante du mien :

Définition de la commande "notify-by-email

d nom_de_la_commande s 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$" | /bin/mail -s "** $NOTIFICATIONTYPE$ alert - $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$ }

Votre système peut-il envoyer du courrier en général ? Pouvez-vous utiliser "mail -s test foo@bar.com", puis taper du texte, une ligne blanche et enfin Ctrl-D pour envoyer ?

-1voto

neoice Points 864

Changeant

register 0

à

register 1

dans votre service "alarme" pourrait vous aider.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X