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.