Ceci est une ancienne révision du document !


~~CLOSETOC~~

Munin - Installation d'un outil d'analyse des ressources

munin collecte et analyse les ressources utilisées par les serveurs qu'il surveille. Dans le cadre du MCO, l'outil permet à l'administrateur de connaître l'état précis des ressources d'un serveur et leurs évolutions dans le temps.

<note>Cette procédure a été réalisée et testée sur une VM debian 10.</note>

<note warning>Cette procédure nécessite des droits root. Faîtes donc attention à ce que vous faîtes.</note>

  • munin nécessite un serveur apache2 correctement configuré. Pour cela, on met à jour les dépôts APT :

apt-get update

  • On installe les paquets nécessaires :

apt-get install -y apache2 libcgi-fast-perl libapache2-mod-fcgid libwww-perl

  • On active les modules apache2 :

a2enmod fcgid

  • On commence par mettre le dépôt APT à jour :

apt-get update

  • On installe les paquets nécessaires :

apt-get install -y munin

  • On édite le fichier de configuration de munin :

nano /etc/munin/munin.conf

  • Au début du fichier :
    • On décommente la ligne dbdir.
    • On décommente la ligne htmldir et on modifie sa valeur par /var/www/munin.
    • On décommente la ligne logdir.
    • On décommente la ligne rundir.
    • On décommente la ligne tmpldir.
  • Plus bas dans le document (on peut rechercher avec CTRL+W la section a simple host tree) :
    • On supprime la valeur entre [] et on la remplace par le FQDN du serveur munin.
  • On enregistre avec CTRL+O et on quitte avec CTRL+X.
  • On crée le dossier web de munin :

mkdir -p /var/www/munin

  • On change le propriétaire du dossier créé :

chown munin:munin /var/www/munin

  • On crée un lien symbolique du fichier de configuration /etc/munin/apache24.conf dans le dossier /etc/apache2/conf-available/ :

cd /etc/apache2/conf-available/
ln -s /etc/munin/apache24.conf ./munin.conf

  • On modifie la configuration :

nano /etc/apache2/conf-available/munin.conf

  • La configuration doit ressembler à ça :

# Munin configuration for apache2
#
# Apache can serve munin's files that are either statically generated
# (in a cron job) or generated on demand (via cgi).
# The relevant munin settings are "html_strategy" and "graph_strategy".
# The related apache settings can be adjusted at the end of this file.
#
# See /usr/share/doc/munin/README.Debian for details.


# ***** COMMON SETTINGS FOR ALL STRATEGIES *****

ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph
Alias /munin/static/ /var/www/munin/static/

<Directory /var/www/munin>
    Require all granted
    Options FollowSymLinks SymLinksIfOwnerMatch
</Directory>

<Directory /usr/lib/munin/cgi>
    Require all granted
    Options FollowSymLinks SymLinksIfOwnerMatch
    <IfModule mod_fcgid.c>
        SetHandler fcgid-script
    </IfModule>
    <IfModule !mod_fcgid.c>
        SetHandler cgi-script
    </IfModule>
</Directory>


# ***** SETTINGS FOR CGI/CRON STRATEGIES *****

# pick _one_ of the following lines depending on your "html_strategy"
# html_strategy: cron (default)
Alias /munin /var/www/munin
# html_strategy: cgi (requires the apache module "cgid" or "fcgid")
#ScriptAlias /munin /usr/lib/munin/cgi/munin-cgi-html

  • On modifie le cron /etc/cron.d/munin pour remplacer /var/cache/munin/www par /var/www/munin.
  • On redémarre les services :

systemctl restart munin.service
systemctl restart munin-node.service
systemctl restart apache2.service

<note tip>Félicitations, vous devriez désormais avoir accès à votre serveur munin via l'adresse http://ip_du_serveur_munin/munin.</note>

  • On commence par mettre à jour les dépôts APT :

apt-get update

  • On installe les paquets nécessaires :

apt-get install -y munin-node munin-plugins-extra

  • Par défaut, tous les plugins utilisables sont activés. Pour avoir la liste complète des plugins et la raison de leur inactivité (le cas échéant), on peut exécuter la commande suivante :

munin-node-configure --suggest

  • Pour activer un plugin, il suffit de créer un lien symbolique entre son dépôt /usr/share/munin/plugins/ et le dossier actif /etc/munin/plugins/. Par exemple, pour le plugin acpi :

