Monitoring – Munin
Je vais ici vous parler de Munin.
C’est un outils de génération de graphs basé sur rrdtool.
Il permet de grapher toute sorte de chose vachement bien, et comme j’en suis pleinement convaincu, je vais vous le présenter ici.
L’intégration de plugins supplémentaire afin de grapher des choses non prévu à la base est enfantine.
Il existe pas mal de munin publique qui peuvent vous permettre de vous rendre compte de la puissance de l’outils.
Allez par exemple visualiser : https://supervision.globenet.org/munin/
Geeknode génére sa page statistique grace à des plugins Munin homemade également :
Allez visualiser : http://www.geeknode.org/statistiques.html
J’espère ainsi vous avoir donné l’envie d’aller voir plus loin avec ce soft très bien fait.
Munin se décompose en 2 parties :
Le grapheur munin sur une machine qui va se charger de la surveillance, c’est la machine qui va s’occuper d’interroger tous les nodes, et de générer les graphiques à partir des fichiers rrd collectés.
Le démon munin-node sur chaque machine qui va fournir son état au grapheur.
Evidement, si vous n’avez qu’un seul serveur vous aurez a exécuter munin-graph et munin-node sur la même machine.
munin-node.conf doit binder sur 127.0.0.1 (host) et n’a pas besoin d’accepter autre chose que 127.0.0.1 (allow) dans le cas d’une machine simple.
Si vous avez plusieurs machines à grapher vous devez bien sur écouter sur une ipv4 publique afin que le grapher puisse récupérer vos données.
Pour firewaller munin-node :
OUTPUT TCP 4949 sur le munin-graph
On install munin-node sur les machines à surveiller
MUNIN-NODE est à installer sur toutes les machines que l’on veut grapher.
Installation du daemon munin-node sous Gentoo :
emerge -av net-analyzer/munin
Installation du daemon munin-node sous Debian
Configuration du daemon munin-node
On importe les plugins sous gentoo :
On ajoute les plugins de base
Sous debian les plugins de base en fonction des services tournant sur la machine sont par defaut activés.
ln -s /usr/libexec/munin/plugins/swap
ln -s /usr/libexec/munin/plugins/memory
ln -s /usr/libexec/munin/plugins/processes
ln -s /usr/libexec/munin/plugins/if_ /etc/munin/plugins/if_eth0
ln -s /usr/libexec/munin/plugins/if_ /etc/munin/plugins/if_eth1
ln -s /usr/libexec/munin/plugins/uptime
ln -s /usr/libexec/munin/plugins/cpu
ln -s /usr/libexec/munin/plugins/load
ln -s /usr/libexec/munin/plugins/df
ln -s /usr/libexec/munin/plugins/interrupts
ln -s /usr/libexec/munin/plugins/iostat
ln -s /usr/libexec/munin/plugins/netstat
ln -s /usr/libexec/munin/plugins/users
On ajoute les plugins apache
ln -s /usr/libexec/munin/plugins/apache_processes
ln -s /usr/libexec/munin/plugins/apache_volume
On autorise le serveur à grapher à accéder au munin-node
* /etc/munin/munin-node.conf
allow ^IP.PRIVE.DU-SERVEUR-QUI-GRAPH.ETH1$
* au passage on bind le munin-node sur eth1 aussi, ça évite d’écouter inutilement sur toutes les autres interfaces
host IP.PRIVE.DE.CETTE.MACHINE
Exemple de fichier munin-node.conf
log_file /var/log/munin/munin-node.log
port 4949
pid_file /var/run/munin/munin-node.pid
background 1
setseid 1
# Which port to bind to;
host *
user root
group root
setsid yes
# Regexps for files to ignore
ignore_file ~$
ignore_file .bak$
ignore_file %$
ignore_file .dpkg-(tmp|new|old|dist)$
ignore_file .rpm(save|new)$
allow ^10.0.69.250$
Installation du grapheur
Sous Gentoo :
emerge -av munin
Sous Debian :
Exemple de fichier munin.conf
htmldir /var/www/munin
logdir /var/log/munin
rundir /var/run/munin
tmpldir /etc/munin/templates
[localhost.localdomain]
address 127.0.0.1
use_node_name yes
[brag-nas]
address 10.0.69.240
use_node_name yes
[satanas.bragon.info]
address 10.0.69.45
use_node_name yes
[lucifer.bragon.info]
address 10.0.69.1
use_node_name yes
crontab
Une crontab doit logiquement s’etre ajouté lors de l’installation sur le grapher pour l’utilisateur munin :
# m h dom mon dow command
*/5 * * * * [ -x /usr/bin/munin-cron ] && /usr/bin/munin-cron
Si la crontab ne s’est pas mise en place rajoutez la.
Exemples de graphs
Et enjoy les supra bien graph )