Archives mensuelles : novembre 2014

Des scripts d’init pour Munin en mode CGI

Munin est un superbe outil de moni­to­ring, mais il souffre d’un petit défaut (je vous rassure tout de suite,la réso­lu­tion de ce défaut est inté­grée à Munin) : il crée les pages HTML et les graphes à chaque récu­pé­ra­tion de données sur les nœuds surveillés.

Quand on surveille beau­coup de nœuds et/ou qu’on a beau­coup de sondes, cela alour­dit forte­ment la charge de la machine qui héberge le programme de collecte des données.

Pour remé­dier à cela, plutôt que de travailler à chaque collecte de données, on va dire à Munin de lais­ser cette tâche à des script CGI qui géné­re­ront l’HTML et les graphes à la volée, lors de la consul­ta­tion des pages de super­vi­sion en mettant ces direc­tives dans le fichier /etc/munin/munin.conf :

html_strategy cgi
graph_strategy cgi

Il faudra alors adap­ter la confi­gu­ra­tion de son serveur web pour utili­ser ces scripts CGI. Si la confi­gu­ra­tion d’Apache est aisée et bien docu­men­tée, celle de Nginx est un peu plus pauvre.

En effet, Nginx n’étant pas conçu pour lancer de lui-même des script CGI, il faut avoir recours à spawn-fcgi pour lancer les programmes en arrière-plan. Hors, il n’y a pas de script d’init pour spawn-fcgi. Il faudra donc, soit démar­rer les services à la main après un reboot du serveur, soit mettre la ligne de commande dans /etc/rc.local.

La première solu­tion est fasti­dieuse tandis que la deuxième est juste crade.

J’ai donc écrit des scripts d’init pour les scripts CGI de Munin avec spawn-fcgi.

Télé­char­gez cette archive : munin-cgi.tar.bz2 et copiez là sur votre serveur.

tar xvf munin-cgi.tar.bz2
sudo mv munin-cgi /etc/default
sudo mv munin-cgi-html munin-cgi-graph /etc/init.d
sudo update-rc.d munin-cgi-html defaults
sudo update-rc.d munin-cgi-graph defaults
sudo service munin-cgi-html start
sudo service munin-cgi-graph start

Bien évidem­ment, adap­tez /etc/default/munin-cgi à votre instal­la­tion de Munin

Enjoy :-)

Bonus : j’ai écrit un papier avec Alexandre Simon (mon boss) sur Munin pour les JRES 2013. C’est par ici.

Double bonus : pour le troll, on peut dire que systemd permet­tra d’écrire bien plus faci­le­ment des scripts d’init pour ce genre de problèmes.

EDIT : si les services ne démarrent pas, jetez un œil dans /var/log/munin et assu­rez-vous que les fichiers munin-cgi-html.log et munin-cgi-graph.log appar­tiennent bien à l’uti­li­sa­teur et au groupe munin.

Me soutenir sur Tipeee Me soutenir sur Liberapay