Articles avec les mots clés ’VMware’
Supervision de baies de stockage Dell EqualLogic avec Nagios
Après la surveillance des hôtes VMware ESX(i), nous allons nous intéresser dans cet article à un des points névralgiques d’une infrastructure VMware vSphere : le stockage. Qu’il soit local ou partagée, une attention toute particulière doit lui être accordée.
Dans le cadre de mon travail, j’ai été amené à mettre en place et à utiliser un réseau de stockage s’appuyant sur une baie de stockage Dell EqualLogic PS6000XV (SAN iSCSI).
Pour vérifier l’état de santé et mesurer des données performances des baies de stockage Dell EqualLogic, Dell fournit gratuitement l’utilitaire Dell EqualLogic SAN HeadQuarters. Il est également possible de recevoir des notifications par courrier électronique pour être averti de problèmes éventuels.
Afin de centraliser la supervision de ce type de baie de stockage au sein de la solution de supervision Nagios, il m’a fallu développer un plugin Nagios dédié à cette tâche. Il repose sur la collecte des informations à l’aide de la version 1 du protocole SNMP. Le résultat est la publication aujourd’hui sous licence GPLv2 du plugin Nagios check_snmp_dell_equallogic (26 Ko). Il est construit sur la notion de groupe et de membres. Chaque groupe Dell EqualLogic prend en charge jusqu’à 16 baies de stockage, que l’on appelle des membres.
Le plugin check_snmp_dell_equallogic permet de vérifier l’état de l’alimentation, des batteries, des contrôleurs, de chaque disque dur, du RAID et des interfaces réseaux. Il permet également de récupérer plusieurs données de performances comme la vitesse des ventilateurs, le nombre d’entrées/sorties par seconde (IOPS), la latence, la température, le nombre de connexion iSCSI, l’utilisation de l’espace disque et enfin la consommation des différents volumes (LUNs). Ce qui donne dans l’interface Nagios (avec le thème Vautour Style) :
- Déplacez le plugin check_snmp_dell_equallogic dans le répertoire contenant les plugins Nagios : mv check_snmp_dell_equallogic /usr/local/nagios/libexec/
- Rendez le fichier exécutable : chmod +x /usr/local/nagios/libexec/check_snmp_dell_equallogic
- Modifiez le propriétaire pour ce script : chown nagios:nagios /usr/local/nagios/libexec/check_snmp_dell_equallogic
Pour vérifier que ce plugin Nagios fonctionne correctement, il vous suffit de l’exécuter : /usr/local/nagios/libexec/check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t info
Ce qui devrait vous retourner : Member ‘BAIE01′ – Info : Storage Array Dell EqualLogic ‘xx-xxx’ (xxxxxxxx) has 2 controllers and 16 hard drives
L’argument H correspond à l’adresse IP du groupe de baies, C à la communauté SNMP, n au nom du membre et t au type d’information que vous souhaitez récupérer. Les valeurs possibles sont : battery, connection, controller, disk, fan, health, info, io, latency, network, redundancy, temperature, usage, raid et volume. En fonction du type d’information, il vous faudra utiliser d’autres arguments tels que d pour indiquer l’identifiant du disque dur. Vous trouverez plus d’informations sur son utilisation en affichant l’aide qui accompagne ce plugin : /usr/local/nagios/libexec/check_snmp_dell_equallogic -h
Voici quelques exemples d’utilisation :
- Vérifiez l’état des batteries : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t battery
Member ‘BAIE01′ – Battery status : cache battery in controller 1 is fully functional , cache battery in controller 2 is fully functional
- Récupérez le nombre de connexion iSCSI : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t connection -w 15 -c 20
Member ‘BAIE01′ – Number of iSCSI connections : 54 | con_iscsi=54;15;20;0
- Vérifiez l’état des contrôleurs : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t controller
Member ‘BAIE01′ – Controllers status : both controllers are fully functional
- Vérifiez l’état du disque dur d’identifiant 1 : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t disk -d 1
Member ‘BAIE01′ – Disk 1 (slot 0) status (type : SAS and size 419.18 Go ) : Disk is online. RAID is fully fonctionnal
- Récupérez la vitesse des ventilateurs : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t fan
Member ‘BAIE01′ – Fan speed : ‘Power Cooling Module 0 Fan 0′ : 5010 tr/min, ‘Power Cooling Module 0 Fan 1′ : 4800 tr/min, ‘Power Cooling Module 1 Fan 0′ : 4830 tr/min, ‘Power Cooling Module 1 Fan 1′ : 4830 tr/min, | ‘Power Cooling Module 0 Fan 0′=5010 ‘Power Cooling Module 0 Fan 1′=4800 ‘Power Cooling Module 1 Fan 0′=4830 ‘Power Cooling Module 1 Fan 1′=4830
- Contrôlez l’état global de la baie de stockage : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx-C public -n BAIE01 -t health
Member ‘BAIE01′ – Global system status : OK
- Récupérez le nombre d’entrée/sortie par seconde : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01-t io
Member ‘BAIE01′ – I/O Operations Per Second : Read counter’s value is 429346443 and write counter’s value is 548035313 | read=429346443c;0;0;0 write=548035313c;0;0;0
- Récupérez la latence en lecture et écriture : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t latency
Member ‘BAIE01′ – Reading average latency value is : 3 ms, writing average latency value is 2 ms | read=3;0;0;0 write=2;0;0;0
- Vérifiez si l’interface réseau eth0 est bien connecté : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t network -i eth0
Member ‘BAIE01′ – Network interface ‘eth0′ (10.100.2.10) status : Network interface is fully fonctionnal
- Vérifiez la redondance et l’état de l’alimentation : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t redundancy
Member ‘BAIE01′ – Power supply status : ‘Power Cooling Module 0′ is fully fonctionnal, ‘Power Cooling Module 1′ is fully fonctionnal
- Vérifiez l’état du RAID : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t raid
Member ‘BAIE01′ – RAID status : RAID is fully fonctionnal
- Récupérez la température des différents composants : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t temperature
Member ‘BAIE01′ – Temperatures : ‘Control module 0 processor’ : 60 Degres Celcius, ‘Control module 0 chipset’ : 24 Degres Celcius, ‘Control module 1 processor’ : 58 Degres Celcius, ‘Control module 1 chipset’ : 25 Degres Celcius, ‘Control module 0 SAS Controller’ : 56 Degres Celcius, ‘Control module 0 SAS Expander’ : 75 Degres Celcius, ‘Control module 1 SAS Controller’ : 59 Degres Celcius, ‘Control module 1 SAS Expander’ : 77 Degres Celcius, ‘Control module 1 SES Enclosure’ : 43 Degres Celcius, ‘Control module 0 Battery’ : 18 Degres Celcius, ‘Control module 1 Battery’ : 18 Degres Celcius, | ‘Control module 0 processor’=60 ‘Control module 0 chipset’=24 ‘Control module 1 processor’=58 ‘Control module 1 chipset’=25 ‘Control module 0 SAS Controller’=56 ‘Control module 0 SAS Expander’=75 ‘Control module 1 SAS Controller’=59 ‘Control module 1 SAS Expander’=77 ‘Control module 1 SES Enclosure’=43 ‘Control module 0 Battery’=18 ‘Control module 1 Battery’=18
- Récupérez l’utilisation de l’espace disque : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t usage -w 90 -c 95
Member ‘BAIE01′ – Used disk space : 3.90 To with a total disk space of 4.70 To (83%) with 0% for snapshots and 0% for replication | total=5173228339200B;4655905505280;4914566922240;0 used=4295035453440B;0;0;0 snapshots=0B;0;0;0 replicas=0B;0;0;0
- Récupérez la consommation d’un volume : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t volume -v volume01 -w 90 -c 95
Member ‘BAIE01′ – Volume ‘volume01′ (online) in RAID group ‘GRP01′ : 213.04 Go used on 500.00 Go (42%) | volume_used=228757340160B;483183820800;510027366400;0
Nous allons maintenant modifier la configuration de Nagios pour superviser une baie de stockage Dell EqualLogic. Cette partie dépend de l’arborescence de configuration et de l’installation de Nagios dont vous disposez.
- Ajoutez les définitions des objets command : vi /etc/nagios/objects/commands.cfg
define command {
command_name check_dell_equallogic_battery
command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t battery
}
define command {
command_name check_dell_equallogic_connection
command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t connection -w $ARG3$ -c $ARG4$
}
define command {
command_name check_dell_equallogic_controller
command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t controller
}
define command {
command_name check_dell_equallogic_disk
command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t disk -d $ARG3$
}
define command {
command_name check_dell_equallogic_fan
command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t fan
}
define command {
command_name check_dell_equallogic_health
command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t health
}
define command {
command_name check_dell_equallogic_io
command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t io
}
define command {
command_name check_dell_equallogic_latency
command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t latency
}
define command {
command_name check_dell_equallogic_network
command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t network -i $ARG3$
}
define command {
command_name check_dell_equallogic_redundancy
command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t redundancy
}
define command {
command_name check_dell_equallogic_raid
command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t raid
}
define command {
command_name check_dell_equallogic_temperature
command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t temperature
}
define command {
command_name check_dell_equallogic_usage
command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t usage -w $ARG3$ -c $ARG4$
}
define command {
command_name check_dell_equallogic_volume
command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t volume -v $ARG3$ -w $ARG4$ -c $ARG5$
}
- Ajoutez la définition de l’objet host pour le groupe de baies de stockage : vi /etc/nagios/objects/hosts.cfg
define host {
host_name grpbaies
use generic_host
alias Groupe de baies Dell EqualLogic
address xxx.xxx.xxx.xxx
contact_groups +admin
}
- Ajoutez la définition des objets service pour la baie : vi /etc/nagios/objects/services.cfg
define service {
host_name grpbaies
use generic_service
service_description BAIE01_Alimentation
check_command check_dell_equallogic_redundancy!public!baie01
contact_groups +admin
}
define service {
host_name grpbaies
use generic_service
service_description BAIE01_Batteries
check_command check_dell_equallogic_battery!public!baie01
contact_groups +admin
}
define service {
host_name grpbaies
use generic_service
service_description BAIE01_Connexions_iSCSI
check_command check_dell_equallogic_connection!public!baie01!0!0
contact_groups +admin
}
define service {
host_name grpbaies
use generic_service
service_description BAIE01_Controleurs
check_command check_dell_equallogic_controller!public!baie01
contact_groups +admin
}
define service {
host_name grpbaies
use generic_service
service_description BAIE01_Espace_Disque
check_command check_dell_equallogic_usage!public!baie01!90!95
contact_groups +admin
}
define service {
host_name grpbaies
use generic_service
service_description BAIE01_Etat_Disque_1
check_command check_dell_equallogic_disk!public!baie01!1
contact_groups +admin
}
define service {
host_name grpbaies
use generic_service
service_description BAIE01_Etat_Disque_2
check_command check_dell_equallogic_disk!public!baie01!2
contact_groups +admin
}
define service {
host_name grpbaies
use generic_service
service_description BAIE01_Etat_Disque_3
check_command check_dell_equallogic_disk!public!baie01!3
contact_groups +admin
}
define service {
host_name grpbaies
use generic_service
service_description BAIE01_Etat_Disque_4
check_command check_dell_equallogic_disk!public!baie01!4
contact_groups +admin
}
define service {
host_name grpbaies
use generic_service
service_description BAIE01_Etat_Disque_5
check_command check_dell_equallogic_disk!public!baie01!5
contact_groups +admin
}
define service {
host_name grpbaies
use generic_service
service_description BAIE01_Etat_Disque_6
check_command check_dell_equallogic_disk!public!baie01!6
contact_groups +admin
}
define service {
host_name grpbaies
use generic_service
service_description BAIE01_Etat_Disque_7
check_command check_dell_equallogic_disk!public!baie01!7
contact_groups +admin
}
define service {
host_name grpbaies
use generic_service
service_description BAIE01_Etat_Disque_8
check_command check_dell_equallogic_disk!public!baie01!8
contact_groups +admin
}
define service {
host_name grpbaies
use generic_service
service_description BAIE01_Etat_Disque_9
check_command check_dell_equallogic_disk!public!baie01!9
contact_groups +admin
}
define service {
host_name grpbaies
use generic_service
service_description BAIE01_Etat_Disque_10
check_command check_dell_equallogic_disk!public!baie01!10
contact_groups +admin
}
define service {
host_name grpbaies
use generic_service
service_description BAIE01_Etat_Disque_11
check_command check_dell_equallogic_disk!public!baie01!11
contact_groups +admin
}
define service {
host_name grpbaies
use generic_service
service_description BAIE01_Etat_Disque_12
check_command check_dell_equallogic_disk!public!baie01!12
contact_groups +admin
}
define service {
host_name grpbaies
use generic_service
service_description BAIE01_Etat_Disque_13
check_command check_dell_equallogic_disk!public!baie01!13
contact_groups +admin
}
define service {
host_name grpbaies
use generic_service
service_description BAIE01_Etat_Disque_14
check_command check_dell_equallogic_disk!public!baie01!14
contact_groups +admin
}
define service {
host_name grpbaies
use generic_service
service_description BAIE01_Etat_Disque_15
check_command check_dell_equallogic_disk!public!baie01!15
contact_groups +admin
}
define service {
host_name grpbaies
use generic_service
service_description BAIE01_Etat_Disque_16
check_command check_dell_equallogic_disk!public!baie01!16
contact_groups +admin
}
define service {
host_name grpbaies
use generic_service
service_description BAIE01_Interface_Reseau_eth0
check_command check_dell_equallogic_network!public!baie01!eth0
contact_groups +admin
}
define service {
host_name grpbaies
use generic_service
service_description BAIE01_Interface_Reseau_eth1
check_command check_dell_equallogic_network!public!baie01!eth1
contact_groups +admin
}
define service {
host_name grpbaies
use generic_service
service_description BAIE01_Interface_Reseau_eth2
check_command check_dell_equallogic_network!public!baie01!eth2
contact_groups +admin
}
define service {
host_name grpbaies
use generic_service
service_description BAIE01_Interface_Reseau_eth3
check_command check_dell_equallogic_network!public!baie01!eth3
contact_groups +admin
}
define service {
host_name grpbaies
use generic_service
service_description BAIE01_IO
check_command check_dell_equallogic_io!public!baie01
contact_groups +admin
}
define service {
host_name grpbaies
use generic_service
service_description BAIE01_Latence
check_command check_dell_equallogic_latency!public!baie01
contact_groups +admin
}
define service {
host_name grpbaies
use generic_service
service_description BAIE01_RAID
check_command check_dell_equallogic_raid!public!baie01
contact_groups +admin
}
define service {
host_name grpbaies
use generic_servicen
service_description BAIE01_Temperature
check_command check_dell_equallogic_temperature!public!baie01
contact_groups +admin
}
define service {
host_name grpbaies
use generic_service
service_description BAIE01_volume01
check_command check_dell_equallogic_volume!public!baie01!volume01!80!90
contact_groups +admin
}
define service {
host_name grpbaies
use generic_service
service_description BAIE01_volume02
check_command check_dell_equallogic_volume!public!baie01!volume02!80!90
contact_groups +admin
}
- Rechargez la configuration de Nagios : service nagios reload
Vos baies de stockage Dell EqualLogic peuvent être maintenant supervisé à l’aide de Nagios.
Superviser la consommation des serveurs VMware ESX(i) avec Nagios
Dans un article précédent, je vous présentais une solution pour superviser un serveur VMware ESX(i). Elle reposait sur l’utilisation du plugin Nagios check_esx3.pl de la société OP5.
A l’aide du client vSphere, il est possible d’obtenir la consommation d’un serveur VMware ESX(i) (test effectué avec un serveur Dell PowerEdge R710).
Cette donnée de performance ne pouvait pas être mesurer avec le plugin Nagios check_esx3.pl. J’ai donc décidé d’implémenter cette fonctionnalité.
- Placez-vous dans le répertoire suivant : cd /usr/local/src/
- Téléchargez le plugin Nagios : wget "http://git.op5.org/git/?p=nagios/op5plugins.git;a=blob_plain;f=check_esx3.pl" -O check_esx3.pl
- Téléchargez le patch pour prendre en compte la consommation des serveurs VMWare ESX(i) : wget http://www.be-root.com/downloads/nagios/check_esx3/0001-check_esx3.pl-Added-power-consumption.patch
- Appliquez le patch sur le plugin check_esx3.pl : patch < 0001-check_esx3.pl-Added-power-consumption.patch
Ce patch a été récemment soumis à la liste de diffusion des utilisateurs OP5 pour intégrer le plugin check_esx3.pl. Je n’ai pas encore eu de réponse pour le moment.
- Copiez ce script dans le répertoire contenant les plugins Nagios : cp check_esx3.pl /usr/local/nagios/libexec/
- Rendez le script exécutable : chmod +x /usr/local/nagios/libexec/check_esx3.pl
– Modifiez le propriétaire pour ce script : chown nagios:nagios /usr/local/nagios/libexec/check_esx3.pl
- Vérifiez la consommation d’un serveur VMware ESX(i) : /usr/local/nagios/libexec/check_esx3.pl -H xxx.xxx.xxx.xxx -u supervision -p MotDePasse -l power -w 500 -c 600
CHECK_ESX3.PL OK - power=216.22 Watts | power=216.22W;500;600
- Ajoutez la définition de l’objet command : vi /etc/nagios/objects/commands.cfg
define command {
command_name check_esx_power
command_line $USER1$/check_esx3.pl -H $HOSTADDRESS$ -u $USER2$ -p $USER3$ -l power -w $ARG1$ -c $ARG2$
}
- Ajoutez la définition de l’objet host pour le serveur : vi /etc/nagios/objects/hosts.cfg
define host {
host_name server01
use generic_host
alias VMware ESXi
address xxx.xxx.xxx.xxx
contact_groups +admin
}
- Ajoutez la définition de l’objet service pour le serveur : vi /etc/nagios/objects/services.cfg
define service {
host_name server01
use generic_service
service_description Puissance
check_command check_esx_power!917!966
contact_groups +admin
}
- Rechargez la configuration de Nagios : service nagios reload
La configuration de Nagios dépend bien entendu de la structure que vous avez adopté.
Supervision de VMware ESX(i) avec Nagios
Pour superviser le serveur VMware ESX(i), nous allons utiliser le plugin Nagios check_esx3.pl de la société OP5. En pré-requis à son utilisation, il est nécessaire d’installer VMware vSphere SDK for PERL et le module PERL Nagios::Plugin sur le serveur de supervision.

