Mise en place de Munin sur Debian 7 Wheezy

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