Mise en place d’une plateforme LAMP – Partie 3

By | 17 mai 2012

Cet article est la suite de Mise en place d’une plateforme LAMP – Partie 2. Dans cette troisième et dernière partie, nous allons nous consacrer à un outil permettant de monitorer l’ensemble de notre plateforme linux, Munin.

Présentation de Munin

Le nom de Munin vient de la mythologie nordique, Munin et Hugin étaient des corbeaux qui parcouraient le monde la journée, et reportaient tout ce qu’ils avaient vu à Odin (Et pour le coup Odin c’est vous :p). Munin était la mémoire, le reporteur tandis que Hugin était la pensée. Voici le lien de l’article wikipedia, Hugin et Munin si ça vous intéresse.

Munin est composé de 2 parties, Munin, le grapheur et Munin-node les reporteurs.

Le grapheur Munin aura la charge d’aller lire les reports des noeuds Munin sur les différents serveurs que vous désirez monitorer, et vous permettra de les exploiter à travers des graphes.

Les Munin-node ont pour objectif de reporter tout ce qu’il se passe sur les serveurs sur lesquels ils sont installés.

Installation de Munin

Nous allons installer Munin via les paquets.

Sur notre machine de monitoring:

$> apt-get install munin munin-node

Le fichier de configuration de munin vous permet d’indiquer à Munin, quels hôtes il devra surveiller. Le fichier se trouve dans /etc/munin/munin.conf. Le fichier de configuration par défaut ne contient que très peu d’informations:

#/etc/munin/munin.conf
includedir /etc/munin/munin-conf.d

[localhost.localdomain]
    address 127.0.0.1
    use_node_name yes

La première ligne indique à Munin d’inclure tout les fichiers de configuration contenu dans le dossier /etc/munin/munin-conf.d/. Les 3 dernières lignes indique à Munin un serveur à surveiller, le nom du serveur (localhost.localdomain), son adresse ip.

Nous allons créer un dossier qui sera destiné à stocker toutes les configurations des serveurs à surveiller:

$> mkdir /etc/munin/pool.d

Ensuite nous allons indiquer à Munin de charger les fichiers de configuration dans ce dossier et supprimer le noeud localhost pour le déplacer dans le dossier /etc/munin/pool.d.

Voici à quoi devrait ressembler votre fichier de configuration Munin

#/etc/munin/munin.conf
includedir /etc/munin/munin-conf.d
includedir /etc/munin/pool.d

Le fichier de configuration de localhost

#/etc/munin/pool.d/localhost
[localhost.localdomain]
    address 127.0.0.1
    use_node_name yes

Par défaut Munin va générer ses reports html dans /var/cache/munin/www, pour ma part je vais considérer Munin comme un site à part entière. Je vais donc le configurer de façon à ce qu’il génère ses fichiers dans /opt/hosting/munin/www. Il suffit d’ajouter une ligne au fichier de configuration Munin.

#/etc/munin/munin.conf
htmldir /opt/hosting/munin/www

includedir /etc/munin/munin-conf.d
includedir /etc/munin/pool.d

Pensez à créer le dossier et à modifier le propriétaire:

$> mkdir -p /opt/hosting/munin/www
$> chown -R munin:munin /opt/hosting/munin/www

Configurer Nginx pour Munin

Pour que Nginx puisse fonctionner avec Munin, il faut activer le module status. Pour savoir si Nginx a été compilé avec le module il suffit de le vérifier via l’option -v:

$> /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.2.0
built by gcc 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
configure arguments: --prefix=/usr/local/nginx-1.2.0/ --with-http_stub_status_module

Si vous ne voyez pas l’option –with-http_stub_status_module, vous devrez recompiler Nginx de façon à activer le module.

Une fois Nginx recompilé avec le module, nous allons rajouter sur la configuration de localhost les directives suivantes:

#/usr/local/nginx/sites-available/localhost
location /nginx_status {
        stub_status on;
        access_log off;
        allow 127.0.0.1;
        deny all;
}

location /munin {
        alias  /opt/hosting/munin/www;
}

Une fois les quelques lignes ci-dessus ajoutées à la configuration de localhost, nous pouvons redémarrer Nginx pour qu’il prenne en compte nos dernières modifications.

L’installation est maintenant terminée en ce qui concerne Munin en local. Lorsque vous vous rendez sur l’url http://localhost/munin vous devriez voir vos graphs.

Ajout de node Munin

Sur chaque serveur que vous voudrez monitorer il vous faudra installer le paquet munin-node. Afin de faciliter la lecture, je vais appeler le serveur de monitoring Monitor, et le serveur à surveiller Node1.

Donc Monitor surveille et Node1 est le serveur surveillé, ok ?

Nous allons donc commencer par l’installation de munin-node sur Node1

$> apt-get install munin-node

Une fois le paquet installé, il faudra autoriser Monitor à s’y connecter. Rien de bien compliqué, il suffit d’ajouter dans le fichier de configuration de Node1 l’ip de Monitor:

#/etc/munin/munin-node.conf
allow ^000\.000\.000\.000$ # ip du serveur de monitoring

Maintenant que votre munin-node est installé et configuré, nous allons l’ajouter dans la liste des serveurs à monitorer sur Monitor. Pour ajouter le serveur il suffit de créer un fichier portant le nom du serveur dans /etc/munin/pool.d/Node1:

#/etc/munin/pool.d/Node1
[Node1]
    address 000.000.000.000 # Ip de Node1
    use_node_name yes

Redémarrage de munin pour qu’il prenne en compte le nouveau serveur:

$> /etc/init.d/munin-node restart

Voilà l’installation de Munin est terminée, vous devriez voir apparaître votre nouveau serveur. L’ajout d’un nouveau serveur à monitorer ne devrait pas vous prendre plus de 10min.

Category: Php