Nous installerons VMware vSphere SDK for PERL dans le répertoire /opt/vmware-vsphere-perl-sdk/.
- Depuis le serveur de supervision, créez le répertoire suivant : mkdir /opt/vmware-vsphere-perl-sdk/
Depuis le site de VMware vous devez télécharger VMware vSphere SDK for Perl. Le téléchargement de ce composant nécessite un compte VMware.
- Installez la bibliothèque de développement d’OpenSSL : yum install openssl-devel
- Placez-vous dans le répertoire suivant : cd /usr/local/src/
- Décompressez l’archive : tar -xzvf VMware-vSphere-Perl-SDK-4.1.0-254719.x86_64.tar.gz
- Placez-vous dans le répertoire suivant : cd vmware-vsphere-cli-distrib
- Lancez l’installation de VMware vSphere SDK for Perl : ./vmware-install.pl
Avant de procéder à l’installation, vous devez accepter la licence d’utilisation.
Indiquez l’emplacement des fichiers exécutables (/opt/vmware-vsphere-perl-sdk/bin/).
Pour désinstaller VMware vSphere SDK for Perl, il vous suffira de lancer la commande suivante : /opt/vmware-vsphere-perl-sdk/bin/vmware-uninstall-vSphere-CLI.pl.
Nous allons installer le module PERL Nagios::Plugin.
- perl -MCPAN -e ‘shell’
cpan > install Nagios::Plugin
cpan > quit
Ensuite, nous allons récupérer le plugin Nagios check_esx3.pl depuis le site d’OP5.
- Placez-vous dans le répertoire suivant : cd /usr/local/src/
- Téléchargez le plugin Nagios : wget "http://git.op5.org/git/?p=nagios/op5plugins.git;a=blob_plain;f=check_esx3.pl" -O check_esx3.pl
- Copiez ce script dans le répertoire contenant les plugins Nagios : cp check_esx3.pl /usr/local/nagios/libexec/
- Rendez le script exécutable : chmod +x /usr/local/nagios/libexec/check_esx3.pl
– Modifiez le propriétaire pour ce script : chown nagios:nagios /usr/local/nagios/libexec/check_esx3.pl
Le plugin Nagios check_esx3.pl récupère les informations d’un serveur VMware ESX(i) en s’y connectant à l’aide d’un compte utilisateur. Nous allons créer un compte utilisateur supervision possédant les droits de lecture.
Connectez-vous au serveur VMware ESX(i) avec le client VMware vSphere.
Dans l’onglet Local Users & Groups, cliquez sur l’option Add du menu surgissant pour créer un nouvel utilisateur supervision avec un mot de passe associé.
Dans l’onglet Permissions, cliquez sur l’option Add Permission…. Dans la partie Users and Groups, cliquez sur le bouton Add pour ajouter l’utilisation supervision. Dans la partie Assigned Role, sélectionnez le rôle Read-only pour cet utilisateur.
L’installation est terminée. Voici quelques exemple d’utilisation du plugin Nagios check_esx3.pl.
- Placez-vous dans le répertoire suivant : cd /usr/local/nagios/libexec/
- Vérifiez l’utilisation du CPU de l’hyperviseur en pourcentage : ./check_esx3.pl -H xxx.xxx.xxx.xxx -u supervision -p MotDePasse -l cpu -s usage -w 80 -c 90
CHECK_ESX3.PL OK - cpu usage=1.24 % | cpu_usage=1.24%;80;90
- Vérifiez l’utilisation de la mémoire vive de l’hyperviseur en Mo : ./check_esx3.pl -H xxx.xxx.xxx.xxx -u supervision -p MotDePasse -l mem -s usagemb -w 14336 -c 16384
CHECK_ESX3.PL OK - mem usage=6022.40 MB | mem_usagemb=6022.40MB;14336;16384
- Vérifiez l’état de l’hyperviseur : ./check_esx3.pl -H xxx.xxx.xxx.xxx -u supervision -p MotDePasse -l runtime -s status
CHECK_ESX3.PL OK - overall status=green
- Vérifiez que toutes les cartes réseaux de l’hyperviseur sont connectées : ./check_esx3.pl -H xxx.xxx.xxx.xxx -u supervision -p MotDePasse -l net -s nic
CHECK_ESX3.PL OK - All 8 NICs are connected | OK_NICs=8;; Bad_NICs=0;;
Pour obtenir de l’aide sur ce plugin Nagios, il vous suffit de lancer la commande suivante : ./check_esx3.pl -h
Cette partie dépend de votre arborescence de configuration et de votre installation de Nagios. Nous allons modifier la configuration de Nagios pour superviser un serveur VMware ESX(i).
- Ajoutez deux nouvelles variables : vi /etc/nagios/resource.cfg
$USER2$=supervision $USER3$=MotDePasse
Les variables USER2 et USER3 correspondent aux identifiants de l’utilisateur possédant les droits de lecture sur le serveur VMware ESX(i).
- Ajoutez les définitions des objets command : vi /etc/nagios/objects/commands.cfg
define command {
command_name check_esx_cpu
command_line $USER1$/check_esx3.pl -H $HOSTADDRESS$ -u $USER2$ -p $USER3$ -l cpu -s usage -w $ARG1$ -c $ARG2$
}
define command {
command_name check_esx_memory
command_line $USER1$/check_esx3.pl -H $HOSTADDRESS$ -u $USER2$ -p $USER3$ -l mem -s usagemb -w $ARG1$ -c $ARG2$
}
define command {
command_name check_esx_swap
command_line $USER1$/check_esx3.pl -H $HOSTADDRESS$ -u $USER2$ -p $USER3$ -l mem -s swap -w $ARG1$ -c $ARG2$
}
define command {
command_name check_esx_network
command_line $USER1$/check_esx3.pl -H $HOSTADDRESS$ -u $USER2$ -p $USER3$ -l net -s usage -w $ARG1$ -c $ARG2$
}
define command {
command_name check_esx_disk_io_read
command_line $USER1$/check_esx3.pl -H $HOSTADDRESS$ -u $USER2$ -p $USER3$ -l io -s read -w $ARG1$ -c $ARG2$
}
define command {
command_name check_esx_disk_io_write
command_line $USER1$/check_esx3.pl -H $HOSTADDRESS$ -u $USER2$ -p $USER3$ -l io -s write -w $ARG1$ -c $ARG2$
}
define command {
command_name check_esx_nic
command_line $USER1$/check_esx3.pl -H $HOSTADDRESS$ -u $USER2$ -p $USER3$ -l net -s nic
}
define command {
command_name check_esx_service
command_line $USER1$/check_esx3.pl -H $HOSTADDRESS$ -u $USER2$ -p $USER3$ -l service -s $ARG1$
}
- Ajoutez la définition de l’objet host pour le serveur : vi /etc/nagios/objects/hosts.cfg
define host {
host_name server01
use generic_host
alias VMware ESXi
address xxx.xxx.xxx.xxx
contact_groups +admin
}
- Ajoutez la définition des objets service pour le serveur : vi /etc/nagios/objects/services.cfg
define service {
host_name server01
use generic_service
service_description CPU
check_command check_esx_cpu!80!90
contact_groups +admin
}
define service {
host_name server01
use generic_service
service_description Memoire
check_command check_esx_memory!14336!16384
contact_groups +admin
}
define service {
host_name server01
use generic_service
service_description Trafic_Reseau
check_command check_esx_network!5120!102400
contact_groups +admin
}
define service {
host_name server01
use generic_service
service_description Disque_IO_Lecture
check_command check_esx_disk_io_read!50!90
contact_groups +admin
}
define service {
host_name server01
use generic_service
service_description Disque_IO_Ecriture
check_command check_esx_disk_io_write!50!90
contact_groups +admin
}
define service {
host_name server01
use generic_service
service_description Interfaces_Reseaux
check_command check_esx_nic
contact_groups +admin
}
define service {
host_name server01
use generic_service
service_description Services
check_command check_esx_service!DCUI,lbtd,ntpd,vmware-vpxa
contact_groups +admin
}
- Rechargez la configuration de Nagios : service nagios reload
Votre serveur VMWare ESX(i) est maintenant supervisé depuis Nagios.















