11 Postfix
Voyons comment installer le système de notifications pour notre supervision. Nous nous appuierons sur la messagerie, mais il existe d'autres moyens que nous ne verrons pas ici.
Nous utiliserons Postfix. Celui-ci redirigera toutes les notifications au serveur de mail de notre petite entreprise Duchmol. Assurez-vous que vous avez bien tous les paquets Debian nécessaires.
apt-get install postfix bsd-mailx
11.1 Configuration de Postfix
La configuration de Postfix est très simple. Il suffit de suivre les écrans suivants et de répondre aux questions.
11.2 Vérification du fonctionnement de Postfix
Nous allons envoyer un message avec mail à l'utilisateur Jean Dupont de notre petite entreprise.
mail -s test jean.dupont@duchmol.netSaisissez votre message
essai de messageLorsque vous avez terminé, saisissez un point puis validez
.Vous pouvez éventuellement rajouter une personne, validez pour envoyer votre message
Cc:
11.2a Lecture du message par le webmail squirellMail
Connectez-vous sur l'interface web de SquirellMail avec l'utilisateur jean.dupont
La messagerie fonctionne, nous pouvons configurer les notifications.
12 Paramétrage de la notification
Voici notre stratégie pour les notifications de notre supervision. Le responsable n'aura aucune notification, les personnes du groupe admin réseau recevront toutes les notifications par défaut et enfin notre stagiaire du groupe webmaster aura délégation sur les services Apache et les services Mysql. Nous réaliserons une escalade de notification pour ces services à l'attention du groupe admin réseau.
12.1 Groupes de contact
Nous allons créer deux groupes de contact pour la gestion des notifications, cela permettra d'ajouter ou enlever des utilisateurs sans revoir la stratégie de notification. Pour créer un groupe de contact, sélectionnez Configuration / Users / Contact Groups
12.2 Notifications Hôtes et Services
Maintenant, paramétrons les notifications pour les hôtes. Seul le groupe admin réseau recevra les notifications. Modifions le template d'hôte notification-24x7. Vérifiez l'activation des notifications et ajoutez le groupe admin_reseau
Passez aux notifications des services avec les templates de services service-generique-actif et service-generique-passif. Vérifiez l'activation des notifications et ajoutez le groupe admin_reseau. Cochez éventuellement Unknown.
12.3 Notifications pour le groupe webmaster
Nous voulons que notre stagiaire reçoive les notifications pour les services Apache et MySQL du serveur Weblamp. Le groupe admin_reseau ne recevra les alertes de ces services seulement si notre stagiaire n'a pas acquitté ces alarmes au bout de trois notifications. Pour réaliser cette opération, il faut surcharger le paramétrage des notifications des services concernés. Modifiez les services Process Apache2, Process MYSQL, TCP Apache 80, TCP MYSQL.
12.4 Escalade pour le groupe admin_reseau
Comme le stagiaire Alain Durand n'est pas toujours présent, nous devons trouver une solution pour alerter d'autres personnes. C'est là que l'escalade de notifications prend tout son sens. Il nous suffit d'escalader la notification au groupe admin_reseau et donc à l'utilisateur Eric Coquard. Pour créer une escalade de Notification, sélectionnez Configuration / Notifications / Escalations.
12.5 Vérification des notifications par utilisateur
Vous avez la possibilité de vérifier la portée des notifications pour chaque utilisateur en utilisant le lien dans le menu Configuration / Users / Contacts/Users. Le lien s'appelle View contact notifications.
13 Vérifications des notifications avec Postfix
13.1 Notifications sans escalade
Appliquez la nouvelle configuration. Nous allons effectuer un essai en arrêtant le service apache2 du serveur weblamp. Pour accélérer cet essai, les checks sont réglés à une minute.
Après deux notifications, l'utilisateur Alain Durand acquitte les alertes. L'escalade de notification ne se déclenchera pas.
On remarque, dans la boîte mail d'Alain Durand, les cinq messages de notifications d'alerte des services, suivi des deux messages d'acquittement puis des deux messages de notifications de retour à la normale.
13.2 Notifications avec escalade
Dans cet exemple, l'utilisateur Alain Durand étant absent, l'escalade de notification se déclenche au bout de la quatrième notification d'alerte des services.
Les notifications d'alerte seront automatiquement renvoyées au groupe admin_reseau à partir de la quatrième notification. Les notifications d'acquittement et de retour à la normale seront envoyées au groupe admin_reseau.
13.3 Configuration des messages de notification
Les messages de notifications sont facilement personnalisables. Ils utilisent les macros du moteur de supervision, comme le montrent les écrans ci-dessous. Pour accéder aux paramétrages, sélectionnez le menu Configuration / Commands / Notifications.
Les images suivantes vous indiquent les différents paramètres utilisés pour construire le message.
Comme vous le constatez, il manque une donnée intéressante, l'heure à laquelle l'événement s'est produit. Vous avez la date de l'événement, mais pas l'heure. Il est facile d'y remédier par la modification des commandes de notifications en rajoutant la macro $TIME$. Cette information peut sembler redondante par rapport à la date d'envoi du mail mais elle peut être très utile lorsque vous recevez les mails dans un laps de temps important et parfois pas toujours dans l'ordre chronologique (problème de relayage entre différents serveurs exchange, par exemple).
Commande de notifications pour les hôtes
/usr/bin/printf "%b" "***** centreon Notification *****\n\n Type:$NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\n Address: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n Date/Time: $DATE$ - $TIME$" | @MAILER@ -s "Host $HOSTSTATE$ alert for $HOSTNAME$!" $CONTACTEMAIL$Commande de notifications pour les services
/usr/bin/printf "%b" "***** centreon Notification *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\n Service: $SERVICEDESC$\nHost: $HOSTALIAS$\n Address: $HOSTADDRESS$\nState: $SERVICESTATE$\n\n Date/Time: $DATE$ - $TIME$ Additional Info : $SERVICEOUTPUT$" | @MAILER@ -s "** $NOTIFICATIONTYPE$ alert - $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
13.3a Problématique des caractères accentués
Après quelques essais de notification, je me suis aperçu que les messages comprenant des caractères accentués ne s'affichaient pas correctement dans le webmail comme le montre l'image ci-dessous.
L'installation du paquet heirloom-mailx améliore la compatibilité des caractères accentués comme le prouve la prochaine image du même message de notification.
apt-get install heirloom-mailx
13.3b Bien positionner ses templates
Autre problème, je ne comprenais pas pourquoi je n'arrivais pas à obtenir de notification, lorsque l'hôte était arrêté. En fait le template d'hôte contenant la notification doit se trouver en tête de la liste des templates. Petite explication en image.
13.4 Amélioration de la notification d’alerte de service
Suite à une demande particulière, je vous propose un script permettant l’affichage de la date et heure du début du disfonctionnement (en fait c’est la date et heure du dernier changement d’état du service). Ceci permet en cas de rappel de notification d’avoir la date et l’heure de l’incident. Nous utiliserons la macro $LASTSERVICESTATECHANGE$. Elle renvoie une valeur de type Timestamp UNIX pas très lisible pour un humain. Nous utiliserons un script bash pour convertir cette valeur et l’afficher correctement. Créons un script bash dans le dossier des plugins de Centreon. Nous le nommerons create_alarme.sh.
#!/bin/sh DEBUT_DATE=`date -d @$9` /usr/bin/printf "%b" "***** centreon Notification *****\n\nNotification Type: $1\n\nService: $2\nHost: $3\nAddress: $4\nState: $5\n\nDate: $6 Time: $7 Additional Info : $8\nDebut Alerte : $DEBUT_DATE"
N’oubliez pas de rendre le script exécutable.
chmod +x create_alarme.sh
Dupliquez la commande de notification des services et modifiez la commande comme ceci.
$USER1$/create_alarme.sh $NOTIFICATIONTYPE$ '$SERVICEDESC$' '$HOSTALIAS$' $HOSTADDRESS$ $SERVICESTATE$ $DATE$ $TIME$ '$SERVICEOUTPUT$' $LASTSERVICESTATECHANGE$ | @MAILER@ -s "** $NOTIFICATIONTYPE$ alert - $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
Affectez cette commande de notification à un utilisateur. Cette modification n’a de sens que si vous utilisez des notifications récurrentes. Vérifiez que le paramètre Notification Interval est différent de zéro, dans l’exemple ci-dessous, nous recevrons une notification toutes les minutes. C’est pour nos tests, il est bien évident qu’il faut éviter cette valeur dans la vrai vie sous peine d’être inondé de messages. Le paramètre First notification delay est paramétré à une minute ce qui impliquera la première notification une minute après l’état Hard de l’alerte.
Nous allons provoquer une alerte en arrêtant, par exemple, le service apache du serveur Web. Le premier changement d’état du service, état soft à critiqua se fait à 11 h 22. La première notification se fera à 11 h 26 comme l’indique la copie du message en dessous.
On constate le début de l’alerte correspondant au changement d’état. Si nous laissons l’état Critical du service sans acquitter. Les messages suivants indique toujours la même date et heure pour le début de l’alerte (voir la copie ci-dessous).
Cet article est terminé, passons à l'installation des widgets.