Les notification dans nagios font appel à plusieurs éléments :
define command{ command_name notify-host-by-email command_line /usr/bin/printf "%b" "[Nagios]\n\nType de notification: $NOTIFICATIONTYPE$\nHôte: $HOSTNAME$\nEtat: $HOSTSTATE$\nAddresse: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Heure: $LONGDATETIME$\n" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ Alerte : $HOSTNAME$ est $HOSTSTATE$ **" $CONTACTEMAIL$ } define command{ command_name notify-service-by-email command_line /usr/bin/printf "%b" "[Nagios]\n\nType de notification: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHôte: $HOSTALIAS$\nAddresse: $HOSTADDRESS$\nEtat: $SERVICESTATE$\n\nDate/Heure: $LONGDATETIME$\n\nInformations:\n\n$SERVICEOUTPUT$" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ Alerte: $HOSTALIAS$/$SERVICEDESC$ est $SERVICESTATE$ **" $CONTACTEMAIL$ }
define contact{ use generic-contact contact_name admin1 alias admin1 contactgroups niveau1 email admin1@domain.tld } define contact{ use generic-contact contact_name admin2 alias admin2 contactgroups niveau2 email admin2@domain.tld } define contact{ name generic-contact service_notification_period 24x7 host_notification_period 24x7 service_notification_options c host_notification_options d service_notification_commands notify-service-by-email host_notification_commands notify-host-by-email can_submit_commands 1 retain_status_information 1 retain_nonstatus_information 1 register 0 }
define contactgroup{ contactgroup_name niveau1 alias niveau1 } define contactgroup{ contactgroup_name niveau2 alias niveau2 }
Nagios vérifie régulièrement l’ensemble des services sur le parc configuré. Cet intervalle de temps est configurable pour chaque service à l’aide du champ normal_check_interval. Si le greffon renvoie un état différent de OK, une alerte en état soft est levée. Nagios vérifiera autant de fois que max_check_attempts lui indique le service toutes les retry_check_interval minutes d’intervalle. Si celui-ci reste en erreur après tous les essais, une première notification est envoyée.
Si après un intervalle de notification_interval minutes, le problème n’est toujours pas réglé, Nagios enverra une autre notification et continuera ainsi jusqu’à ce que le problème soit résolu ou acquitté.
Dans certains cas, il peut être utile de mettre en place des escalades sur les services. Le principe est simple, pour chaque service où l’on souhaite une escalade des notifications, il suffit de préciser à quels groupes de contacts Nagios devra envoyer les notifications. Cela se fait en fonction du nombre de notifications envoyées.
Voici un petit exemple :
define serviceescalation { host_name generic-host service_description generic-service first_notification 3 last_notification 4 notification_interval 0 contact_groups niveau2 }
la première escalade interviendra à a 3eme notification et s’arrêtera à la quatrieme notification. Le 0 sur notification_interval invalide la précédente règle, ainsi le niveau 2 ne sera notifié qu’une seule fois.