Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
munin [Le 18/11/2011, 19:45]
82.122.200.142 [Configuration]
munin [Le 26/07/2018, 11:08] (Version actuelle)
83.206.70.13 [Configuration]
Ligne 3: Ligne 3:
 ---- ----
  
-====== Munin : le grapheur pour monitorer ​les machines d'un parc ======+====== Munin : le grapheur pour surveiller ​les machines d'un parc ======
  
-[[http://​munin-monitoring.org/​|Munin]] est un système complet de monitoring (ou métrologie) de machine. Il permet de générer une série de graphes à partir des informations ​reçues ​par les autres machines : utilisation de la mémoire vive, load average, ​usage CPU, réseau,... Il permet même d'​envoyer des alertes par mail ou vers [[Nagios]] en fonction de seuils d'​alerte prédéfinis.+[[http://​munin-monitoring.org/​|Munin]] est un système complet de monitoring (ou métrologie) de machine. Il permet de générer une série de graphes à partir des informations ​envoyées ​par les autres machines : utilisation de la mémoire vive, « load average ​»utilisation du processeur, réseau,… Il permet même d'​envoyer des alertes par courriel ​ou vers [[Nagios]] en fonction de seuils d'​alerte prédéfinis.
  
-Munin fonctionne sur le modèle client-serveur. Un petit démon tourne sur chacune des machines devant être surveillée ​(''​munin-node''​). Ce démon fournit les informations brutes concernant la machine dès que le grapheur ​(''​munin''​) ​les lui demande.+Munin fonctionne sur le modèle client-serveur. Un petit démon tourne sur chacune des machines devant être surveillée ​: //munin-node//. Ce démon fournit les informations brutes concernant la machine dès que le grapheur ​//munin// les lui demande.
  
 Pour surveiller un parc informatique,​ vous devez donc installer : Pour surveiller un parc informatique,​ vous devez donc installer :
-  * le grapheur ​''​munin'' ​sur une machine qui va se charger de la surveillance. +  * le grapheur ​//munin// sur une machine qui va se charger de la surveillance. 
-  * le démon ​de noeud ''​munin-node'' ​sur chaque machine ​qui va fournir son état au grapheur.+  * le démon ​//munin-node// sur chaque machine ​à surveiller.
  
 Dans la mythologie nordique, Hugin et Munin sont les deux corbeaux messagers d'​Odin. Tous les jours, ils parcourent le monde et reviennent ensuite rapporter au dieu tout ce qu'ils ont vu et entendu. Hugin représente la pensée, tandis que son comparse Munin représente la mémoire. Dans la mythologie nordique, Hugin et Munin sont les deux corbeaux messagers d'​Odin. Tous les jours, ils parcourent le monde et reviennent ensuite rapporter au dieu tout ce qu'ils ont vu et entendu. Hugin représente la pensée, tandis que son comparse Munin représente la mémoire.
Ligne 18: Ligne 18:
  
 ==== Installation ==== ==== Installation ====
 +Munin  est une application écrite en [[Perl|Perl]] qui génère des graphes grâce à [[rrdtool|rrdtool]]. Pour visualiser ces graphes munin génère des pages HTML. Comme pour toutes application web il faut donc avoir un serveur web déjà installé et fonctionnel. Le paquet munin fournit une configuration de base pour le serveur Apache mais cela peut généralement fonctionner avec [[nginx|Nginx]] ou [[lighttpd|Lighttpd]].
 +Cette documentation concerne une installation avec le serveur web Apache2.
  
-[[:​tutoriel:​comment_installer_un_paquet|Installez ​le paquet]] **[[apt://munin|munin]]** (suivez la procédure d'​installation sur les noeuds, ci-dessous, si vous désirez monitorer également ​la machine qui génère les grapheset assurez-vous que le paquet **[[apt://​apache2|apache2]]** ​est bien installé ​: <file>dpkg -l | egrep -e "^ii.*apache2 ​"</file>+Installation des paquets sur le grapheur ​: 
 +<​code>​sudo apt install ​munin munin-node munin-plugins-extra libcgi-fast-perl libapache2-mod-fcgid</​code>​ 
 + 
 +Les modules Apache //​fast-perl//​ et //fcgid// sont nécessaires pour la génération des graphes. Les paquets munin-node ​et munin-plugins-extra ne sont nécessaires ​que pour surveiller ​le serveur lui-me (ce qui est généralement le cas). 
 + 
 +Il faut activer le module fcgid pour Apache ​: 
 +<code>sudo a2enmod fcgid</​code>​ 
 +<​code>​sudo systemctl restart ​apache2</​code>
  
 ==== Configuration ==== ==== Configuration ====
 +
 +=== Serveur web (ici apache) ===
 +
 +Lors de son installation munin active automatiquement sa configuration Apache en créant les liens symboliques sous /​etc/​apache2/​conf-available/​munin.conf qui pointent vers **/​etc/​munin/​apache24.conf.** Dans cette configuration les graphes sont accessibles que depuis l'​hôte local. Pour les rendre accessible depuis d'​autres machines il faut modifier le fichier **/​etc/​munin/​apache24.conf** ainsi :
 +
 +<​file>​Alias /munin /​var/​cache/​munin/​www
 +<​Directory /​var/​cache/​munin/​www>​
 + <​RequireAny>​
 +     Require local
 +     Require ip a.b.c.d w.x.y.z
 + </​RequireAny>​
 +        Options None
 +</​Directory>​
 +
 +ScriptAlias /​munin-cgi/​munin-cgi-graph /​usr/​lib/​munin/​cgi/​munin-cgi-graph
 +<​Location /​munin-cgi/​munin-cgi-graph>​
 +        <​RequireAny>​
 +     Require local
 +     Require ip a.b.c.d w.x.y.z
 + </​RequireAny>​
 + <​IfModule mod_fcgid.c>​
 +     SetHandler fcgid-script
 + </​IfModule>​
 +        <​IfModule !mod_fcgid.c>​
 +            SetHandler cgi-script
 +        </​IfModule>​
 +</​Location></​file>​
 +où a.b.c.d et w.x.y.z sont les adresses IP des machine autorisées à consulter les graphes munin qui seront accessibles par http://​nom_de_domaine_du_serveur/​munin.
 +Pour plus d'​informations sur la configuration et les restrictions d'​accès,​ consultez la documentation d'​[[apache2|Apache2]].
 +
 +=== Serveur Munin central ===
  
 Il faut indiquer à Munin quels hôtes il doit surveiller. Dans le fichier **/​etc/​munin/​munin.conf**. Vous devriez avoir une configuration par défaut qui ressemble à ceci : Il faut indiquer à Munin quels hôtes il doit surveiller. Dans le fichier **/​etc/​munin/​munin.conf**. Vous devriez avoir une configuration par défaut qui ressemble à ceci :
Ligne 30: Ligne 70:
     use_node_name yes     use_node_name yes
 </​file>​ </​file>​
 +Vous pouvez remplacer //​localhost.localdomain//​ par le nom de domaine associé au serveur.
  
-Pour chacune ​de vos machines, vous devez indiquer son ''​nom d'​hôte'',​ son ''​domaine''​ et son ''​adresse ip''​.+Pour chacune ​des machines ​à surveiller, vous devez indiquer son ''​nom d'​hôte'',​ son ''​domaine''​ et son ''​adresse ip''​.
  
-Par exemple, pour la machine ''​www.ubuntu-fr.org''​ qui est sur l'IP ''​192.168.0.1'',​ on ajoute l'​entrée suivante dans le fichier **/​etc/​munin/​munin.conf** :+Par exemple, pour la machine ''​www.example.com''​ qui est sur l'IP ''​192.168.0.1'',​ on ajoute l'​entrée suivante dans le fichier **/​etc/​munin/​munin.conf** :
  
 <​file>​ <​file>​
Ligne 41: Ligne 82:
 </​file>​ </​file>​
  
-Les informations graphées sont choisies ​au niveau du noeud.+<note tip>Le paramètre **use_node_name yes** permet de prendre en compte la machine même si le nom entre crochets ne correspond pas au nom de la machineDans munin la machine sera toujours affichée avec le nom entre crochets. \\ 
 +S'il n'est pas précisé, il est nécessaire de mettre la même chose que le retour de la commande //hostname -f// sur la machine en question, sinon la machine n'​apparaîtra tout simplement pas dans la partie Web car munin demandera à la machine distante si cette dernière connaît un nœud correspondant au nom entre crochet, ce qui ne sera pas le cas.</​note>​
  
-Vous pouvez également etre averti par mail en cas de dépassement d'un seuil d'​alerte (par ex:disque plein) :+Les informations récupérées par munin pour chaque machine dépendent de la configuration de munin-node que les machine distantes (plugins activés). 
 + 
 +Pour  être averti par courriel ​en cas de dépassement d'un seuil d'​alerte (par ex:disque plein), ajoutez ceci :
 <​file>​ <​file>​
-contact.someuser.command mail -s "​Munin ​notification" ​votre@mail.com +contacts toto 
-</​file>​+contact.toto.command mail -s "​Munin ​notif ${var:host}" ​toto@example.com 
 +contact.toto.always_send warning critical 
 +</​file>​(en remplaçant bien sûr //toto// //et toto@example.com//​ par les valeurs qui conviennent).
  
 ou encore envoyer une alerte vers Nagios : ou encore envoyer une alerte vers Nagios :
Ligne 53: Ligne 99:
 </​file>​ </​file>​
  
-La périodicité des mises à jour des graphes est déterminée par le programme ''​munin-cron''​ qui (par défautse lance toutes les 5 minutes. +La périodicité des mises à jour des graphes est déterminée par le programme ''​munin-cron''​ qui par défaut se lance toutes les 5 minutes.
- +
-A l'​installation,​ le fichier **/​etc/​cron.d/​munin** a été créé. En éditant ce dernier, vous pourrez modifier la périodicité des mises à jour des graphes. +
- +
-Si besoin, changer aussi les droits sur le répertoire de munin : +
  
-<​code>​sudo chown -R www-data:​www-data ​/var/cache/munin/​www</​code>​+À l'​installation,​ le fichier **/etc/cron.d/munin** a été créé. En modifiant ce dernier, vous pourrez changer la périodicité des mises à jour des graphes.
  
 ==== Voir les graphes ==== ==== Voir les graphes ====
Ligne 65: Ligne 107:
 Il vous suffit d'​aller sur la page web suivante : http://​localhost/​munin si vous avez installé Munin sur votre machine en local. Sinon, remplacez localhost par l'ip de la machine où se trouve le grapheur. Il vous suffit d'​aller sur la page web suivante : http://​localhost/​munin si vous avez installé Munin sur votre machine en local. Sinon, remplacez localhost par l'ip de la machine où se trouve le grapheur.
  
-===== Munin-node (le démon sur les noeuds) =====+==== Mise à jour des indicateurs des nœuds ==== 
 + 
 +La mise à jour (télé-relevé) se fait par défaut toutes les 5 minutes, grâce à la cron ''/​etc/​cron.d/​munin''​. 
 +Pour déclencher une mise-à-jour manuelle supplémentaire : <​code>​sudo -u munin /​usr/​bin/​munin-cron</​code>​ 
 +Et pour suivre ce qui se passe, le fichier journal est ''/​var/​log/​munin/​munin-update.log''​ 
 + 
 +===== Munin-node (le démon sur les nœuds) =====
  
 Sur chaque machine que vous désirez surveiller, il vous faut installer le démon qui va répondre aux requêtes du grapheur. Sur chaque machine que vous désirez surveiller, il vous faut installer le démon qui va répondre aux requêtes du grapheur.
  
 ==== Installation ==== ==== Installation ====
- +Installez les paquets suivants : 
-Installez le paquet **[[apt://munin-node|munin-node]]**+<​code>​sudo ​apt install ​munin-node munin-plugins-extra</​code>​
 ==== Configuration ==== ==== Configuration ====
  
-=== Accès au noeud ===+=== Accès au nœud ===
  
-Pour que le grapheur accède aux informations du noeud, il faut ouvrir ​le firewall (si nécessaire,​ il s'agit du port **4949** par défaut) et indiquer quels sont les grapheurs qui peuvent ​se connecter.+Pour que le grapheur accède aux informations du nœud, il faut autoriser explicitement ​le grapheur à se connecter ​au nœud.
  
 Cette information est indiquée dans le fichier de configuration **/​etc/​munin/​munin-node.conf**. À la fin du fichier de configuration,​ vous trouverez une ligne de ce style : Cette information est indiquée dans le fichier de configuration **/​etc/​munin/​munin-node.conf**. À la fin du fichier de configuration,​ vous trouverez une ligne de ce style :
- +<​file>​allow ^127\.0\.0\.1$</​file>​
-  ​allow ^127\.0\.0\.1$+
  
 Pour autoriser votre grapheur à se connecter, vous ajouter une ligne du même type. Par exemple, si votre grapheur possède l'IP 192.168.0.253,​ vous ajoutez la ligne : Pour autoriser votre grapheur à se connecter, vous ajouter une ligne du même type. Par exemple, si votre grapheur possède l'IP 192.168.0.253,​ vous ajoutez la ligne :
  
-  ​allow ^192\.168\.0\.253$+<​file>​allow ^192\.168\.0\.253$</​file>​
  
 === Configuration des plugins === === Configuration des plugins ===
Ligne 105: Ligne 152:
 === Test des plugins === === Test des plugins ===
  
-Si vous créez vos plugins ou si vous désirez seulement tester la bonne configuration de vos plugins, vous ne devez pas lancer le plugins ​comme si vous lanciez un script shell. Vous devez utiliser la commande **munin-run**,​ par exemple :+Si vous créez vos plugins ou si vous désirez seulement tester la bonne configuration de vos plugins, vous ne devez pas lancer le plugin ​comme si vous lanciez un script shell. Vous devez utiliser la commande **munin-run**,​ par exemple :
   munin-run postgres_bgwriter   munin-run postgres_bgwriter
 le plugin sera alors lancé avec les variables nécessaires (nom utilisateur,​nom BDD ...) le plugin sera alors lancé avec les variables nécessaires (nom utilisateur,​nom BDD ...)
  
 +=== Prise en compte d'une configuration du nœud modifiée ===
 +
 +Une fois les modifications effectuées,​ il faut redémarrer le nœud munin pour les prendre en compte à la prochaine interrogation depuis le serveur munin : <​code>​sudo systemctl restart munin-node</​code>​
 ==== plugins Apache ==== ==== plugins Apache ====
  
-Les plugins Apache ont besoin de la bibliothèque **[[apt://​libwww-perl|libwww-perl]]**.+Les plugins Apache ont besoin de la bibliothèque **[[apt>libwww-perl]]**.
  
-Afin de récupérer les données statistique d'​apache le module **status** doit être activé ​avec le mode étendue. +Afin de récupérer les données statistique d'​apache le module **status** doit être activé : 
-Pour cela on vérifiera la présence des liens +<​code>​sudo a2enmod status</​code>​
-<​code>​/​etc/​apache2/​mods-enabled/​status.load  +
-/​etc/​apache2/​mods-enabled/​status.conf +
-</​code>​ +
-Si ceux-ci ne sont pas présents on l'​installera avec la commande : +
-<​code>​ +
-sudo a2enmod status +
-</​code>​ +
- +
-Le fichier status.conf doit contenir, au minimum, les directives suivantes : +
-<​code>​ +
-<​IfModule mod_status.c>​ +
- +
-<​Location /​server-status>​ +
-    SetHandler server-status +
-    Order deny,​allow +
-    Deny from all +
-    Allow from localhost ip6-localhost +
-</​Location>​ +
-ExtendedStatus On +
- +
-</​IfModule>​ +
-</​code>​+
  
 ==== plugins Mysql==== ==== plugins Mysql====
  
-Normalement les plugins mysql sont directement ​activé ​à l'​installation. ​+Normalement les plugins mysql sont directement ​activés ​à l'​installation. ​
  
 Si ce n'est pas le cas, vous pouvez taper: ​ <​code>​munin-node-configure</​code>​ Si ce n'est pas le cas, vous pouvez taper: ​ <​code>​munin-node-configure</​code>​
  
-Cela vous donnera une liste des mods en présicant ​s'ils sont installé ​et s'ils peuvent fonctionner. ​+Cela vous donnera une liste des plugins ​en précisant ​s'ils sont installés ​et s'ils peuvent fonctionner. ​
  
 Si vous avez une erreur pour les plugins mysql, vous devrez corriger les erreurs et réactiver manuellement les plugins mysql. ​ Si vous avez une erreur pour les plugins mysql, vous devrez corriger les erreurs et réactiver manuellement les plugins mysql. ​
Ligne 155: Ligne 183:
 Pour finir, rechargez la configuration de munin pour que ce soit pris en compte: reload munin-node Pour finir, rechargez la configuration de munin pour que ce soit pris en compte: reload munin-node
  
-== Installer ​d'​avantage ​de plugin ​MySQL==+== Installer ​davantage ​de plugins ​MySQL== 
 +<​note>​Munin est un outil de surveillance qui consomme peu de ressources, mais l'​activation des plugins MySQL peut augmenter significativement les ressources utilisées.</​note>​ 
 Vous pouvez installer plusieurs autres plugins mysql pour suivre par exemple la valeur de max_connection,​ le débit réseau, le type de requête etc ... Vous pouvez installer plusieurs autres plugins mysql pour suivre par exemple la valeur de max_connection,​ le débit réseau, le type de requête etc ...
 Pour avoir une liste des plugins que vous pouvez ajouter allez dans le dossier: ​ Pour avoir une liste des plugins que vous pouvez ajouter allez dans le dossier: ​
-<​code>​cd /user/​share/​munin/​plugin</​code>​+<​code>​cd /usr/​share/​munin/​plugins</​code>​
 et faites: et faites:
 <​code>​./​mysql_ suggest</​code>​ <​code>​./​mysql_ suggest</​code>​
Ligne 188: Ligne 218:
  
 Si vous voulez ajouter qcache par exemple, faites un lien de la sorte: Si vous voulez ajouter qcache par exemple, faites un lien de la sorte:
-<​code>​ ln -ls /​usr/​share/​munin/​plugin/​mysql_ /​etc/​munin/​plugins/​mysql_qcache</​code>​+<​code>​ ln -/​usr/​share/​munin/​plugin/​mysql_ /​etc/​munin/​plugins/​mysql_qcache</​code>​
 C'est donc sous la forme: ln -ls /​usr/​share/​munin/​plugin/​mysql_ /​etc/​munin/​plugins/​mysql_NomDuPlugin C'est donc sous la forme: ln -ls /​usr/​share/​munin/​plugin/​mysql_ /​etc/​munin/​plugins/​mysql_NomDuPlugin
  
 ==== Plugins Proftpd ==== ==== Plugins Proftpd ====
  
-Les plugins Proftpd ont besoin de **[[apt://logtail|logtail]]**. D'​autre part, il faut que vous puissiez lire le contenu du log de transfert de proftpd. Ce dernier est normalement situé à **/​var/​log/​proftpd/​xferlog** , mais une vérification s'​impose : lisez le fichier de configuration de proftpd, normalement **/​etc/​proftpd/​proftpd.conf** :+Les plugins Proftpd ont besoin de **[[apt>logtail]]**. D'​autre part, il faut que vous puissiez lire le contenu du log de transfert de proftpd. Ce dernier est normalement situé à **/​var/​log/​proftpd/​xferlog** , mais une vérification s'​impose : lisez le fichier de configuration de proftpd, normalement **/​etc/​proftpd/​proftpd.conf** :
  
 <​code>​less /​etc/​proftpd/​proftpd.conf</​code>​ <​code>​less /​etc/​proftpd/​proftpd.conf</​code>​
  
-et repérez la balise TransferLog,​ elle indique l'​emplacement du fichier de log qui nous interesse.+et repérez la balise TransferLog,​ elle indique l'​emplacement du fichier de log qui nous intéresse.
  
-Regardez les permissions et propriétaires du fichier. Si le propriétaire est root et son groupe, root, peut être vaut-il mieux modifier son groupe. Je l'ai mis à adm. Et j'ai autorisé la lecture et l'​écriture. (l'​écriture,​ je ne sais pas si c'est nécessaire,​ mais la lecture, oui, assurement ​!)+Regardez les permissions et propriétaires du fichier. Si le propriétaire est root et son groupe, root, peut être vaut-il mieux modifier son groupe. Je l'ai mis à adm. Et j'ai autorisé la lecture et l'​écriture. (l'​écriture,​ je ne sais pas si c'est nécessaire,​ mais la lecture, oui, assurément ​!)
  
 <​code>​chown root:adm xferlog <​code>​chown root:adm xferlog
 chmod ug+rw xferlog</​code>​ chmod ug+rw xferlog</​code>​
  
-Ensuite, assurez vous que les plugins proftpd tournent bien dans le bon groupe. Pour ce faire éditez le fichier /​etc/​munin/​plugin-conf.d/​munin-node,​ et reperez ​(ou ajoutez) la balise [proftpd*] ou [proftpd_*],​ ajoutez en dessous, le groupe ou l'​utilisateur que vous avez réglé sur xferlog, pour moi, cela donne :+Ensuite, assurez vous que les plugins proftpd tournent bien dans le bon groupe. Pour ce faireéditez le fichier /​etc/​munin/​plugin-conf.d/​munin-node,​ et repérez ​(ou ajoutez) la balise [proftpd*] ou [proftpd_*],​ ajoutez en dessous, le groupe ou l'​utilisateur que vous avez réglé sur xferlog, pour moi, cela donne :
  
 <​code>​[proftpd*] <​code>​[proftpd*]
Ligne 216: Ligne 246:
 Si au niveau de votre grapheur, une sonde ne génère //aucun// graphe, vérifiez que les access-list configurées dans /​etc/​munin/​munin-node.conf sont correctes et que le pare-feu de la sonde autorise les connexions sur le port associé à la sonde munin (4949 par défaut). Si au niveau de votre grapheur, une sonde ne génère //aucun// graphe, vérifiez que les access-list configurées dans /​etc/​munin/​munin-node.conf sont correctes et que le pare-feu de la sonde autorise les connexions sur le port associé à la sonde munin (4949 par défaut).
  
-Si certains graphes sont générés mais pas tous, vous avez probablement un plugin qui n'est pas fonctionnel. Connectez vous sur une machine pouvant accéder à la sonde (par exemple le grapheur). Sur cette machine, [[:​tutoriel:​comment_installer_un_paquet|installez le paquet]] **[[apt://telnet|telnet]]**. Supposons que la sonde défectueuse ait pour IP x.x.x.x et écoute sur le port 4949. Lancez la commande suivante :+Si certains graphes sont générés mais pas tous, vous avez probablement un plugin qui n'est pas fonctionnel. Connectez vous sur une machine pouvant accéder à la sonde (par exemple le grapheur). Sur cette machine, [[:​tutoriel:​comment_installer_un_paquet|installez le paquet]] **[[apt>telnet]]**. Supposons que la sonde défectueuse ait pour IP x.x.x.x et écoute sur le port 4949. Lancez la commande suivante :
  
 <​code>​ <​code>​
Ligne 260: Ligne 290:
 ===== Liens ===== ===== Liens =====
  
-  * [[http://​munin.projects.linpro.no/|Site officiel de Munin (EN)]]+  * [[http://​munin-monitoring.org//|Site officiel de Munin (EN)]]
   * [[http://​muninexchange.projects.linpro.no/​|Autres plugins Munin (EN)]]   * [[http://​muninexchange.projects.linpro.no/​|Autres plugins Munin (EN)]]
-  * Exemple de Munin en action : [[http://​munin.ping.uio.no/​]],​ [[http://​munin.opendoc.net ​Munin d'​Opendoc.net]]+  * Exemple de Munin en action : [[http://​munin.ping.uio.no/​]],​ [[http://demo.munin-monitoring.org Démo sur le site officiel]]
  
 ---- ----
  
-//​Contributeurs : [[utilisateurs:​ostaquet]],​ [[utilisateurs:​stephaneguedon]],​ [[utilisateurs:​elemmire]],​ [[utilisateurs:​rapidos]],​ [[utilisateurs:​MaMieMando]] //+//​Contributeurs : [[utilisateurs:​ostaquet]],​ [[utilisateurs:​stephaneguedon]],​ [[utilisateurs:​elemmire]],​ [[utilisateurs:​rapidos]],​ [[utilisateurs:​MaMieMando]], [[http://​karchnu.fr|Karchnu]] //
  • munin.1321641943.txt.gz
  • Dernière modification: Le 15/12/2011, 15:20
  • (modification externe)