Documentation technique : Debian
Documentation basée sur la distribution Debian

> > > Monitoring de machine : Munin

Monitoring de machine : Munin

Munin est un logiciel de monitoring de parc informatique très simple à mettre en place. Il fonctionne sur un système serveur/client, une machine dite "serveur" récupère les information d’une ou plusieurs machines "cliente" et crée des graphiques représentatifs de l’utilisation de ces machines. La machine serveur étant elle-même monitorée, elle est alors considérée à la fois comme "serveur" et comme "client".

Il est nécessaire que la machine dispose d’un serveur web (Apache) afin de servir les statistiques à l’utilisateur...

Configuration du serveur Munin

Tout d’abord on procède à l’installation des paquets nécessaires sur le serveur :

  1. sudo apt-get install liblwp-useragent-determined-perl libcache-cache-perl munin munin-node munin-plugins-extra

liblwp-useragent-determined-perl et libcache-cache-perl sont installés afin de rendre possibles certains monitorings (Apache, MySQL).

Ajout des noeuds à monitorer

Un noeud correspond à une machine particulière.

Afin d’ajouter un ou plusieurs noeud à monitorer, il est nécessaire de modifier le fichier de configuration du serveur Munin :

  1. sudo nano /etc/munin/munin.conf

Puis d’ajouter la définition de chaque client. Par exemple, pour monitorer la machine "serveur1.domaine.tld" dont l’adresse IP est "80.100.102.232", il faut ajouter à la configuration du serveur ces lignes :

  1. [serveur1.domaine.tld]
  2.         address 80.100.102.232

Télécharger

Configuration de la visualisation web de Munin

Par défaut, la visualisation des graphiques de Munin sont accessibles automatiquement sur la machine dite serveur en ajoutant /munin à son URL comme par exemple :

  1. http://addresse_du_server.tld/munin/

Le problème est que cette adresse est valable sur chaque domaine hébergé sur la machine.

Si vous souhaitez que ces graphiques ne soient visible que depuis un sous-domaine particulier, il daut tout d’abord commenter la ligne suivant dans le fichier /etc/apache2/conf.d/munin :

  1. #Alias /munin /var/cache/munin/www

Puis nous allons créer un virtualhost apache, les informations de Munin ne seront accessible que d’une adresse en particulier.

Nous créons tout d’abord un fichier "munin" dans les sites disponible pour Apache :

  1. sudo nano /etc/apache2/sites-available/munin.conf

Dans lequel on ajoute cette configuration minimale (pensez à modifier le contenu en fonction de votre environnement, notamment la directive ServerName) :

  1. <VirtualHost *:80>
  2.         ServerName munin.domaine.tld
  3.         ServerAdmin postmaster@domaine.tld
  4.  
  5.         DocumentRoot /var/cache/munin/www/
  6. </VirtualHost>

Télécharger

On active ensuite le virtualhost par la commande suivante :

  1. sudo a2ensite munin

Puis on redémarre Apache pour prendre en compte cette nouvelle configuration :

  1. sudo /etc/init.d/apache2 restart

On peut alors accéder aux statistiques des clients à l’adresse :

  1. http://munin.domaine.tld/

Configuration des noeuds Munin (clients)

Pour les machines clientes, uniquement munin-node n’est nécessaire, nous procédons à son installation comme ceci :

  1. sudo apt-get install munin-node munin-plugins-extra liblwp-useragent-determined-perl libcache-cache-perl

Ajouts de services monitorés

Lors de son installation, le paquet munin-node ajoute automatiquement les services "monitorable" à la configuration.

Chaque graphique affiché en fonction d’une machine est défini au niveau du noeud. Il correspond à un plugin de munin activé pour la machine en question.

L’ensemble des plugins disponibles par défaut sont situés dans le répertoire /usr/share/munin/plugins. Vous pouvez les lister en utilisant la commande :

  1. ls -lsa /usr/share/munin/plugins

Afin d’activer un plugin, il suffit dans la plupart des cas (si le service existe sur la machine) de créer un lien symbolique depuis l’un de ces fichiers vers le répertoire /etc/munin/plugins comme par exemple pour le monitoring des connexions au serveur (netstat), de l’uptime du serveur (uptime) et des statistiques de postfix (postfix_mailstats) :

  1. sudo ln -s /usr/share/munin/plugins/postfix_mailstats /etc/munin/plugins/postfix_mailstats
  2. sudo ln -s /usr/share/munin/plugins/netstat /etc/munin/plugins/netstat
  3. sudo ln -s /usr/share/munin/plugins/uptime /etc/munin/plugins/uptime

