Cet article a pour but de présenter les différentes étapes nécessaires à la mise en place d’une version récente de Munin sur Debian 7 Wheezy, donc plus récente que la version 2.0.6-4 présente actuellement dans le dépot « stable » de Debian :
munin (2.0.6-4+deb7u2)
munin-common (2.0.6-4+deb7u2)
munin-doc (2.0.6-4+deb7u2)
munin-node (2.0.6-4+deb7u2)
munin-plugins-core (2.0.6-4+deb7u2)
munin-plugins-extra (2.0.6-4+deb7u2)
La version 2.0.6-4 présente comme principal défaut, en tout cas dans mon cas, de ne tout simplement pas fonctionner… Aucun plugin ne se charge dans cette version, donc pas de monitoring…
Pour installer une version plus récente, en conservant les futures mises à jour des paquets, il faut passer par les dépot « backports ».
Pour faire cela, il faut éditer le fichier sources.list d’apt :
sudo -s
vi /etc/apt/sources.list
et ajouter les lignes suivantes :
# Backports repository
deb http://ftp.debian.org/debian wheezy-backports main contrib non-free
ensuite une petite mise à jour de la liste des paquets :
apt-get update
Nous pourrions à ce moment installer les paquets qui vont bien simplement en ajoutant « -t wheezy-backports », sauf que non, nous voulons en plus pouvoir simplement mettre à jour ces paquets avec les futures version qui sortiraient dans les backports !
Il faut alors utiliser le mécanisme de « pinning » d’apt pour lui dire d’aller, pour ces paquets, piocher dans le dépots « backports » au lieu de « stable ».
On ajoute donc un fichier dans le répertoire /etc/apt/preferences.d :
vi /etc/apt/preferences.d/munin
Dans ce fichier on place le contenu suivant :
Package: munin munin-async munin-common munin-doc munin-node munin-plugins-core munin-plugins-extra munin-plugins-java
Pin: release o=Debian Backports,a=wheezy-backports,n=wheezy-backports,l=Debian Backports,c=main
Pin-Priority: 1000
Ceci fait, si on essaye d’installer munin, on se verra alors proposer la version actuelle du dépot « backports », la version 2.0.21-2.
Dans l’ordre, nous allons commencer par installer ce qui sera notre serveur munin (celui qui ira récupérer les données depuis les serveurs surveillés), puis nous installerons le « client » munin qui servira de démon sur chaque machine pour que le serveur récupère leurs statistiques.
1 – installation du serveur
Toutes les commandes suivantes sont passées sous l’utilisateur « root »… Pas bien! :O
Il faut tout d’abord vérifier qu’Apache 2 est installé
apache2 –v
Si ce n’est pas (encore) le cas, passez la commande suivante pour l’installer :
apt-get install apache2
Nous pouvons alors commencer l’installation. Il faut commencer par installer le paquet « munin » qui contient non seulement la partie serveur, mais aussi la partie client pour monitorer le serveur lui-même.
apt-get install munin
Le paquet va alors s’installer, ainsi que toutes ses dépendances.
2 – configuration du serveur
La majeure partie de la configuration se fait dans deux fichiers installés par munin.
Editez le premier fichier, configurant le serveur munin lui-même :
vi /etc/munin/munin.conf
Au début de ce fichier, quatre lignes sont particulièrement importantes :
# dbdir /var/lib/munin
# htmldir /var/cache/munin/www
# logdir /var/log/munin
# rundir /var/run/munin
Il faut décommenter ces lignes en retirant le symbole #.
Les fichiers html générés par munin pour faire les graphes seront ainsi placés dans /var/cache/munin/www.
Dans ce fichier, d’autres lignes doivent être modifiées. Celle concernant « tmpldir » doit aussi être décommentée, et la ligne juste après doit être adaptée pour indiquer le nom du serveur sous un format compréhensible (non, localhost.localdomain n’est pas franchement explicite).
tmpldir /etc/munin/templates
[ServeurMunin]
address 127.0.0.1
use_node_name yes
Cette section sera très importante pour la configuration des autres serveurs devant être monitorés, nous y reviendrons.
Nous devons ensuite adapter la configuration Apache de munin pour permettre les accès extérieurs.
vi /etc/munin/apache.conf
Au début du fichier, la section suivante est présente :
Alias /munin /var/www/munin
Order allow,deny
Allow from localhost 127.0.0.0/8 ::1
Options None
Il faut remplacer la ligne :
Allow from localhost 127.0.0.0/8 ::1
Par la ligne :
Allow from all
Pour sécuriser l’accès et empêcher tous le monde d’accéder au serveur, nous pouvons aussi décommenter plus bas dans le fichier :
AuthUserFile /etc/munin/munin-htpasswd
AuthName "Munin"
AuthType Basic
require valid-user
Pour ajouter le premier utilisateur qui aura accès au serveur munin :
htpasswd -c /etc/munin/munin-htpasswd admin
Entrez ensuite le mot de passe de l’utilisateur pour l’ajouter.
Adaptez enfin les droits du fichier pour que le propriétaire soit l’utilisateur munin et le groupe munin :
chown munin:munin /etc/munin/munin-htpasswd
Il faut alors relancer les services Apache2 et munin-node pour commencer à voir arriver quelques données sur le serveur munin :
sudo service munin-node restart
sudo service apache2 restart
Pour vous connecter, accéder simplement à l’url suivante avec un navigateur :
http://votre_adresse_ip/munin
Si vous obtenez le message suivant :
Forbidden
You don't have permission to access /munin/ on this server.
C’est a priori que vous n’avez pas attendu assez longtemps! Patientez encore quelques minutes avant d’avoir peur…
Si au bout de 10 minutes vous n’avez toujours rien, connectez vous en telnet sur le serveur local, sur le port 4949, et passez la commande « list » :
telnet localhost 4949
Trying ::1...
Connected to localhost.
Escape character is '^]'.
# munin node at serveur-apache
list
cpu df df_inode entropy exim_mailstats forks fw_packets http_loadtime if_err_eth0 if_err_eth1 if_eth0 if_eth1 interrupts irqstats load memory munin_stats nfs4_client nfs_client nfsd nfsd4 open_files open_inodes proc_pri processes swap threads uptime users vmstat
fetch cpu
user.value 107518
nice.value 535628
system.value 35516
idle.value 24912227
iowait.value 11131
irq.value 0
softirq.value 14521
steal.value 0
guest.value 0
.
quit
Connection closed by foreign host.
3 – configuration des machines distantes
La configuration des machines distantes est en fait assez simple. Pour faire court, il faut installer le paquet « munin-node » et autoriser l’ip du serveur munin au niveau de munin-node.
L’installation se fait simplement avec :
apt-get install munin-node
Et pour la configuration :
vi /etc/munin/munin-node.conf
Il faut ensuite chercher la ligne contenant « allow ^127\.0\.0\.1$ ».
Cette ligne doit être modifiée pour indiquer l’adresse IP du serveur munin. Il est vital de conserver le format, avec une adresse IP commençant par « ^ » et finissant par « $ », avec chaque bloc de l’adresse IP intercalé de « \. ».
Dans mon cas, la ligne est devenue :
allow ^192\.168\.59\.11$
Enregistrez et fermez le fichier, puis relancez le service :
service munin-node restart
Retournez sur le serveur munin, puis dans le fichier de configuration du moteur munin :
vi /etc/munin/munin.conf
Retournez dans la section de tout à l’heure, juste après
[ServeurMunin]
address 127.0.0.1
use_node_name yes
Dupliquez ce bloc, en adaptant le nom de la machine et l’adresse IP, ce autant de fois que vous avez de serveurs à monitorer.
Enregistrez et fermez le fichier, puis relancez le service apache :
service apache2 restart
Après quelques minutes, vous devriez voir apparaître les graphes de vos autres serveurs…
Sources :
– pour le pinning des paquets munin, ici
– pour la configuration de munin lui même, ici
Laisser un commentaire
Vous devez vous connecter pour publier un commentaire.