Ceci est une ancienne révision du document !
Installation de Munin
Munin est un outil en deux parties :
- Munin-node qui est la partie “démon” qui surveille le système et génère les stats brutes
- Munin proprement dit est le grapheur, l'affichage de ces graphes se fait par un serveur web.
Installation des deux parties sur deux machines différentes ou sur une machine unique.
Munin-node génére seulement des fichiers html, png, css.. qui sont placés dans le dossier /var/cache/munin/www (pas de perl, php…)
Ressources
Installer les paquets munin
apt-get install munin munin-node
Configuration de Munin-node
- Ajouter un module Perl via le CPAN :
cpan
: valider les options par défaut jusqu'au prompt CPANinstall LWP::UserAgent
- Si CPAN n'arrive pas à réaliser un make, il se peut qu'il manque les paquets pour la compilation. Sortir du CPAN (exit) puis lancer la commande : apt-get install build-essential autoconf automake libtool gdb
exit
- Éditer le fichier munin-node.conf :
vi /etc/munin/munin-node.conf
- Vérifier la présence de la ligne :
allow ^127\.0\.0\.1$
- Ajouter des autorisations d'accès au munin local pour d'autres serveurs (si nécessaire) :
allow ^xxx\.xxx\.xxx\.xxx$
- Penser à modifier les firewalls (shorewall) pour autoriser le port 4949 sur la machine
- Vérification du bon fonctionnement de Munin :
- Se loguer en tant que Munin :
sudo -u munin bash
ousu - munin -s /bin/bash
- Générer les stats :
/usr/share/munin/munin-update --nofork --debug
- De nombreuses lignes apparaissent dans la console, c'est normal
- Si tout c'est bien passé, on obtient une ligne ressemblant à :
2013/07/18 14:22:58 [INFO]: Munin-update finished (5.33 sec)
- Créer un fichier de log spécifique pour cron :
- Éditer le fichier :
vi /etc/rsyslog.conf
- Décommenter la ligne :
cron.* /var/log/cron.log
et modifié la ligne du dessus pour :*.*;cron,auth,authpriv.none -/var/log/syslog
- Redémarrez rsyslog :
service rsyslog restart
- Vérifier que le dossier /etc/cron.d/ contient bien les fichiers : munin et munin-node. Vérifier aussi dans /home/log/cron.log que le log de munin fonctionne.
- Éditer le crontab pour y ajouter une entrée munin afin qu'il mette les stats à jour toutes les 5mn :
crontab -e
- La ligne à ajouter :
*/5 * * * * /usr/bin/munin-cron 1>/dev/null 2>/dev/null
Ajouter les plugins **Mysql** à Munin
- Éditer le fichier munin-node :
vi /etc/munin/plugin-conf.d/munin-node
et y ajouter le contenu indiqué après la liste ci-dessous - Ajouter les plugins mysql aux plugins munin actifs:
ln -s /usr/share/munin/plugins/mysql_* /etc/munin/plugins/
- Ajouter une entrée [client] dans /root/.my.cnf (voir installation mysql)
- Redémarrer munin :
/etc/init.d/munin-node restart
Ajouter les plugins **Sphinx** à Munin
- Se rendre dans le dossier des plugins :
cd /usr/share/munin/plugins
- Télécharger tous les plugins :
wget -nd https://raw.github.com/munin-monitoring/contrib/master/plugins/sphinx/sphinx_{connections,documents,queries}
- Donner des droits d'execution :
chmod +x sphin*
- Modifier les scripts des plugins Sphinx pour indiquer le bon emplacement des binaires ou dossier :
- binaire php dans l'entete du script (connections, queries) :
#!/usr/local/php/5.5/bin/php
- binaire mysql (connections, queries) :
/usr/local/mysql/5.6/bin
- binaire indextool (documents) :
/home/sphinx/bin
- dossier data de sphinx (documents) :
idxpath=/home/sphinx/var/data/
- Ajouter les liens vers les plugins Sphinx :
ln -s /usr/share/munin/plugins/sphinx_connections /etc/munin/plugins/sphinx_connections
ln -s /usr/share/munin/plugins/sphinx_documents /etc/munin/plugins/sphinx_documents
ln -s /usr/share/munin/plugins/sphinx_queries /etc/munin/plugins/sphinx_queries
- Redémarrer munin :
/etc/init.d/munin-node restart
Ajouter les plugins **Nginx** à Munin
- Se rendre dans le dossier des plugins :
cd /usr/share/munin/plugins
- Télécharger tous les plugins :
wget -nd http://debianuser.org/nginx/nginx_{memory,status,traffic,request}
- Donner les bon droits aux fichiers :
chmod +x nginx*
- Vérifier si toutes les sondes munins sont configurés :
munin-node-configure –suggest
- Redémarrer munin :
/etc/init.d/munin-node restart
Ajouter les plugins **Php-Fpm** à munin
- Se rendre dans le dossier des plugins :
cd /usr/share/munin/plugins
- Télécharger le plugin :
wget https://raw.github.com/MorbZ/munin-php-fpm/master/php-fpm.php -O php-fpm
- Donner les bon droits aux fichiers :
chmod +x php-fpm
- Éditer le plugin et indiquer le bon emplacement du binaire php cli :
vi /usr/share/munin/plugins/php-fpm
- Remplacer
#!/usr/bin/php
par#!/usr/local/php/5.6/bin/php
- Ajouter les plugins Php-fpm à Munin :
ln -s /usr/share/munin/plugins/php-fpm /etc/munin/plugins/php-fpm-memory
ln -s /usr/share/munin/plugins/php-fpm /etc/munin/plugins/php-fpm-cpu
ln -s /usr/share/munin/plugins/php-fpm /etc/munin/plugins/php-fpm-count
ln -s /usr/share/munin/plugins/php-fpm /etc/munin/plugins/php-fpm-time
- Vérifier si toutes les sondes munins sont configurés :
munin-node-configure –suggest
- Redémarrer munin :
service munin-node restart
Configuration de Munin (le grapheur)
- Munin-node génére seulement des fichiers html, png, css.. qui sont placés dans le dossier /var/cache/munin/www
- Créer un lien pour placer Munin sur le compte admin :
ln -s /var/cache/munin/www /home/admin/www/munin
- Utiliser le script d'ajout de domaine virtuel pour ajouter : munin.agathis.tela-botanica.net
Fichier /etc/munin/plugin-conf.d/munin-node :
# Ajout de l'instance Mysql 5.6 PROD (jpm) [26-11-2013] [mysql_56_*] user root env.mysqlconnection DBI:mysql:mysql;host=127.0.0.1;port=3306 env.mysqladmin /usr/local/mysql/5.6/bin/mysqladmin env.mysqlopts --defaults-extra-file=/root/.my.cnf # Ajout de l'instance Mysql 5.6 TEST (jpm) [26-11-2013] [mysql_56-test_*] user root env.mysqlconnection DBI:mysql:mysql;host=127.0.0.1;port=3308 env.mysqladmin /usr/local/mysql/5.6-test/bin/mysqladmin env.mysqlopts --defaults-extra-file=/root/.my.cnf # Ajout de la sonde Nginx (jpm) [18-07-2013] [nginx*] user root # La ligne suivante ne semble pas utile # env.url http://agathis.tela-botanica.org/nginx_status [nginx_traffic] group adm env.vhosts api.tela-botanica.org agathis.tela-botanica.net munin.agathis.tela-botanica.net sql.agathis.tela-botanica.net env.logdir /home/log env.flogfile nginx-access.log env.bparam 11 env.aggregate false
Fichier /etc/munin/munin.conf :
# a simple host tree [Agathis] address 127.0.0.1 use_node_name yes [Sequoia] address 193.54.123.169 use_node_name yes
Configurer le fichier de conf Nginx du domaine munin
server { server_name munin.agathis.tela-botanica.net www.munin.agathis.tela-botanica.net; server_name_in_redirect off; root "/home/admin/www/munin"; index index.html; client_max_body_size 10m; access_log /home/admin/_logs/access.log; error_log /home/admin/_logs/error.log; if ($http_user_agent ~* (Baiduspider|webalta|nikto|wkito|pikto|scan|acunetix|morfeus|webcollage|youdao) ) { return 401; } if ($http_user_agent ~* (HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner) ) { return 401; } # Acces sécurisé : # - créer un fichier /home/admin/www/.htpasswd # - ajouter un utilisateur admin et définir son mot de passe avec la commande : # htpasswd -c /home/admin/www/.htpasswd admin # - Décommenter les lignes ci-dessous #location / { # auth_basic "Administrator Login"; # auth_basic_user_file /home/admin/.htpasswd; #} location /nginx_status { stub_status on; access_log off; allow 127.0.0.1; deny all; } }