User Tools

Site Tools


informatique:logiciels:munin

This is an old revision of the document!


supervision monitoring graphique

Munin

Munin est un logiciel libre qui se divise en 2 parties : un récolteur de données (munin-node) qu'on installe sur les machines à superviser ; et un agrégateur de données (munin) qui tourne sur le serveur front-end. Le premier recueille des données de performance sur des machines clientes ; le second interroge le premier, l'enregistre dans une base RRD et l'affiche sur une interface web (apache typiquement).

key-features

  • la communication entre munin sur le serveur et munin-node sur les postes clients se fait sur tcp/4949
  • technologies employées : RRD (donc une base (my)SQL), serveur web (typiquement Apache)

Installation de munin

sous Ubuntu

Dans un premier temps on va installer la partie serveur (munin). Mais comme je veux monitorer mon serveur, j'installe aussi la partie cliente dessus (en plus ça me permettra de valider son bon fonctionnement).

aptitude install munin munin-node

L'installation de munin-node scanne la machine et active les plugins qui fonctionnent sur le système. Le client localhost est détecté et ajouté automatiquement dans la conf de munin, ce qui fait qu'après un redémarrage d'apache, on devrait (après une dizaine de minutes) voir apparaitre la mire de munin à l'adresse http://IP_serveur/munin .

Configuration

Partie serveur

Sous Debian-like la configuration de munin est située dans /etc/munin :

  • apache.conf est le fichier de conf à inclure dans Apache. Si ce n'est pas déjà fait (si vous n'obtenez pas la mire) il faut créer un lien symbolique dans <apache_dir/conf.d> pour qu'Apache le prenne en compte (puis redémarrer Apache) :
ln -s /etc/munin/apache.conf /etc/apache2/conf.d/munin
/etc/init.d/apache2 restart
  • munin.conf : c'est le fichier de conf principal de munin ; chaque client (nœud) doit y être renseigné :
# a simple host tree
[localhost.localdomain]
    address 127.0.0.1
    use_node_name yes
 
# serveur toto
[toto_serveur]
    address 192.168.0.1
    use_node_name yes

Ici on voit le localhost (configuré par défaut) et j'ai rajouté une autre machine de mon LAN.

Dans ce cas, vérifier que les flux tcp/4949 passent bien entre le serveur et la client (et surtout que munin-node soit installé sur ce dernier).

Munin ne tourne pas comme daemon : il est lancé par cron (par défaut toutes les 5 minutes, cf /etc/cron.d/munin) donc pas besoin de relancer pour prendre en compte une modification de configuration.

Partie cliente

Comme je l'ai dit plus haut, les machines clientes ne font tourner que munin-node et pas munin tout court.

aptitude install munin-node

Lors de l'installation, munin-node scanne la machine et active automatiquement les plugins adaptés.

Par défaut le cliente n'accepte les connexions que depuis sa loopback (lui-même) ; il faut donc éditer le fichier de conf /etc/munin/munin-node.conf et ajouter l'adresse IP du collecteur :

vi /etc/munin/munin-node.conf
#[..]
allow ^127\.0\.0\.1$
# IP du collecteur (la machine où est installé munin
allow ^192\.168\.0\.100$

Activer un plugin

Tous les scripts installés par défaut avec munin-node sont situés dans /usr/share/munin/plugins/ ; ce sont pour la pluspart des scripts perl. Quand ils sont activés, on créer un lien symbolique dans /etc/munin/plugins/ ; si on veut ajouter ou supprimer un plugin il faut donc créer ou supprimer ce lien symbolique.

Il est possible de re-scanner le système ; munin-node propose alors la liste des plugins qu'il vous conseille d'installer :

 munin-node-configure --suggest
Plugin                     | Used | Suggestions
------                     | ---- | -----------
acpi                       | no   | [ACPI program not found]
courier_mta_mailqueue      | no   | [spooldir not found]
courier_mta_mailstats      | no   | [could not find executable]
courier_mta_mailvolume     | no   | [could not find executable]
cupsys_pages               | no   | [could not find logdir]
hddtemp_smartctl           | no   | [no drives known]
if_                        | yes  | +eth0
if_err_                    | no   | yes +eth0 +eth1
ip_                        | no   |
mysql_bytes                | no   | [mysqladmin not found]
mysql_isam_space_          | no   |
mysql_queries              | no   | [mysqladmin not found]
mysql_slowqueries          | no   | [mysqladmin not found]
mysql_threads              | no   | [mysqladmin not found]
nfs_client                 | no   | [no /proc/net/rpc/nfs]
nfsd                       | no   | [no /proc/net/rpc/nfsd]
postfix_mailqueue          | no   | [spooldir not found]
postfix_mailvolume         | no   | [postfix not found]
postgres_block_read_       | no   |
postgres_commits_          | no   |
postgres_locks             | no   |
postgres_queries_          | no   |
postgres_space_            | no   |
ps_                        | no   |
sendmail_mailqueue         | no   |
sendmail_mailstats         | no   | [no mailstats command]
sendmail_mailtraffic       | no   |
squid_cache                | no   | no [could not connect: Connection refused]
squid_objectsize           | no   | no [could not connect: Connection refused]
squid_requests             | no   | no [could not connect: Connection refused]
squid_traffic              | no   | no [could not connect: Connection refused]
smart_                     | yes  |
tomcat_access              | no   | [XML::Simple not found]
tomcat_jvm                 | no   | [XML::Simple not found]
tomcat_threads             | no   | [XML::Simple not found]
tomcat_volume              | no   | [XML::Simple not found]

Après avoir installé munin-node cela permet de visialiser les erreurs qu'il a rencontrées ; par exemple ici le plugin squid n'est pas activé alors que squid tourne sur ma machine !

La raison invoquée : [could not connect: Connection refused] est simple : mon squid ne tourne pas sur le port par défaut (3168). Il faut donc le préciser au plugin : en lisant le script perl on trouve :

vi /usr/share/munin/plugins/squid_traffic
 
Configuration variables:
 
 squidhost   - host (default "localhost")
 squidport   - port (default "3128")
 squiduser   - username (default "")
 squidpasswd - password (default "")

Il faut donc lui préciser le nouveau port ; ceci se fait dans le fichier de conf des plugins, j'ai nommé /etc/munin/plugin-conf.d/munin-node :

vi /etc/munin/plugin-conf.d/munin-node
[squid_*]
env.squidport 3131

On ajouter ces ligne suivant la syntaxe qui convient : ici on précise le port dans la variable d'environnement squidport.

informatique/logiciels/munin.1292841821.txt.gz · Last modified: 2013/10/14 20:55 (external edit)