Debian 8 Jessie : configurer Munin avec Spawn-fgci sous nginx

Nous avons vu dans l'article précédent comment installer Munin pour monitorer les performances de son serveur.

Dans cet article, nous allons configurer Munin pour qu'il ne génère plus les images des graphiques à chaque lecture des données monitorées.
Il utilisera à la place des scripts FCGI pour les générer en live lorsque l'on consultera les données.
Cela permet de limiter la charge CPU du serveur qui ne sera plus sollicité toutes les 5 minutes pour rafraichir les graphiques.

 

Installation de Spawn-fgci

On installe tout d'abords le paquet Spawn-fgci

sudo apt-get install spawn-fcgi

Puis nous démarrons les 2 sockets FCGI qui se chargeront de générer les graphiques et les pages HTML de Munin, lors de la consultation.

sudo spawn-fcgi -s /var/run/munin/fcgi-graph.sock -U www-data -u www-data -g www-data /usr/lib/munin/cgi/munin-cgi-graph
sudo spawn-fcgi -s /var/run/munin/fcgi-html.sock -U www-data -u www-data -g munin  /usr/lib/munin/cgi/munin-cgi-html

Ensuite, nous allons également modifier le fichier /etc/rc.local pour démarrer automatiquement ces 2 sockets au démarrage de votre serveur :

sudo nano /etc/rc.local

Et ajouter les 2 lignes suivantes avant la dernière ligne exit 0 que contient le fichier /etc/rc.local.

spawn-fcgi -s /var/run/munin/fcgi-graph.sock -U www-data -u www-data -g www-data /usr/lib/munin/cgi/munin-cgi-graph
spawn-fcgi -s /var/run/munin/fcgi-html.sock -U www-data -u www-data -g munin  /usr/lib/munin/cgi/munin-cgi-html

Voila, au prochain reboot : les 2 sockets seront automatiquement relancés.

 

Modification de la configuration de Munin

Il faut maintenant indiquer à Munin d'utiliser les sockets FCGI pour générer les graphiques et les pages HTML.

On ouvre donc le fichier de configuration de Munin

sudo nano /etc/munin/munin.conf

Puis rechercher les lignes ci-dessous et adapter la valeur des variables comme indiqué ci-dessous

graph_strategy cgi
cgiurl_graph /cgi-bin/munin-cgi-graph
html_strategy cgi

 

Ajustement de la configuration du vHost

Il faut ensuite ajouter quelques lignes à la configuration du vHost Munin pour qu'il utilise les scripts FCGI.
On ouvre la config de notre vHost Munin

sudo nano /etc/nginx/conf.d/default.conf

Pour corriger la partie dédiée à Munin pour qu'elle soit identique à ci-dessous

server {
    ....
    # Munin -- Début
    location /munin {
        alias /var/cache/munin/www/;
        index index.html;
    }

    location /munin/static/ {
        alias /etc/munin/static/;
        expires modified +1w;
    }

    location /munin/ {
        fastcgi_split_path_info ^(/munin)(.*);
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_pass unix:/var/run/munin/fcgi-html.sock;
        include fastcgi_params;
    }

    location ^~ /cgi-bin/munin-cgi-graph/ {
        access_log off;
        fastcgi_split_path_info ^(/cgi-bin/munin-cgi-graph)(.*);
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_pass unix:/var/run/munin/fcgi-graph.sock;
        include fastcgi_params;
    }
    # Munin -- Fin
    ....
}

Reste enfin à redémarrer les services Nginx et Munin

sudo systemctl restart nginx
sudo systemctl restart munin-node

Vérifier que tout fonctionne correctement et vous pouvez constater dans les graphiques Munin que la charge de Munin est maintenant réduite.

Dans l'article suivant, nous allons installer 2 plugins complémentaires pour minotorer les requêtes traitées par nginx et les nombre de connexion sur la base Mysql.
 

 

Commentaires

Portrait de Roverland

Salut geek, merci encore pour les tutorial je les suis de très prés, du coup je n'es pas comprit j'ai bien suivi la procedur, le munin rafrichi toujours toute les 5 minutes c'est normal? 

Salut, les scripts de collecte des infos Munin continuent à se lancer toutes les 5 minutes et c'est normal.

Mais par contre, il ne génère plus les images des graphiques, ni les pages HTML qui sont générés uniquement à la consultation des pages.

Portrait de Roverland

Ha oui je comprend mieu moi je pensé que cetais en live les statistique merci beaucoup ;)

Salut, merci pour ce super article ;) simple et concis

Cepdendant, sur les routes du vhost nginx que l'on rajoute par rapport aux routes static, j'ai des erreurs 502 bad gateway de nginx.

Peut-être me suis je trompé quelque part ? je ne comprends pas la surcharge de la route ~/munin avec les param CGI, pourquoi en avoir fait une deuxième ?

Salut, les surcharges des routes Munin permettent de générer dynamiquement les pages et graphiques de Munin avec les serveurs FCGI.

La route ci-dessous traite les pages html de Munin pour les générer dynamiquement avec le serveur FCGI munin-cgi-html

    location /munin/ {
        fastcgi_split_path_info ^(/munin)(.*);
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_pass unix:/var/run/munin/fcgi-html.sock;
        include fastcgi_params;
    }

idem ci-dessous pour les graphiques, qui sont générés dynamiquement avec le serveur FCGI munin-cgi-graph

    location ^~ /cgi-bin/munin-cgi-graph/ {
        access_log off;
        fastcgi_split_path_info ^(/cgi-bin/munin-cgi-graph)(.*);
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_pass unix:/var/run/munin/fcgi-graph.sock;
        include fastcgi_params;
    }

 

Ajouter un commentaire

You must have Javascript enabled to use this form.