Monitoring de serveurs avec Munin
Installation
Munin est un outil de monitoring fonctionnant par script et collectant des informations sur le systeme à interval régulier (5min par défaut), Munin affiche des graphiques concernants des informations qu’il collecte dans /proc. Les graphiques sont accessibles via apache, il faut donc également sécuriser l’accès à celui-ci. Il faut installer trois choses différentes :
- le programme munin,
- le daemon munin-node qui va monitorer les informations système,
- et apache2 qui nous permettra de visualiser les graphiques.
Mise à jour :
apt-get update apt-get upgrade
On installe apache sur le premier serveur à monitorer :
apt-get install apache2 apache2.2-common
La configuration d’apache sera faite plus tard, une fois qu’on aura vérifé que Munin fonctionne. On installe ensuite Munin et Munin-Node :
apt-get install munin munin-node
L’ensemble des fichiers de configuration se trouve dans /etc/munin.
Configuration
Dans un premier temps, on va configurer Munin:
nano /etc/munin/munin.conf
Il y a deux sections importantes :
dbdir /var/lib/munin : repertoire de stockage des données htmldir /var/www/munin : repertoire d'accés aux graphiques logdir /var/log/munin : repertoire de stockage des logs rundir /var/run/munin : repertoire contenant le pid du processus
La section contenant l’arbre des machines à surveiller :
# a simple host tree [Server_Datas] # nom de la machine address 127.0.0.1 # son ip use_node_name yes
On configure ensuite munin-node :
$ nano /etc/munin/munin-node.conf allow ^127.0.0.1$ #défini l'ip pouvant se connecter à munin-node # Section importante : host_name localhost.localdomain # à configurer dans le cas ou les noms de machines n'apparaissent pas sur l'interface web
Configuration des plugins
Chaque graphique est généré par un plugin different, les plugins sont stockés dans /usr/share/munin/plugins, pour installer un plugin il suffit de créer un lien relatif vers /etc/munin/plugins :
ln -s /usr/share/munin/plugins/mon_plugin /etc/munin/plugins
Les plugins dont le nom termine par le caractere ‘_’ prennent en argument le nom du périphérique à surveiller, par exemple : if_eth0 pour eth0. Pour supprimer un plugin il suffit de faire :
rm etc/munin/plugins/mon_plugin
Une fois les plugins installés, on redémarre munin-node :
/etc/init.d/munin-node restart
Une fois les plugins installés et munin-node redemarré, on accede aux graphiques via un navigateur web :
http://adresse_ip_du_serveur/munin
Ce qui devrait donner quelque chose comment ceci : <image à venir /> On constate qu’il y a deux serveurs à monitorer, il faut donc passer à la configuration du deuxième serveur. On met à jour la machine et on installe le paquet munin-node (et celui-là uniquement) :
apt-get install munin-node
On édite le fichier /etc/munin/munin-node.conf et on lui rajoute l’ip de la machine autorisée à accèder aux daemon :
allow ^127.0.0.1$ allow ^ip.de.la.machine$
Sur notre premier serveur, il faut configurer l’arbre d’affichage des machines, pour cela on édite /etc/munin/munin.conf et on ajoute la deuxième machine à monitorer:
[Server_one] # nom de la machine address 127.0.0.1 # son ip use_node_name yes [Server_two] # nom de la machine address xxx.xxx.xxx.xxx # son ip use_node_name yes
On choisi les plugins de la même manière (liens relatifs…) et on redémarre le daemon :
/etc/init.d/munin-node restart
Sécurisation
Et voilà, notre système de monitoring est fonctionnel. Il ne reste plus qu’à en sécuriser l’accés. Pour cela on va utiliser un système d’authentification fort d’apache : le mode digest. On édite /etc/apache2/apache2.conf et on ajoute :
<Directory /var/www/munin/> AllowOverride AuthConfig Options Indexes MultiViews FollowSymLinks Order deny,allow Allow from all </Directory>
Dans /var/www/munin/ on créé un fichier .htaccess qu’on édite :
$ nano /var/www/munin/.htaccess AuthType Digest # nom à renseigner pour le mot de passe AuthName "munin" AuthDigestProvider file # le nom du fichier de mot de passe AuthUserFile /etc/apache2/.digest-test <Limit GET POST> Require valid-user </Limit>
On lui donne les bons droits :
chown www-data .htaccess chmod 400 .htaccess
On créé le fichier de mot de passe :
htdigest -c /etc/apache2/.digest-test munin mon_userRemarque : la syntaxe est la même mais sans -c pour ajouter un utilisateur On redémarre apache et voilà, lorsqu’on tape l’url de Munin dans notre navigateur, ce dernier nous demande le mot de passe qui va bien. Ne pas oublier d’autoriser le trafic sur les ports 4949 pour que clients et serveur Munin puissent envoyer/ recevoir leurs stats. source: izda