linux_munin

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
linux_munin [2020/04/28 09:51] – [Prérequis] nekanlinux_munin [2021/03/05 18:42] (Version actuelle) nekan
Ligne 1: Ligne 1:
-~~CLOSETOC~~ 
 ====== Munin - Installation d'un outil d'analyse des ressources ====== ====== Munin - Installation d'un outil d'analyse des ressources ======
 +<label type="info">Création</label> --- //[[nekan@shyrkasystem.com|Nicolas THOREZ]] 2020/02/21 14:23//
  
 ''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. ''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.
Ligne 6: Ligne 6:
   * Référence : [[http://munin-monitoring.org/|Munin]]   * Référence : [[http://munin-monitoring.org/|Munin]]
  
-<note>Cette procédure a été réalisée et testée sur une VM debian 10.</note> +<callout type="info" title="Environnement" icon="true">Cette procédure a été réalisée et testée sur une VM debian 10 (serveur et client) et une VM Windows 10 (client).</callout
- +<callout type="danger" title="Droits" icon="true">Cette procédure nécessite des droits ''root''. Faîtes donc attention à ce que vous faîtes.</callout>
-<note warning>Cette procédure nécessite des droits ''root''. Faîtes donc attention à ce que vous faîtes.</note>+
  
 ===== Prérequis ===== ===== Prérequis =====
Ligne 98: Ligne 97:
   * En cas d'erreur de redémarrage du service Munin : [[linux_munin#failed_to_restart_muninserviceunit_muninservice_is_masked|Failed to restart munin.service: Unit munin.service is masked.]]   * En cas d'erreur de redémarrage du service Munin : [[linux_munin#failed_to_restart_muninserviceunit_muninservice_is_masked|Failed to restart munin.service: Unit munin.service is masked.]]
  
-<note tip>Félicitations, vous devriez désormais avoir accès à votre serveur ''munin'' via l'adresse http://ip_du_serveur_munin/munin.</note>+<callout type="success" title="Installation" icon="true">Félicitations, vous devriez désormais avoir accès à votre serveur ''munin'' via l'adresse http://ip_du_serveur_munin/munin.</callout>
  
-===== Installation d'un client =====+==== Sécurisation ==== 
 + 
 +Dans le cas où ''munin'' devrait être accessible sur Internet et du fait des données sensibles qu'il présente, on peut rajouter une demande de mot de passe pour accéder au site. Pour cela : 
 +  * On modifie le fichier ''/etc/apache2/conf-available/munin.conf'' pour ajouter la directive ''AllowOverride all''. Le fichier ressemble du coup à ça : 
 +<sxh bash; highlight: 17># 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> 
 +    AllowOverride all 
 +    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</sxh> 
 + 
 +  * On créé le fichier ''/var/www/munin/.htaccess''
 +<sxh bash>nano /var/www/munin/.htaccess</sxh> 
 + 
 +  * On ajoute les directives suivantes : 
 +<sxh>AuthType Basic 
 +AuthName "Members Only" 
 +AuthUserFile /var/www/munin/htpasswd.users 
 +<limit GET PUT POST> 
 +   require valid-user 
 +</limit></sxh> 
 + 
 +  * Après avoir enregistré le fichier, on lui donne les droits nécessaires : 
 +<sxh bash>chown www-data:www-data /var/www/munin/.htaccess 
 +chmod 400 /var/www/munin/.htaccess</sxh> 
 + 
 +  * Il nous reste plus qu'à crée le fichiers de mots de passe : 
 +<sxh bash>htpasswd -c /var/www/munin/htpasswd.users muninadmin</sxh> 
 + 
 +  * On renseigne le mot de passe correspondant à l'utilisateur ''muninadmin''
 +  * On redémarre ''apache2''
 +<sxh bash>service apache2 restart</sxh> 
 + 
 +<callout type="success" title="Sécurité" icon="true">Voilà, l'accès à ''munin'' est désormais protégé par un mot de passe.</callout> 
 + 
 + 
 +===== Installation d'un client sous Linux =====
  
   * On commence par mettre à jour les dépôts ''APT'' :   * On commence par mettre à jour les dépôts ''APT'' :
Ligne 111: Ligne 180:
 <sxh bash>cd /etc/munin/plugins/ <sxh bash>cd /etc/munin/plugins/
 ln -s /usr/share/munin/plugins/acpi .</sxh> ln -s /usr/share/munin/plugins/acpi .</sxh>
 +<callout type="tip" title="Astuce" icon="true">Vous pouvez activer tous les modules conseillés avec la commande :
 +<sxh bash>munin-node-configure --suggest --shell | sh</sxh></callout>
   * 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'' :   * 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'' :
 <sxh bash>nano /etc/munin/munin-node.conf</sxh> <sxh bash>nano /etc/munin/munin-node.conf</sxh>
Ligne 131: Ligne 202:
 <sxh bash>systemctl restart apache2.service</sxh> <sxh bash>systemctl restart apache2.service</sxh>
  
-<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>+<callout type="info" title="Collecte de données" icon="true">''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.</callout>
  
 +===== Installation d'un client sous Windows =====
 +
 +  * On commence par installer le service SNMP :
 +<sxh powershell>Add-WindowsCapability -Online -Name "SNMP.Client~~~~0.0.1.0"</sxh>
 +  * Le service installé, on ouvre la fenêtre des services ''services.msc'' et on édite ''Service SNMP''.
 +<callout type="warning" title="Paramétrages" icon="true">Si les onglets ''Agent'', ''Interruptions'' et/ou ''Sécurité'' n'apparaissent pas, redémarrer le service, voire le client Windows.</callout>
 +  * 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''.
 +<WRAP group>
 +<WRAP third column>
 +<image shape="thumbnail">{{ :linux:munin:munin_001.png |}}</image>
 +</WRAP>
 +
 +<WRAP third column>
 +<image shape="thumbnail">{{ :linux:munin:munin_002.png |}}</image>
 +</WRAP>
 +
 +<WRAP third column>
 +<image shape="thumbnail">{{ :linux:munin:munin_003.png |}}</image>
 +</WRAP>
 +</WRAP>
 +
 +  * 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 :
 +<sxh bash>apt update && apt install -y libnet-snmp-perl</sxh>
 +  * On vérifie les modules SNMP disponibles pour le client Windows (''windows.shyrka.sys'' dans l'exemple) :
 +<callout type="warning" title="Résolution de nom d'hôte" icon="true">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''.</callout>
 +<sxh bash> munin-node-configure -snmp windows.shyrka.sys</sxh>
 +  * Ce qui renvoie dans la console :
 +<sxh>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)
 +</sxh>
 +
 +  * 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'' :
 +<sxh bash>ln -s /usr/share/munin/plugins/snmp__cpuload /etc/munin/plugins/snmp_windows.shyrka.sys_cpuload</sxh>
 +  * Et pour ''snmp_if_ '' :
 +<sxh bash>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</sxh>
 +  * 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 :
 +<sxh>[windows.shyrka.sys]
 +  address 127.0.0.1
 +  use_node_name no
 +</sxh>
 +  * Il ne reste plus qu'à redémarrer les services ''munin-node'' et ''apache2'' :
 +<sxh bash>service munin-node restart
 +service apache2 restart</sxh>
 ===== Erreurs et Corrections  ===== ===== Erreurs et Corrections  =====
  
Ligne 168: Ligne 315:
 avril 06 10:29:03 mlb-monitor-2 systemd[1]: Started LSB: Create /var/run/munin on boot.</sxh> avril 06 10:29:03 mlb-monitor-2 systemd[1]: Started LSB: Create /var/run/munin on boot.</sxh>
  
- 
- 
- --- //[[nekan@shyrkasystem.com|Nicolas THOREZ]] 2020/02/21 14:23// 
 ~~DISCUSSION~~ ~~DISCUSSION~~
  • linux_munin.1588060282.txt.gz
  • Dernière modification : 2020/04/28 07:51
  • (modification externe)