Add new comment

Debian 8 Jessie : monitorer Nginx et MySQL grace à Munin

Dans la continuité des 2 articles précédents sur l'installation et l'optimisation de Munin, nous allons à présent configurer 2 plugins pour monitorer :

  • les trafics nginx
  • les transactions MySQL

 

Affichage des Plugins et des dépendances

Munin dispose d'une commande bien pratique qui permet d'afficher les plugins disponibles et/ou actifs ainsi que les dépendances de ceux-ci.

sudo munin-node-configure --suggest

Vous obtiendrez un résultat que j'ai résumé à quelques lignes ci-dessous.
A priori, pour nginx et mysql, il manque des trucs...

Plugin                     | Used | Suggestions
------                     | ---- | -----------
....
cpu                        | yes  | yes
diskstats                  | yes  | yes
....
mysql_                     | no   | no [Missing dependency Cache::Cache]
....
nginx_request              | no   | no [LWP::UserAgent not found]
nginx_status               | no   | no [LWP::UserAgent not found]
....

 

Installation des plugins Nginx

Pour Nginx, le message [LWP::UserAgent not found] indique qu'une librairie est manquante, en l'occurrence : libwww-perl.

On installe donc cette librairie 

sudo apt-get install libwww-perl

Puis on lance à nouveau sudo munin-node-configure --suggest pour voir si le problème est résolu.

sudo munin-node-configure --suggest | grep nginx
nginx_request              | no   | no [no nginx status on http://localhost/nginx_status]
nginx_status               | no   | no [no nginx status on http://localhost/nginx_status]

Gagné... sauf qu'il y a une autre erreur maintenant.
C'est normal car il faut indiquer à Nginx de fournir des informations via l'url http://localhost/nginx_status

Pour cela, on ouvre la configuration du vHost par défaut

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

Et on ajoute la configuration suivante dans la partie server { }

    location /nginx_status {
        stub_status on;    # return basic status information
        access_log off;
        allow 127.0.0.1;   # restrict access to local only
        deny all;
    }

Puis on redémarre Nginx pour activer la modification.

sudo service nginx restart

Si on relance à nouveau sudo munin-node-configure --suggest pour vérifier notre correction.

sudo munin-node-configure --suggest | grep nginx

Cette fois, c'est tout bon smiley

nginx_request              | no   | yes
nginx_status               | no   | yes

On peut donc ajouter nos 2 plugins Nginx à la configuration de Munin.
Pour cela, on crée un lien symbolique entre le dossier des plugins Munin en cours d'utilisation (/etc/munin/plugins/) et l'emplacement des plugins disponibles ( /usr/share/munin/plugins/)

sudo ln -s /usr/share/munin/plugins/nginx_status /etc/munin/plugins/nginx_status
sudo ln -s /usr/share/munin/plugins/nginx_request /etc/munin/plugins/nginx_request

Et on redémarre Munin pour activer les nouveaux plugins.

sudo systemctl restart munin-node

Attendez 5 minutes, pour que Munin rafraichisse ses données, et vous verrez apparaitre une nouvelle catégorie nginx.

 

Installation des plugins MySQL

Pour MySQL, nous avons le message qui indique lui aussi qu'une librairie est manquante : libcache-cache-perl

On installe donc cette librairie 

sudo apt-get install libcache-cache-perl

Puis on lance à nouveau sudo munin-node-configure --suggest pour voir si le problème est résolu

sudo munin-node-configure --suggest | grep mysql
mysql_                     | no   | yes (+bin_relay_log +commands +connections +files_tables +innodb_bpool +innodb_bpool_act +innodb_insert_buf +innodb_io +innodb_io_pend +innodb_log +innodb_rows +innodb_semaphores +innodb_tnx +myisam_indexes +network_traffic +qcache +qcache_mem +replication +select_types +slow +sorts +table_locks +tmp_tables)

Gagné... et on voit apparaitre pas mal de plugins complémentaires.
Dans mon cas, c'est le plugin permettant de voir le nombre de connexions sur la base de données qui m'intéresse.
Pour l'activer, son nom est mysql_connections : vous avez compris qu'il suffit d'indiquer le préfix mysql_ devant le plugin disponible pour l'activer.

Comme pour les plugins nginx, on crée un lien symbolique entre le dossier des plugin Munin en cours d'utilisation (/etc/munin/plugins/) et l'emplacement des plugins disponibles ( /usr/share/munin/plugins/).

Attention, le nom du Plugin source est toujours mysql_ mais la destination contient le nom du plugin en suffix mysql_connections

sudo ln -s /usr/share/munin/plugins/mysql_ /etc/munin/plugins/mysql_connections

Et on redémarre Munin pour activer le nouveau plugin

sudo systemctl restart munin-node

Attendez 5 minutes, pour que Munin rafraichisse ses données, et vous verrez apparaitre une catégorie mysql2.

You must have Javascript enabled to use this form.