Debian 8 Jessie : monitorer Nginx et MySQL grace à Munin
Sun, 02/21/2016 - 15:05 — geek17Dans 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
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.