Télécharger

Pour certains plugins, il est nécessaire de modifier quelque peu la configuration du noeud. Pour ce faire, on édite son fichier de configuration :

  1. sudo nano /etc/munin/plugin-conf.d/munin-node

Ce fichier permet principalement de configurer les utilisateurs et groupes à utiliser pour la récupération des données par le client (root etc...). Il permet également d’ajouter certaines variables spécifiques de configuration par plugin. On y ajoute donc les directives pour les plugins problématiques. Ici, netstat nécessite d’être utilisé avec les droits root, on ajoute donc dans le fichier les lignes suivantes :

  1. [netstat]
  2. user root

Télécharger

Cette méthode peut s’avérer ne pas fonctionner. Munin propose également une commande munin-node-configure qui permet de simplifier cette configuration. Ainsi en lançant cette commande :

  1. sudo munin-node-configure --shell

La commande affichera les commandes à copier/coller afin d’activer les plugins possibles.

Afin de tester le bon fonctionnement d’un plugin, il est possible d’utiliser la commande munin-run suivi du nom du plugin. Dans le cas de netstat, on lancera donc :

  1. sudo munin-run netstat

Cette commande devrait nous retourner quelque chose du genre :

  1. active.value 8917
  2. passive.value 58982
  3. failed.value 72
  4. resets.value 1112
  5. established.value 6

Télécharger

Autoriser le serveur à se connecter

Afin de pouvoir récupérer les informations d’un noeud, le serveur doit tout d’abord y être autorisé et doit pouvoir se connecter à la machine sur un port spécifique (4949 par défaut).

Pour autoriser la connection du serveur au noeud, il est donc nécessaire de modifier la configuration du client :

  1. sudo nano /etc/munin/munin-node.conf

Puis d’y ajouter une ligne qui ressemble à :

  1. allow ^80\.125\.40\.245$

NB : 80.125.40.245 doit être l’adresse IP de la machine du serveur Munin, vous devez spécifier la vôtre.

Si le serveur ne peut toujours pas se connecter, il est certainement bloqué par le firewall de la machine cliente. Il est nécessaire d’ouvrir le port 4949 pour que cela fonctionne. Dans le cas d’IPTABLES, les règles à ajouter sont les suivantes :

  1. sudo iptables -A OUTPUT -p tcp --dport 4949 -j ACCEPT
  2. sudo iptables -A INPUT -p tcp --dport 4949 -s 80.125.40.245 -j ACCEPT

Télécharger

On redémarre ensuite le client :

  1. sudo /etc/init.d/munin-node restart

Afin de vérifier que le serveur ait la possibilité de se connecter, il suffit de lancer depuis le serveur la commande (80.34.123.234 correspond à l’adresse IP de la machine cliente, modifiez en fonction de votre configuration) :

  1. telnet 80.34.123.234 4949

Vous devriez voir apparaître ces lignes :

  1. Trying 80.34.123.234...
  2. Connected to 80.34.123.234.
  3. Escape character is '^]'.
  4. # munin node at sousdomaine.domaine.org

Télécharger

sousdomaine.domaine.org correspond au nom d’hôte de votre machine cliente. Si vous voyez cette dernière ligne s’afficher, cela correspond au bon fonctionnement. Dans le cas contraire vous devez vérifier que la connexion est possible entre les deux machines.

Dossiers et fichiers utilisés

  • Les dossiers :
    • /etc/munin/ : répertoire des fichiers de configuration de Munin ;
    • /usr/share/munin/plugins/ : répertoire contenant l’ensemble des plugins préinstallés
    • /etc/munin/plugins/ : répertoire des plugins activé pour le noeud (il ne contient que des liens symboliques issus du répertoire des plugins préinstallés) ;
    • /var/cache/munin/ doit contenir un dossier www contenant les pages html mise en cache du serveur Munin (c’est là que doit pointer votre serveur Apache) ;
    • /var/lib/munin est le répertoire où Munin stock les données qu’il collecte sur les noeuds ;
    • /var/log/munin est le répertoire où Munin place ses fichiers de logs, si vous constatez un dysfonctionnement, ce sont les fichiers à osculter ;
  • Les fichiers :
    • /etc/munin/munin.conf : fichier de configuration du serveur Munin
    • /etc/munin/munin-node.conf : fichier de configuration du client Munin
    • /etc/munin/plugin-conf.d/munin-node : fichier de configuration des plugins du client Munin

Articles complémentaires

  • Auteur :
  • Publié le :
  • Mis à jour : 01/10/17

3 commentaires


Qui êtes-vous ?
[Se connecter]
Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.