Nous avons précédemment expliqué comment utiliser Nagios pour surveiller un serveur Linux et Windows. Dans cet article, voyons comment surveiller les sessions actives et la température du périphérique VPN à l'aide de Nagios. Vous pouvez surveiller à peu près tout ce qui concerne un matériel à l'aide du plug-in nagios check_snmp.
1. Identifiez un fichier cfg pour définir l'hôte, le groupe d'hôtes et les services pour le périphérique VPN
Vous pouvez soit créer un nouveau fichier vpn.cfg, soit réutiliser l'un des fichiers .cfg existants. Dans cet article, j'ai ajouté le service VPN et la définition du groupe d'hôtes à un fichier switch.cfg existant. Assurez-vous que la ligne switch.cfg dans le fichier nagios.cfg n'est pas commentée comme indiqué ci-dessous.
# grep switch.cfg /usr/local/nagios/etc/nagios.cfg cfg_file=/usr/local/nagios/etc/objects/switch.cfg
2. Ajouter un nouveau groupe d'hôtes pour le périphérique VPN dans switch.cfg
Ajoutez le groupe d'hôtes ciscovpn suivant au fichier /usr/local/nagios/etc/objects/switch.cfg.
define hostgroup{ hostgroup_name ciscovpn alias Cisco VPN Concentrator }
3. Ajouter un nouvel hôte pour le périphérique VPN dans switch.cfg
Dans cet exemple, j'ai défini deux hôtes - un pour le concentrateur principal et un autre pour le concentrateur VPN Cisco secondaire dans le fichier /usr/local/nagios/etc/objects/switch.cfg. Remplacez la directive d'adresse par l'adresse IP de votre périphérique VPN en conséquence.
define host{ use generic-host host_name cisco-vpn-primary alias Cisco VPN Concentrator Primary address 192.168.1.7 check_command check-host-alive max_check_attempts 10 notification_interval 120 notification_period 24x7 notification_options d,r contact_groups admins hostgroups ciscovpn } define host{ use generic-host host_name cisco-vpn-secondary alias Cisco VPN Concentrator Secondary address 192.168.1.9 check_command check-host-alive max_check_attempts 10 notification_interval 120 notification_period 24x7 notification_options d,r contact_groups admins hostgroups ciscovpn }
4. Ajouter de nouveaux services pour surveiller les sessions VPN actives et la température dans switch.cfg
Ajoutez le service "Température" et le service "Active VPN Sessions" au fichier /usr/local/nagios/etc/objects/switch.cfg.
define service{ use generic-service hostgroup_name ciscovpn service_description Temperature is_volatile 0 check_period 24x7 max_check_attempts 4 normal_check_interval 10 retry_check_interval 2 contact_groups admins notification_interval 960 notification_period 24x7 check_command check_snmp!-l Temperature -o .1.3.6.1.4.1.3076.2.1.2.22.1.29.0,.1.3.6.1.4.1.3076.2.1.2.22.1.33.0 -w 37,:40 -c :40,:45 } define service{ use generic-service hostgroup_name ciscovpn service_description Active VPN Sessions is_volatile 0 check_period 24x7 max_check_attempts 4 normal_check_interval 5 retry_check_interval 1 contact_groups admins notification_interval 960 notification_period 24x7 check_command check_snmp!-l ActiveSessions -o 1.3.6.1.4.1.3076.2.1.2.17.1.7.0,1.3.6.1.4.1.3076.2.1.2.17.1.9.0 -w :70,:8 -c :75,:10 }
5. Validez le check_snmp depuis la ligne de commande
Le plug-in Check_snmp utilise la commande « snmpget » du package NET-SNMP. Assurez-vous que le net-snmp est installé sur votre système comme indiqué ci-dessous. Sinon, téléchargez-le à partir du site Web NET-SNMP.
# rpm -qa | grep -i net-snmp net-snmp-libs-5.1.2-11.el4_6.11.2 net-snmp-5.1.2-11.el4_6.11.2 net-snmp-utils-5.1.2-11.EL4.10
Assurez-vous que check_snmp fonctionne à partir de la ligne de commande comme indiqué ci-dessous.
# /usr/local/nagios/libexec/check_snmp -H 192.168.1.7 \ -P 2c -l Temperature -w :35,:40 -c :40,:45 \ -o .1.3.6.1.4.1.3076.2.1.2.22.1.29.0,.1.3.6.1.4.1.3076.2.1.2.22.1.33.0 Temperature OK - 35 38 | iso.3.6.1.4.1.3076.2.1.2.22.1.29.0=35 iso.3.6.1.4.1.3076.2.1.2.22.1.33.0=38 # /usr/local/nagios/libexec/check_snmp -H 192.168.1.7 \ -P 2c -l ActiveSessions -w :80,:40 -c :100,:50 \ -o 1.3.6.1.4.1.3076.2.1.2.17.1.7.0,1.3.6.1.4.1.3076.2.1.2.17.1.9.0 ActiveSessions CRITICAL - *110* 20 | iso.3.6.1.4.1.3076.2.1.2.17.1.7.0=110 iso.3.6.1.4.1.3076.2.1.2.17.1.9.0=20
Dans cet exemple, les paramètres suivants sont passés au check_snmp :
- -H, –hostname=ADDRESS Nom d'hôte, adresse IP ou socket unix (doit être un chemin absolu)
- -P, –protocol=[1|2c|3] Version du protocole SNMP
- -l, –label=STRING Étiquette de préfixe pour la sortie du plugin. c'est-à-dire la température ou les ActiveSessions
- -w, –warning=INTEGER_RANGE(s) Plage(s) qui n'entraîneront pas d'état AVERTISSEMENT
- -c, –critical=INTEGER_RANGE(s) Plage(s) qui n'entraîneront pas un statut CRITIQUE
- -o, –oid=OID(s) Identifiant(s) d'objet(s) ou variables SNMP dont vous souhaitez interroger la valeur. Assurez-vous de vous référer au manuel de votre appareil pour voir tous les oid pris en charge et disponibles pour votre équipement. Si vous avez plus de deux oid, séparez-les par une virgule.
Dans l'exemple ActiveSessions, deux OID sont surveillés. c'est-à-dire un pour les tunnels VPN LAN-2-LAN (iso.3.6.1.4.1.3076.2.1.2.17.1.7.0) et un autre pour les sessions PPTP (iso.3.6.1.4.1.3076.2.1.2.17.1.9.0). Dans l'exemple ci-dessus, les sessions actives VPN LAN-2-LAN ont dépassé la limite critique de 100.
L'identificateur d'objet (OID) est organisé dans une arborescence hiérarchique de la base d'informations de gestion (MIB) avec des racines et des branches basées sur la norme Internet.
6. Valider la configuration et redémarrer nagios
Vérifiez la configuration de nagios pour vous assurer qu'il n'y a pas d'avertissements et d'erreurs.
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg Total Warnings: 0 Total Errors: 0 Things look okay - No serious problems were detected during the pre-flight check
Redémarrez le serveur nagios pour commencer à surveiller le périphérique VPN.
# /etc/rc.d/init.d/nagios stop Stopping nagios: .done. # /etc/rc.d/init.d/nagios start Starting nagios: done.
Vérifiez l'état des ActiveSessions et de la température du périphérique VPN à partir de l'interface utilisateur Web de Nagios (http://{nagios-server}/nagios) comme indiqué ci-dessous.
Fig – Nagios Web UI montrant l'état du périphérique VPN
7. Dépannage
Problème : check_snmp fonctionne sans aucun problème à partir de la ligne de commande Linux, mais l'interface utilisateur Web de Nagios affiche l'erreur suivante :
Status Information: SNMP problem - No data received from host CMD: /usr/bin/snmpget -t 1 -r 5 -m '' -v 1 [authpriv] 192.168.1.7:161
Solution : Assurez-vous que la définition de check_command pour le plug-in check_snmp dans le fichier switch.cfg est correctement définie. Les arguments de la commande check_snmp doivent correspondre à la définition check_snmp dans /usr/local/nagios/etc/commands.cfg
check_command check_snmp!Temperature!.1.3.6.1.4.1.3076.2.1.2.22.1.29.0,.1.3.6.1.4.1.3076.2.1.2.22.1.33.0!37,:40!:40,:45 [Note: This is wrong, as it is passing 4 arguments to check_snmp command The value after the exclamation is considered as one argument. !{argument1}!{argument2}] check_command check_snmp!-l Temperature -o .1.3.6.1.4.1.3076.2.1.2.22.1.29.0,.1.3.6.1.4.1.3076.2.1.2.22.1.33.0 -w 37,:40 -c :40,:45 [Note: This is correct, as it is passing 1 argument to check_snmp command The value after the exclamation is considered as one argument. !{argument1}]
Dans la définition de la commande check_snmp ci-dessous, il n'y a qu'un seul argument $ARG1$. Ainsi, dans le switch.cfg, lors de la définition de check_snmp, vous n'avez besoin de transmettre qu'un seul argument, comme indiqué ci-dessus.
# 'check_snmp' command definition define command{ command_name check_snmp command_line $USER1$/check_snmp -H $HOSTADDRESS$ $ARG1$ }
Lecture recommandée
Ce sont les deux meilleurs livres qui couvrent le dernier Nagios 3. Je vous recommande fortement de lire ces deux livres pour acquérir une compréhension détaillée de Nagios.