Munin : une solution de monitoring simple !
Vous souhaitez avoir quelques graphiques sur l'utilisation de votre serveur ?
Mais vous avez pas envie de partir sur une usine à gaz trop complète (et parfois trop complexe à installer), alors Munin est fait pour vous !
Munin, c'est quoi ?
C'est un logiciel libre (comme d'hab', le libre c'est bon !), qui sert de grapheur.
Il est basé sur RRDtool (qui lui est un système de BDD utilisé pour les données cycliques), et fonctionne avec un principe client / serveur.
Très polyvalent : Multiplateforme (il peut surveiller, des machines sous Linux, Windows, BSD …), fonctionne avec un système de plugins (qui sont faciles à utiliser et à développer) afin de "grapher" de nombreux services différents.
Vous allez donc pouvoir surveiller plusieurs machines physiques et virtuelles, et réunir toutes les informations sur un système centraliser.
Il faut garder à l'esprit que Munin est solution de monitoring "simple", bien qu'il existe des états pour surveiller certaines fonctions / composants, vous n'aurez pas de remonté d'alertes, de comparaisons de données …
ça n'en reste pas moins un outil intéressant pour suivre le fonctionnement de son/ses serveurs
Son installation :
Elle est très simple, car Munin est accessible la plus part du temps par gestionnaire de paquets.
Il faut toutefois faire une distinction entre le serveur et les clients (le serveur pouvant être lui même un client !).
Mon installation est faite sur une VM sous Debian 7.0 (Wheezy) et la version présente en ce moment dans les dépôts est la : 2.0.6-3
La partie serveur (et client au passage) :
# aptitude install munin munin-plugins-extra
La partie uniquement cliente :
# aptitude install munin-node munin-plugins-extra
Vous noterez que j'installe "munin-plugins-extra", c'est optionnel, ce paquet comprend des plugins pour différents programmes qui ne sont pas installés de base.
Munin étant écrit et utilisant des plugins en perl, cela va installer tout l'environnement nécessaire, ainsi que quelques dépendances nécessaires à Munin.
Il vous faudra également un serveur pour la consultation des graphs, de base c'est Apache qui est recommandé.
Une fois l'installation terminée, il faut modifier quelques fichiers de conf :
L'accès aux graphs :
# nano /etc/apache2/conf.d/munin
et changez :
<Directory /var/cache/munin/www> Order allow,deny Allow from all Options None
puis :
# /etc/init.d/apache2 restart
Vous pouvez faire un premier essai en consultant : http://monip/munin
Si jamais vous avez une erreur "403", vous pouvez décommenter et vérifier les chemins suivant dans /etc/munin/munin.conf
#dbdir /var/lib/munin #htmldir /var/cache/munin/www #logdir /var/log/munin #rundir /var/run/munin
Puis :
# /etc/init.d/munin restart
Et si cela ne fonctionne toujours pas, je vous invite à faire un tour dans les logs /var/log/munin/ (ils sont assez bien fournis)
Les graphs sont mis à jour toutes les 5 min, vous pouvez changer cette intervalles dans la crontab nano /etc/cron.d/munin (pensez à adapter vos clients en conséquence).
Rajouter un client :
Je redonne la commande d'installation d'un client :
# aptitude install munin-node munin-plugins-extra
Il faut cette fois spécifier l'ip du serveur au client :
# nano /etc/munin/munin-node.conf
#allow ^127\\.0\\.0\\.1$ allow ^192.168.0.239$
(chez moi c'est 192.168.0.239, à vous d'adapter )
On pense à faire :
# /etc/init.d/munin-node restart
Maintenant sur le serveur, il faut rajouter une entrée pour votre client :
# nano /etc/munin/munin.conf
exemple pour mes clients :
[RaspberryPI.phisical] address 192.168.0.200 use_node_name yes [XMPP.ovz] address 192.168.0.241 use_node_name yes
Le nom est renseigner entre les "[ ]", j'y indique le nom et le type de machine, afin des les classer par catégories.
Ne pas oublier :
# /etc/init.d/munin restart
Ajouter de nouveaux graphs avec des plugins :
L'intérêt de Munin, c'est de pouvoir grapher ce que l'on veut !
Quelques exemples :
-
Monitorer températures, voltages, et vitesses des ventilateurs :
(Dans mon cas, j'ai déjà installé lm_sensors, et j'ai déjà détecté mes sondes)# cd /etc/munin/plugins/
# ln -s /usr/share/munin/plugins/sensors_ sensors_fan # ln -s /usr/share/munin/plugins/sensors_ sensors_volt # ln -s /usr/share/munin/plugins/sensors_ sensors_temp
# /etc/init.d/munin-node restart
Et on vérifie si les plugins sont bien pris reconnus :
#munin-node-configure [...] sensors_ | yes | volt temp fan [...]
Voilà ce que donne le graphique des températures (mis à jours toutes les 5 min) :
-
Grapher le nombre de requêtes MySQL :
# cd /etc/munin/plugins/
# ln -s /usr/share/munin/plugins/mysql_queries mysql_queries
# /etc/init.d/munin-node restart
Le résultat :
Voici à quoi ressemble mon Munin, lorsque je contacte le serveur : http://monchemin.fr/munin
Et voici la vue (partielle) d'un client :