cd /etc/munin/plugins/
ln -s /usr/share/munin/plugins/acpi .

  • Une fois les plugins souhaités activés, il faut autoriser le serveur à récupérer les informations. Pour cela, on édite le fichier /etc/munin/munin-node.conf :

nano /etc/munin/munin-node.conf

  • On ajoute l'adresse de notre serveur maître sous la forme d'une expression régulière (regex). Par exemple, pour un serveur dont l'adresse IP est 192.168.20.54, la ligne à ajouter sera :

allow ^192\.168\.20\.54$

  • Une fois la modification faîte et enregistrée, on redémarre le service :

service munin-node restart

  • De retour sur le serveur, on va dans le dossier /etc/munin/munin-conf.d :

cd /etc/munin/munin-conf.d

  • Ici, on peut créer des groupes pour catégoriser les postes clients, par exemple ; bdd, web, prod, etc…
  • Donc, si il n'existe pas encore, on crée le fichier de groupe pour notre client, disons qu'il s'agit d'un serveur de base de données MySQL, on créera donc le fichier bdd.conf :

touch bdd.conf

  • On peut alors éditer le fichier de configuration correspondant au groupe choisi pour le client (ici, bdd.conf) :

nano bdd.conf

  • On ajoute les informations du client. Par exemple pour la machine srv-mysql, dans le groupe bdd et dont l'adresse IP est 192.168.20.55, on ajoutera :

[srv-mysql.bdd]
  address 192.168.20.55
  use_node_name yes

  • Il ne nous reste plus qu'à relancer le service :

systemctl restart apache2.service

<note important>munin collecte les données toutes les 5 min par défaut. C'est le temps qu'il vous faudra attendre pour voir apparaître le nouveau client sur la page web.</note>

  • On commence par installer le service SNMP :

Add-WindowsCapability -Online -Name "SNMP.Client~~~~0.0.1.0"

  • Le service installé, on ouvre la fenêtre des services services.msc et on édite Service SNMP.

<note important>Si les onglets Agent, Interruptions et/ou Sécurité n'apparaissent pas, redémarrer le service, voire le client Windows.</note>

  • Dans l'onglet Agent, on coche tous les services.
  • Dans l'onglet Interruptions, on ajoute public au nom de la communauté et on ajoute l'adresse du serveur Munin dans les destinations des interruptions.
  • Dans l'onglet Sécurité, on ajoute la communauté public en mode LECTURE CREATION et on active Accepter les paquets SNMP provenant de n'importe quel hôte.

  • On ferme la fenêtre en cliquant sur OK et on redémarre le service.
  • On retourne sur le serveur Munin. Là, on installe les modules SNMP, si besoin :

