Nagios/Centreon : Superviser Postfix avec MailGraph

  • Introduction

Déjà qu’est ce que postfix et mailgraph ? Pour Postfix, je pense que vous savez. En revanche pour mailgraph, il s’agit d’un logiciel permettant de créer des graphiques sur l’activité du serveur e-mail. Ce dernier se base sur le fichier de log de Postfix, à savoir « /var/log/mail.log » (par défaut). Mailgraph propose une interface web pour pouvoir surveiller l’activité du serveur mais nous voulons avoir ces informations sur notre serveur Nagios !

Afin de pouvoir interroger mailgraph depuis un serveur Nagios, il nous faut utiliser NRPE (reportez vous à la procédure d’installation de NRPE).

Dans notre cas, nous ne configurerons pas l’accès à l’interface web car elle ne nous intéresse pas. Pourquoi mettre en place une autre interface web alors que l’on veut tout centraliser sur Nagios ???

  • Installation de MailGraph

Pour commencer, faites un petit coup d’apt-get :

apt-get install mailgraph

Maintenant, nous allons le configurer. Pour cela :

dpkg-reconfigure mailgraph

Un « utilitaire » en mode texte apparaît et vous pose des questions :

Il vous demande si Mailgraph doit être lancé au démarrage, vous répondez oui

Il vous demande quel est le fichier de journalisation est utiliser par Postfix pour qu’il puisse l’utiliser, par défaut c’est « /var/log/mail.log »

Ensuite, il vous demande s’il doit compter les courriels entrants comme des courriels sortants, répondez non si vous utilisez Amavis ! (Répondre non si vous installerez Amavis dans un futur proche)

Remarque : Avant d’aller plus loin dans le cas où vous utilisez Amavis, je vous recommande de faire la procédure suivante sinon passez à l’étape suivante :

Dans notre configuration de test, nous avions Postfix avec Amavis pour filtrer les e-mails. Le soucis posé par Amavis, c’est qu’il écrit lui aussi (par défaut) dans « /var/log/mail.log », ce qui risque de comptabilisé des e-mails plusieurs fois ! Pour réglé ce problème, nous allons changer le fichier de journalisation d’Amavis.

Éditez le fichier « /etc/amavis/conf.d/20-debian_defaults » puis effectuez les modifications suivantes :

Mettez la variable « $DO_SYSLOG » à 0 comme suit :

$DO_SYSLOG = 0 ;

Cela va dire à Amavis de ne pas utiliser le programme syslog pour écrire son fichier de log.

Ajoutez la ligne suivante :

$LOGFILE = ‘/var/log/amavis.log’ ;

Là, on dit à Amavis d’écrire dans le fichier « /var/log/amavis.log ».

C’est pas tout, il faut le créer ce fichier !

touch /var/log/amavis.log

Et il faut y mettre les droits. Alors n’ayant pas bien compris qui devait avoir les droits pour écrire dedans, j’ai défini les droits à 777

chmod 777 /var/log/amavis.log

 

  • Installation du plugin MailGraph

Positionnez vous dans le répertoire de l’utilisateur nagios pour faire ça propre et télécharger le plugin :

wget http://www.linuxplayer.org/wp-content/uploads/2011/03/check_mailstat_plugin_v0.9.1.zip

Décompressez le (installer « unzip ») :

unzip check_mailstat_plugin_v0.9.1.zip

Installez « patch » :

apt-get install patch

Rentrez dans le dossier du plugin :

cd check_mailstat_plugin_v.0.9.1

Et ensuite, patchez MailGraph :

patch -b /usr/sbin/mailgraph mailgraph.patch

Sur Ubuntu 11.10, la commande patch ne fonctionne pas, voici alors une archive avec le script patché sous Ubuntu 10.04 LTS qui est parfaitement fonctionnel. Nous y avons inclus les fichiers du dossier « /var/tmp » à copier également sur votre serveur en donnant les droits à l’utilisateur Nagios. Télécharger

Ensuite, copiez le plugin « check_mailstat.pl » dans le répertoire des plugins « /usr/lib/nagios/plugins ».

cp check_mailstat.pl /usr/lib/nagios/plugins

Assurez-vous que l’utilisateur Nagios est le propriétaire du fichier et qu’il ait les droits. Si ce n’est pas le cas, tapez les commandes suivantes :

chmod 775 check_mailstat.pl

chown -R nagios:nagios check_mailstat.pl

Ensuite, ouvrez le fichier /etc/nagios/nrpe.cfg et ajoutez la ligne suivante dans la liste des commandes (« COMMANDS DEFINITIONS ») :

command[check_mailstat]=/usr/lib/nagios/plugins/check_mailstat.pl -w $ARG1$ -c $ARG2$

Pour autoriser les arguments sur le serveur NRPE, éditez la ligne suivante :

dont_blame_nrpe = 1

Redémarrez NRPE :

/etc/init.d/nagios-nrpe-server restart

Test en local :

Pour vérifier que le plugin fonction, placez-vous dans le répertoire des plugins (« /usr/lib/nagios/plugins ») et tapez la commande suivante :

./check_mailstat.pl -h

Cette commande doit vous renvoyez l’aide du plugin. Si c’est bien le cas, c’est que le plugin fonctionne et que vous avez bien mis les droits à l’utilisateur nagios sur le plugin.

Test sur le serveur de supervision :

Positionnez vous sur dans le dossier des plugins de nagios (« /usr/lib/nagios/plugins ») :

./check_nrpe -H serveur_mail -c check_mailstat -a 40:0:0:0:0:0 50:0:0:0:0:0

