Catégories
Open-source Planet-libre Reseau Systeme

Utiliser Munin avec des hôtes SNMP

Avec le temps, je suis devenu un grand adepte de Munin, le logiciel de supervision permettant de centraliser la gestion des graphes de données RRDTools.

Sa simplicité de prise en main et d’administration y est pour beaucoup. En effet, en une ligne de commande il est possible d’analyser une nouvelle machine à superviser. Munin va s’occuper de générer automatiquement tous les graphes possibles et imaginables. Cette simplicité est notamment dû à l’architecture client/serveur de Munin qui masque en grande parti la complexité des mécanismes de récupération de données à grapher.

Pour superviser un hôte comme des équipements réseaux (routeur Cisco, Switch…) ou des appliances (NAS…) sur lesquels il est impossible d’installer le client Munin, il faut passer par une configuration spécifique au niveau du serveur, utilisant le protocole SNMP, que nous allons détailler dans ce billet.

Comment ça marche ?

Contrairement au fonctionnement nominal de Munin, le serveur ne va pas passer par le client Munin pour récupérer les données mais par un plugin installé directement sur le serveur.

Dans le schéma suivant, honteusement copier/coller du site officiel, le serveur Munin (Dumbledore) va utiliser le le munin-node local pour aller chercher, via SNMP, les informations sur la machine hôte (Netopia).

Munin-SNMP

 

Comment ajouter un hôte SNMP à superviser ?

Avant tout il faut avoir installé le serveur Munin sur une machine GNU/Linux (vous pouvez suivre cet article pour vous aider).

Ensuite, depuis votre serveur, il suffit de saisir la commande suivante pour ajouter l’hôte « netopia ». Il faut bien sûr remplace netopia par le nom (FQND) ou l’adresse IP de votre hôte.

dumbledore:~# munin-node-configure --shell --snmp netopia
ln -s /usr/share/munin/plugins/snmp__if_ /etc/munin/plugins/snmp_netopia_if_1
ln -s /usr/share/munin/plugins/snmp__if_err_ /etc/munin/plugins/snmp_netopia_if_err_1
...

Comme vous pouvez le voir, la commande munin-node-configuration avec le tag –snmp  va scanner la MIB SNMP de votre machine hôte et proposer une configuration automatique de tout les plugins (graphes) reconnus dans le répertoire /usr/share/munin/plugins. Vous pouvez ensuite les activer dans votre configuration de Munin en faisant un copier/coller de toutes les lignes ln -s … ou bien plus simplement en remplaçant la commande précédente par:

dumbledore:~# munin-node-configure --shell --snmp netopia | sh

Par défaut, munin-node-configuration utilise public comme communauté SNMP, il est possible de la configurer en ajoutant:

--snmpcommunity public

La version de SNMP à utiliser peut également être configurée:

--snmpversion 3

Il faut ensuite ajouter les lignes suivantes à votre fichier de configuration du serveur Munin (en laissant bien l’adresse IP 127.0.0.1 !!!):

[netopia]
    address 127.0.0.1
    use_node_name no

 Appliquer la nouvelle configuration à votre serveur Munin

Une fois vos différents hôtes ajoutés selon la procédure précédente,  vous devez faire prendre en compte la nouvelle configuration avec la commande:

service munin-node restart

Les nouveaux graphes devraient apparaître après quelques minutes:

muninsnmp

Dans certains cas, si les graphes n’arrivent pas, il peut être utile de relancer complètement le serveur Munin en saisissant:

su - munin --shell=/bin/sh

/usr/share/munin/munin-update

Conclusion

Avez vous des avis sur Munin, l’utiliser vous avec un pooling SNMP ?

Des scripts et astuces à partager ?

Source: Site officiel de Munin

Catégories
Open-source Reseau

Ntop et la supervision réseau via Netflow/IPFix