apt update && apt install -y libnet-snmp-perl

  • On vérifie les modules SNMP disponibles pour le client Windows (windows.shyrka.sys dans l'exemple) :

<note important>Si votre réseau n'a pas de serveur DNS (Workgroup par exemple), n'hésitez pas à mettre le nom du client dans le fichier /etc/hosts.</note>

 munin-node-configure -snmp windows.shyrka.sys

  • Ce qui renvoie dans la console :

Plugin                     | Used | Suggestions                            
------                     | ---- | -----------                            
snmp__cpuload              | no   | yes (+windows.shyrka.sys)              
snmp__df                   | no   | yes (+windows.shyrka.sys)              
snmp__df_ram               | no   | yes (+windows.shyrka.sys)              
snmp__fc_if_               | no   | no [[[ plugin has neither autoconf not suggest support ]]]
snmp__fc_if_err_           | no   | no [[[ plugin has neither autoconf not suggest support ]]]
snmp__if_                  | no   | yes (+windows.shyrka.sys/22 +windows.shyrka.sys/25)
snmp__if_err_              | no   | yes (+windows.shyrka.sys/22 +windows.shyrka.sys/25)
snmp__if_multi             | no   | yes (+windows.shyrka.sys)              
snmp__load                 | no   | no [[[ plugin has neither autoconf not suggest support ]]]
snmp__memory               | no   | yes (+windows.shyrka.sys)              
snmp__netapp_diskusage_    | no   | no [[[ plugin has neither autoconf not suggest support ]]]
snmp__netapp_inodeusage_   | no   | no [[[ plugin has neither autoconf not suggest support ]]]
snmp__netstat              | no   | yes (+windows.shyrka.sys)              
snmp__print_pages          | no   | no [[[ plugin has neither autoconf not suggest support ]]]
snmp__print_supplies       | no   | no [[[ plugin has neither autoconf not suggest support ]]]
snmp__processes            | no   | yes (+windows.shyrka.sys)              
snmp__rdp_users            | no   | yes (+windows.shyrka.sys)              
snmp__sensors_fsc_bx_fan   | no   | no [[[ plugin has neither autoconf not suggest support ]]]
snmp__sensors_fsc_bx_temp  | no   | no [[[ plugin has neither autoconf not suggest support ]]]
snmp__sensors_fsc_fan      | no   | no [[[ plugin has neither autoconf not suggest support ]]]
snmp__sensors_fsc_temp     | no   | no [[[ plugin has neither autoconf not suggest support ]]]
snmp__sensors_mbm_fan      | no   | no [[[ plugin has neither autoconf not suggest support ]]]
snmp__sensors_mbm_temp     | no   | no [[[ plugin has neither autoconf not suggest support ]]]
snmp__sensors_mbm_volt     | no   | no [[[ plugin has neither autoconf not suggest support ]]]
snmp__swap                 | no   | yes (+windows.shyrka.sys)              
snmp__uptime               | no   | yes (+windows.shyrka.sys)              
snmp__users                | no   | yes (+windows.shyrka.sys)              
snmp__winload              | no   | yes (+windows.shyrka.sys)              
snmp__winmem               | no   | yes (+windows.shyrka.sys)

  • Dans la colonne Suggestions, les modules pour lequels des données sont disponibles apparaissent avec la mention yes. Pour activer un module, il suffit de créer un lien du module choisi en y ajouter le nom (pour ceux qui porte la mention +windows.shyrka.sys) et l'indice (pour ceux qui portent la mention +windows.shyrka.sys/xx). Par exemple, pour snmp_cpuload :

ln -s ln -s /usr/share/munin/plugins/snmp__cpuload /etc/munin/plugins/snmp_windows.shyrka.sys_cpuload

  • Et pour snmp_if_ :

ln -s /usr/share/munin/plugins/snmp__if_ /etc/munin/plugins/snmp_windows.shyrka.sys_if_22
ln -s /usr/share/munin/plugins/snmp__if_ /etc/munin/plugins/snmp_windows.shyrka.sys_if_25

  • Une fois les modules activés, on ajoute la machine dans un groupe de Munin (groupes crées de la même manière que pour les clients Linux). Les informations à ajouter au groupe sont le nom d'hôte tel qu'ajouté dans les lien snmp, l'adresse 127.0.0.1 (c'est le serveur qui fait la requête SNMP) et non pour l'utilisation du nom de node (Munin utilisera le nom indiqué dans le paramétrages machine, ici windwos.shyrka.sys et non celui de la machine portant le node, à savoir le serveur Munin). Ce qui donne :

[windows.shyrka.sys]
  address 127.0.0.1
  use_node_name no

  • Il ne reste plus qu'à redémarrer les services munin-node et apache2 :

service munin-node restart
service apache2 restart

  • Vérifier si le fichier de service pointe sur /dev/null :

ls -l /lib/systemd/system/munin.service

# Retour
lrwxrwxrwx 1 root root    9 mars   3  2017 munin.service -> /dev/null

  • Dans ce cas, supprimez le fichier :

rm -f /lib/systemd/system/munin.service

  • Relancez le daemon :

systemctl daemon-reload

  • Vérifier le service :

systemctl status munin.service

# Retour correct :
● munin.service - LSB: Create /var/run/munin on boot
   Loaded: loaded (/etc/init.d/munin; generated; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:systemd-sysv-generator(8)

  • Si le retour est correct, relancer le service :

systemctl start munin.service
systemctl status munin.service

# Retour
● munin.service - LSB: Create /var/run/munin on boot
   Loaded: loaded (/etc/init.d/munin; generated; vendor preset: enabled)
   Active: active (exited) since Mon 2020-04-06 10:29:03 CEST; 6s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 6678 ExecStart=/etc/init.d/munin start (code=exited, status=0/SUCCESS)

avril 06 10:29:03 mlb-monitor-2 systemd[1]: Starting LSB: Create /var/run/munin on boot...
avril 06 10:29:03 mlb-monitor-2 systemd[1]: Started LSB: Create /var/run/munin on boot.

Nicolas THOREZ 2020/02/21 14:23

Entrer votre commentaire. La syntaxe wiki est autorisée:
 
  • linux_munin.1588081226.txt.gz
  • Dernière modification : 2020/04/28 13:40
  • (modification externe)