Génération des graphiques en CGI
Dans sa configuration par défaut, munin crée à chaque récupération de données les graphiques de monitoring...
Or, la création de ces graphiques nécessitent fortement le cpu du serveur. Si l’on est sur une machine modeste et que ces graphiques ne sont pas souvent consultés, on fait tourner le cpu plus qu’il ne le devrait.
La solution est donc de passer la génération de ces graphiques en CGI afin de ne les générer que lorsqu’ils sont consultés.
Dans la configuration de munin :
- sudo nano /etc/munin/munin.conf
Il suffit d’ajouter ces lignes en début de fichier :
- graph_strategy cgi
- cgiurl /cgi-bin
- cgiurl_graph /cgi-bin/munin-cgi-graph
Puis de modifier notre configuration d’apache, dans notre fichier de configuration de munin par exemple :
- nano /etc/apache2/sites-available/munin
Rajouter ces lignes :
- ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
- <Directory /usr/lib/cgi-bin>
- AllowOverride None
- Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
- Order allow,deny
- Allow from all
- </Directory>
Puis de redémarrer le serveur apache :
- /etc/init.d/apache2 restart
Dorénavant les graphiques sont créés par Apache lui-même lors de l’appel à la page et non plus par Munin, il est donc nécessaire qu’Apache puisse écrire ces fichiers et donc changer les droits de certains fichiers et répertoires :
- sudo chgrp www-data /usr/share/munin/munin-graph
- sudo chgrp www-data /var/log/munin /var/log/munin/munin-graph.log
- sudo chmod g+w /var/log/munin /var/log/munin/munin-graph.log
- sudo chgrp -R www-data /var/cache/munin/www/
- chmod -R g+w /var/cache/munin/www/
Les graphiques de l’interface web ont dorénavant changé d’adresse, si vous regardez la source du html produit, ils devraient ressembler à quelque chose du genre : /cgi-bin/munin-cgi-graph/domaine.tld/serveur.domaine.tld/smart_sdb-day.png
NB : Si les graphiques n’apparaissent pas, vérifiez qu’une directive ScriptAlias /cgi-bin/
n’est pas déjà définie pour le domaine de munin par exemple.
Modification de la rotation des fichiers de logs
Les graphiques sont dorénavant créés par l’utilisateur du serveur Apache donc à la fois les utilisateurs Apache et Munin doivent pouvoir accéder aux fichiers de logs des graphiques et notamment lors de leur rotation.
Dans un premier temps, on donne les bons droits aux fichiers de logs :
- sudo chgrp www-data /var/log/munin /var/log/munin/munin-graph.log
- sudo chmod g+w /var/log/munin /var/log/munin/munin-graph.log
Et on s’occupe de la rotation, pour ce faire il est nécessaire de modifier le fichier /etc/logrotate.d/munin
:
- sudo nano /etc/logrotate.d/munin
Vous devrier avoir les lignes suivantes :
- /var/log/munin/munin-graph.log {
- daily
- missingok
- rotate 7
- compress
- notifempty
- create 640 munin adm # !!!
- }
Il suffit de modifier la ligne create
en :
- create 660 munin www-data
Cas de l’utilisation d’Alternc
Si vous utilisez Alternc, ce panel défini déjà une directive ScriptAlias
qui peut rendre inefficace celle que l’on vient de mettre en place.
Pour pallier à ce problème il suffit d’utiliser le répertoire défini par alternc pour utiliser les scripts CGI. Pour ce faire, il suffit de supprimer les directives que l’on vient d’ajouter et de faire :
- sudo ln -s /usr/lib/cgi-bin/munin-cgi-graph /var/alternc/cgi-bin/munin-cgi-graph
Puis de redémarrer le serveur Apache :
- sudo /etc/init.d/apache2 restart