NTop est un outil libre (licence GPL) de supervision réseau permettant d’afficher en temps réel les informations collectées dans une interface Web. Pour effectuer cette collecte, NTop se base sur la librairie libpcap (du projet TCPDump) pour capturer les flux transitant sur les interfaces réseau de la machine ou est installé le logiciel. Les dernières versions de NTop permettent également de collecter des informations venant de machines distantes grâce aux protocoles SNMP et Netflow/IPfix. C’est sur ce dernier point que nous allons nous focaliser dans ce billet.

Catégories
Nagios Open-source

Superviser l’espace disque avec Nagios via SNMP

Disque dur

Voici une méthode simple rapide et efficace (enfin plus rapide à mettre en place que NRPE) pour surveiller l’espace disque disponible de ses machines Linux/BSD/Windows à partir de Nagios en utilisant le protocole SNMP.

Les pré-requis sont les suivants:

  • avoir un Nagios correctement installé
  • la machine à surveiller doit héberger un serveur SNMP dont la configuration permette au serveur Nagios de lire les informations (l’accès read-only v1/v2 de SNMP est suffisant)
  • suivre la suite de ce billet 😉

Configuration de la machine à surveiller

Après avoir installé et configuré son serveur SNMP, il faut ajouter la ligne suivante au fichier de configuration snmpd.conf (la localisation de ce dernier est os dépendant):

[shell]
disk / 100000
[/shell]

PS: le deuxième paramètre permet de fixer le seuil en dessous duquel une alerte SNMP est remontée. Il n’est pas très important pour nous car c’est Nagios qui va générer cette alerte avec nos propres valeurs.

On doit bien sûr relancer le service snmpd pour lire la configuration, par exemple:

[shell]
/etc/init.d/snmpd restart
[/shell]

Configuration du serveur Nagios

La première chose à faire est de vérifier que l’on arrive bien à récupérer les informations SNMP sur la machine à surveiller (d’adresse IP 192.168.0.200 dans notre exemple). Pour cela on peut utiliser la commande suivante:

[shell]
snmpget -v 1 -c public 192.168.0.200 .1.3.6.1.4.1.2021.9.1.9.1
UCD-SNMP-MIB::dskPercent.1 = INTEGER: 32
[/shell]

La commande a réussi. On a bien récupéré la valeur 32 par SNMP. Donc On a 32% d’espace disque occupé sur le disque de la machine 192.168.0.200.

On configure Nagios de la manière suivante, on édite le fichier commands.cfg:

[shell]
#################
# check_snmp_disk
#################

# Check free disk space using SNMP (add the "disk 1000000" line to the snmpd.conf)

define command{

command_name check_snmp_disk

command_line $USER1$/check_snmp -H $HOSTADDRESS$ -o .1.3.6.1.4.1.2021.9.1.9.1 -C $ARG1$ -w $ARG2$ -c $ARG3$ -u "% used"

}
[/shell]

Puis on configure le service pour la machine à surveiller (dans un autre fichier comme par exemple services.cfg):

[shell]

define service{
use generic-service
host_name Ma_Machine_192.168.0.200
service_description DISK SPACE
check_command check_snmp_disk!public!90!95
}

[/shell]

La fonction check_snmp_disk prend 3 paramètres:

  • le nom de la communauté SNMP (public)
  • le seuil au dessus duquel un warning est généré par Nagios (90%)
  • le seuil au dessus duquel un error est généré par Nagios (95%)

Il ne reste plus qu’a relancer Nagios pour prendre en compte la configuration !

Catégories
Open-source Reseau

Installation d’un serveur SNMP sous GNU/Linux

Ce billet a pour but de détailler l’installation et la configuration d’un serveur SNMP sous Linux. J’ai choisi d’utiliser la solution open-source net-snmpd.

logo-netsnmp.jpg

Celle-ci dispose d’une communauté de développeurs très active. De plus cette solution est disponible sous de nombreux OS (Linux, BSD mais aussi Mac OS X et même Windows !).