Ceci est une ancienne révision du document !
~~CLOSETOC~~
Munin - Installation d'un outil d'analyse des ressources
munin collecte et analyse les ressources utilisées par les serveurs qu'il surveille. Dans le cadre du MCO, l'outil permet à l'administrateur de connaître l'état précis des ressources d'un serveur et leurs évolutions dans le temps.
- Référence : Munin
<note>Cette procédure a été réalisée et testée sur une VM debian 10.</note>
<note warning>Cette procédure nécessite des droits root. Faîtes donc attention à ce que vous faîtes.</note>
Prérequis
muninnécessite un serveurapache2correctement configuré. Pour cela, on met à jour les dépôtsAPT:
apt-get update
- On installe les paquets nécessaires :
apt-get install -y apache2 libcgi-fast-perl libapache2-mod-fcgid
- On active les modules
apache2:
a2enmod fcgid
Installation du serveur
- On commence par mettre le dépôt
APTà jour :
apt-get update
- On installe les paquets nécessaires :
apt-get install -y munin
Configuration
- On édite le fichier de configuration de
munin:
nano /etc/munin/munin.conf
- Au début du fichier :
- On décommente la ligne
dbdir. - On décommente la ligne
htmldiret on modifie sa valeur par/var/www/munin. - On décommente la ligne
logdir. - On décommente la ligne
rundir. - On décommente la ligne
tmpldir.
- Plus bas dans le document (on peut rechercher avec
CTRL+Wla sectiona simple host tree) :- On supprime la valeur entre
[]et on la remplace par leFQDNdu serveurmunin.
- On enregistre avec
CTRL+Oet on quitte avecCTRL+X. - On crée le dossier web de
munin:
mkdir -p /var/www/munin
- On change le propriétaire du dossier créé :
chown munin:munin /var/www/munin
- On crée un lien symbolique du fichier de configuration
/etc/munin/apache24.confdans le dossier/etc/apache2/conf-available/:
cd /etc/apache2/conf-available/ ln -s /etc/munin/apache24.conf ./munin.conf
- On modifie la configuration :
nano /etc/apache2/conf-available/munin.conf
- La configuration doit ressembler à ça :
# Munin configuration for apache2
#
# Apache can serve munin's files that are either statically generated
# (in a cron job) or generated on demand (via cgi).
# The relevant munin settings are "html_strategy" and "graph_strategy".
# The related apache settings can be adjusted at the end of this file.
#
# See /usr/share/doc/munin/README.Debian for details.
# ***** COMMON SETTINGS FOR ALL STRATEGIES *****
ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph
Alias /munin/static/ /var/www/munin/static/
<Directory /var/www/munin>
Require all granted
Options FollowSymLinks SymLinksIfOwnerMatch
</Directory>
<Directory /usr/lib/munin/cgi>
Require all granted
Options FollowSymLinks SymLinksIfOwnerMatch
<IfModule mod_fcgid.c>
SetHandler fcgid-script
</IfModule>
<IfModule !mod_fcgid.c>
SetHandler cgi-script
</IfModule>
</Directory>
# ***** SETTINGS FOR CGI/CRON STRATEGIES *****
# pick _one_ of the following lines depending on your "html_strategy"
# html_strategy: cron (default)
Alias /munin /var/www/munin
# html_strategy: cgi (requires the apache module "cgid" or "fcgid")
#ScriptAlias /munin /usr/lib/munin/cgi/munin-cgi-html
- On modifie le cron
/etc/cron.d/muninpour remplacer/var/cache/munin/wwwpar/var/www/munin. - On redémarre les services :
systemctl restart munin.service systemctl restart munin-node.service systemctl restart apache2.service
<note tip>Félicitations, vous devriez désormais avoir accès à votre serveur munin via l'adresse http://ip_du_serveur_munin/munin.</note>
Installation d'un client
- On commence par mettre à jour les dépôts
APT:
apt-get update
- On installe les paquets nécessaires :
apt-get install -y munin-node munin-plugins-extra
- Par défaut, tous les plugins utilisables sont activés. Pour avoir la liste complète des plugins et la raison de leur inactivité (le cas échéant), on peut exécuter la commande suivante :
munin-node-configure --suggest
- Pour activer un plugin, il suffit de créer un lien symbolique entre son dépôt
/usr/share/munin/plugins/et le dossier actif/etc/munin/plugins/. Par exemple, pour le pluginacpi:
cd /etc/munin/plugins/ ln -s /usr/share/munin/plugins/acpi .
- Une fois les plugins souhaités activés, il faut autoriser le serveur à récupérer les informations. Pour cela, on édite le fichier
/etc/munin/munin-node.conf:
nano /etc/munin/munin-node.conf
- On ajoute l'adresse de notre serveur maître sous la forme d'une expression régulière (
regex). Par exemple, pour un serveur dont l'adresse IP est192.168.20.54, la ligne à ajouter sera :
allow ^192\.168\.20\.54$
- Une fois la modification faîte et enregistrée, on redémarre le service :
service munin-node restart
- De retour sur le serveur, on va dans le dossier
/etc/munin/munin-conf.d:
cd /etc/munin/munin-conf.d
- Ici, on peut créer des groupes pour catégoriser les postes clients, par exemple ; bdd, web, prod, etc…
- Donc, si il n'existe pas encore, on crée le fichier de groupe pour notre client, disons qu'il s'agit d'un serveur de base de données
MySQL, on créera donc le fichierbdd.conf:
touch bdd.conf
- On peut alors éditer le fichier de configuration correspondant au groupe choisi pour le client (ici, bdd.conf) :
nano bdd.conf
- On ajoute les informations du client. Par exemple pour la machine
srv-mysql, dans le groupebddet dont l'adresse IP est192.168.20.55, on ajoutera :
[srv-mysql.bdd] address 192.168.20.55 use_node_name yes
- Il ne nous reste plus qu'à relancer le service :
systemctl restart apache2.service
<note important>munin collecte les données toutes les 5 min par défaut. C'est le temps qu'il vous faudra attendre pour voir apparaître le nouveau client sur la page web.</note>
Erreurs et Corrections
Failed to restart munin.service: Unit munin.service is masked.
- Vérifier si le fichier de service pointe sur
/dev/null:
ls -l /lib/systemd/system/munin.service # Retour lrwxrwxrwx 1 root root 9 mars 3 2017 munin.service -> /dev/null
- Dans ce cas, supprimez le fichier :
rm -f /lib/systemd/system/munin.service
- Relancez le daemon :
systemctl daemon-reload
- Vérifier le service :
systemctl status munin.service
# Retour correct :
● munin.service - LSB: Create /var/run/munin on boot
Loaded: loaded (/etc/init.d/munin; generated; vendor preset: enabled)
Active: inactive (dead)
Docs: man:systemd-sysv-generator(8)
- Si le retour est correct, relancer le service :
systemctl start munin.service
systemctl status munin.service
# Retour
● munin.service - LSB: Create /var/run/munin on boot
Loaded: loaded (/etc/init.d/munin; generated; vendor preset: enabled)
Active: active (exited) since Mon 2020-04-06 10:29:03 CEST; 6s ago
Docs: man:systemd-sysv-generator(8)
Process: 6678 ExecStart=/etc/init.d/munin start (code=exited, status=0/SUCCESS)
avril 06 10:29:03 mlb-monitor-2 systemd[1]: Starting LSB: Create /var/run/munin on boot...
avril 06 10:29:03 mlb-monitor-2 systemd[1]: Started LSB: Create /var/run/munin on boot.
— Nicolas THOREZ 2020/02/21 14:23
Discussion