Munin est un logiciel libre et open-source permettant d'avoir un historique des différents état que peuvent avoir les applications, logiciels ou matériel tel que Squid, CPU, RAM, Apache, Nginx, Firewall, etc. Il est très souvent utilisé lors d'un incident car il permet de savoir dans quel état était la machine à un instant donnée.
C'est vraiment très simple :
apt install munin
Si vous utiliser une petite machine, il est possible de réduire le nombre maximal de processus. Cela permet de consommer moins de mémoire.
nano /etc/munin/munin.conf
On peut ajouter ce paramètre :
max_processes 4
Les plugins disponible de trouve dans le dossier /usr/share/munin/plugins/ et la liste des plugins chargés se trouve dans /etc/munin/plugins/ .
Admettons que l'on ne veut pas le graph des entropy :
unlink /etc/munin/plugins/entropy
Mais que l'on veut celui correspondant au nombres de requêtes MySQL :
ln -s /usr/share/munin/plugins/mysql_queries /etc/munin/plugins/
Vérifier que les plugins ne manque de rien :
munin-node-configure --suggest
Notamment dans le cas de MySQL, il y a besoin d'installer le paquet suivant :
apt install libcache-cache-perl
Prendre en compte les modifications :
/etc/init.d/munin-node restart
Il est possible de forcer la création des graph :
sudo -u munin munin-cron
Voici la liste des plugins désactivés et activés sur mon serveur personnel :
Rendons accessible Munin via le domaine munin.domaine.com. On créer alors le vhost suivant :
nano /etc/nginx/site-enabled/munin.conf
server { listen 0.0.0.0:80; server_name munin.domaine.com; root /var/cache/munin/www; access_log /var/log/nginx/munin.domaine.com.access; error_log /var/log/nginx/munin.domaine.com.error error; }
On vérifie qu'il n'y a pas d'erreurs de syntaxes puis on recharge la configuration:
nginx -t /etc/init.d/nginx reload
Admettons que nous souhaitons monitorer un serveur en 192.168.0.12 en plus (son maître aura pour IP 192.168.0.19). Nous aurons alors besoin de ce paquet et de ses dépendances :
apt install munin-node
Avec une petite configuration rapide :
munin-node-configure --suggest --shell
On indique à Munin que le serveur maître peut communiquer avec lui en ajoutant la directive “allow”:
nano /etc/munin/munin-node.conf allow ^192\.168\.0\.19$
Il reste plus qu'a indiquer au serveur maître qu'il a un autre node à monitorer :
nano /etc/munin/munin.conf [machine.domaine.com] address 192.168.0.12 use_node_name yes
Pour prendre en compte ces nouveautés, on redémarre le service :
/etc/init.d/munin-node restart
# ls -lah /usr/share/munin/plugins/*apache* # munin-run apache_accesses accesses80.value 10598855