informatique:serveurs:installation-logiciels:munin

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
  • apt-get install munin munin-node
  • Ajouter un module Perl via le CPAN :
    • cpan : valider les options par défaut jusqu'au prompt CPAN
    • install 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 ou su - 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
  • É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
  • 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
  • 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
  • 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
  • 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
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;
    }   
}
  • informatique/serveurs/installation-logiciels/munin.txt
  • Dernière modification : 2020/05/22 19:32
  • de jpmilcent