Nagios et les notifications

Les notification dans nagios font appel à plusieurs éléments :

  • d’une part le MTA (postfix,ssmtp) installé sur le serveur nagios
  • d’autre part les 2 commandes utilisées pour envoyer les mails
    • notify-service-by-email
    • notify-host-by-email
  • les contacts à notifier
  • les groupes de contact pour éviter de déclarer à chaque fois les personnes à notifier
    • niveau 1 ⇒ notifications des admins
    • niveau 2 ⇒ notifications des responsables
  • les escalade permettant de notifier le groupe de contact niveau 2 sans intervention du groupe de contact niveau 1 pendant un certain temps

configuration de postfix pour les notifications

définition des commandes de notification

  • /opt/nagios/etc/conf.d/commands/notifications/notifications.cfg
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$
}

Définition des contacts

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       		
}

Les groupes de contact

  • groupe de contact niveau1 ⇒ premier groupe notifié
  • groupe de contact niveau2 ⇒ deuxième groupe notifié si pas d’intervention par le premier groupe
define contactgroup{
	contactgroup_name	niveau1
	alias			niveau1
}

define contactgroup{
	contactgroup_name	niveau2
	alias			niveau2
}

Les escalades

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.

nagios/notifications.txt · Dernière modification: 02/03/2017 15:41 (modification externe)
CC Attribution-Noncommercial-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0