Explication des arguments :

Dans le fichier nrpe.cfg, la commande que nous avons ajouté permet d’indiquer le seuil de warning (l’option -w) et le seuil critical (l’option -c). Et l’argument qui suit les options correspondent au seuil appliquer aux différents types d’e-mails séparés par « : ». Dans l’ordre, voici les types de faire qui correspond : Envoi:Réception:Notification :Rejeté:Virus:Spam, à vous de personnaliser les arguments !

  • Configuration sur Centreon :

Commençons par créer la commande sur Centreon, rien de plus simple : « Configuration → Commandes → Ajouter » et remplissez les champs suivants :

Nom de la commande : mettez « check_nrpe_mailstat » par exemple.

Ligne de commande :

$USER1$/check_nrpe -H $HOSTADDRESS$ -c check_mailstat -a $ARG1$ $ARG2$

Ensuite , sauvegardez !

Maintenant, nous allons voir comment créé un modèle de service. Mais qu’est ce que c’est ? Cela permet de configurer un service à part entière (la commande à utiliser, les notifications , etc…) et ça permet d’effectuer cette opération qu’une seule fois. Après on a juste à créé le service et de sélectionner le modèle et c’est fini !

Pour cela, direction : « Configuration → Services → Modèles → Ajouter » et vous obtenez une page identique à celle d’une page de configuration d’un service. Remplissez les champs :

ALIAS : mettez par exemple « NRPE-MAILSTAT »

Nom du modèle de service : mettez y par exemple « NRPE-MAILSTAT »

Commande de vérification : Dans la liste dé-roulante, choisissez « check_nrpe_mailstat »

Modèles de service : Sélectionnez « generic-service »

Et remplissez les autres champs selon vos besoins, puis sauvegardez.

Il faut maintenant créer le service : « Configuration → Services → Ajouter », ensuite remplissez les champs :

Description : à vous de choisir !

Modèle de service : choisissez le modèle que l’on vient de créer !

Arguments : saisissez les deux chaînes en mettant un « ! » devant chacune d’elle comme suit :

!40:0:0:0:0:0!50:0:0:0:0:0

Allez dans l’onglet « Relations » pour associer ce service à un ou plusieurs serveurs.

  • Création des graphiques

Le plugin de mailgraph envoie bien des informations mais nous aimerions avoir de jolies graphiques pour suivre l’évolution de l’activité des e-mails !

Pour cela, allez dans le menu « Vues → Graphiques → Modèles », sélectionnez « Default_Graph », ensuite dupliquez le, puis renommez le en MailStat et mettre « Label Vertical » à Nombre ! Sauvegardez.

Là, nous avons créés un type de graphique, en quelque sorte. Il faut y ajouter les courbes pour chaque type de valeur !

Pour cela, allez dans le menu « Vues → Graphiques → Courbes → Ajouter » et remplissez les champs suivants :

Nom du Modèle de courbe : « MailStat-sent »

Nom de la source de données : « sent »

Pour faire afficher les valeur maximun, minimun, la moyenne et la dernière valeur, cochez les cases correspondantes.

Puis sauvegardez. Ensuite dupliquez la courbe que vous venez de créer et remplacer « sent » (dans le nom du modèle et de la source) par « received », dupliquez, remplacez par « bounced », puis dupliquez et remplacez par « rejected » etc… (virus, spam).

Une fois les modèles de courbe créés, une petit modification dans le fichier du plugin est à faire. Cette modification est proposé par Pierre-Yves DUBREUCQ du site blog.admin-linux.org . Ouvrez le fichier « check_mailstat.pl » et remplacez la ligne 97 :

my $perfdata = sprintf "sent=%-6.2f received=%-6.2f bounced=%-6.2f rejected=%-6.2f virus=%-6.2f spam=%-6.2f", @stat_counter;

Par la ligne suivante :

my$perfdata=sprintf"sent=%-6.2f;received=%-6.2f;bounced=%-6.2f;rejected=%-6.2f;virus=%-6.2f;spam=%-6.2f",@stat_counter;

Les points virgules rajoutés ici sont nécessaire au traitement des données par Centreon.

Ce n’est pas encore tout à fait terminer, retournez dans « Configuration → Commandes », éditez la commande que nous avions créée tout à l’heure et pour le paramètre « Modèle Graphique », choisissez « MailStat ». Sauvegardez et exportez la configuration sur Nagios et vous devriez avoir un graphique pour le service mailstat.

  • Ajout d’un second service Postfix sur Centreon :

Lors de la mis en place d’un second service Postfix sur centreon en utilisant les modèles de service et de graphique, nous obtenions des graphiques complètement incohérent avec l’activité réelle du serveur Postfix concerné. N’ayant pas tout à fait compris d’où venait ce problème pour le moins curieux, nous avons tout de même réussi à le résoudre et je vais vous indiquer comment procéder en quelques points:

Le premier est de supprimer le second service Postfix de centreon si vous l’aviez créé et qu’il ne fonctionne pas correctement.

Le second est de créer un modèle de graphique par commande, inutile de dupliquer les courbes, tout les modèles de graphiques utiliseront les mêmes.

Le troisième point est de créer une commande par service en y indiquant le modèle de graphique à utiliser !

Dernier point, n’utilisez pas le modèle de service lorsque vous ajoutez votre service à centreon.

 

1 comment

  1. jm - Répondre

    Relancer le service mailgraph après l’étape :
    « Et ensuite, patchez MailGraph : »

    /etc/init.d/mailgraph force-reload

Leave Comment

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *