Supervision avancée
Supervision d’un serveur Windows
Comme nous avons vu dans le chapitre précédent, Nagios peut utiliser le protocole SNMP pour contrôler un hôte Windows. Cette méthode qui est basée sur l’agent SNMP vous permet de vérifier l’état de plusieurs paramètres tel que la charge du système, le nombre de processus, le nombre d’utilisateurs connectés, etc. Toutefois, il y a d’autres paramètres que Nagios ne peut pas contrôler en utilisant SNMP ou en utilisant ses plugins génériques. Ces paramètres nécessitent parfois l’exécution de scripts sur la machine elle-même pour collecter les informations. Cette fonctionnalité est indisponible avec le protocole SNMP.
Nagios possède une alternative au protocole SNMP pour contrôler une machine Windows. Cette alternative consiste à installer un agent dédié pour les hôtes Windows qui est nommé NSClient++ (http://www.nsclient.org/).
1. Installation de NSClient++
NSClient++ est un démon de surveillance puissant, flexible et simple dédié pour contrôler les machines Windows de toutes les versions (2003, XP, Vista, Server 2008, Server 2012). Il a été construit pour être utilisé avec un outil de supervision comme Nagios mais il peut être utilisé aussi avec de nombreux autres scénarios où vous souhaitez recevoir des métriques de performance. Il est disponible avec les deux versions 64 bits et 32 bits et il offre plusieurs fonctionnalité essentiellement :
-
Le contrôle à distance
NSClient permet à une machine de surveillance distante d’exécuter à la demande des commandes sur la machine contrôlée pour vérifier son état ou l’état de son service.
-
Le contrôle en temps réel
NSClient permet de surveiller les systèmes et de soumettre les résultats de contrôles à un serveur de surveillance centrale.
-
La résolution des problèmes
NSClient vous permet d’effectuer des actions à distance sur les hôtes en se basant sur des mesures de surveillance à partir d’un serveur central pour résoudre des problèmes.
NSClient++ est conçu pour être ouvert et extensible...
Supervision VMware
Aujourd’hui, la virtualisation est l’une des technologies les plus utilisées dans les entreprises pour gérer les infrastructures IT. En installant un hyperviseur sur un seul serveur physique, vous pouvez faire tourner simultanément plusieurs machines virtuelles avec différents systèmes d’exploitation. Cette technologie permet à l’entreprise d’utiliser le parc de serveurs de manière plus optimale et plus flexible. En effet, la virtualisation permet de faire évoluer votre environnement en utilisant la capacité maximale d’un parc de serveurs. Pour un administrateur, héberger une nouvelle application sur une machine virtuelle est mieux qu’investir dans un nouveau serveur physique. Avec la virtualisation, vous pouvez vous échapper de la dépendance vis-à-vis du matériel tout en garantissant l’environnement nécessaire pour la haute disponibilité.
Il existe des technologies multiples libres et commerciales pour passer vers la virtualisation des serveurs physiques. VMware (www.vmware.com) est l’un des leaders sur le marché de la virtualisation. Pour cette raison, il existe plusieurs solutions et outils pour superviser et contrôler les composants logiciels d’une infrastructure basée sur la technologie VMware. Nagios est l’un des outils pertinents à la surveillance de VMware. Dans cette partie, nous allons présenter les méthodes nécessaires pour intégrer la surveillance de l’hyperviseur VMware ESXi et d’une machine virtuelle dans un environnement Nagios.
Il existe plusieurs plugins pour contrôler VMware ESX, ESXi, vSphere et le serveur vCenter et des machines virtuelles individuelles avec Nagios, mais il est vivement recommandé d’utiliser le plugin check_vmware_api.pl développé par l’entreprise OP5 et qui est disponible en version open source.
1. Installation VMware SDK
Avant de configurer Nagios pour utiliser le plugin check_vmware_api.pl, il nous faut installer vSphere SDK for Perl de VMware sur le serveur Nagios. Le binaire vSphere SDK for Perl de VMware est disponible sur le site web officiel https://developercenter.vmware.com/web/sdk/55/vsphere-perl. Il vous faudra un compte chez VMware pour récupérer ce SDK. Téléchargez...
Supervision des équipements réseau
Le seul moyen pour contrôler activement n’importe quel équipement réseau est le protocole SNMP. Dans le chapitre Supervision avec SNMP - Installation et configuration de l’agent SNMP nous avons vu comment configurer un agent SNMP sur un switch Cisco. Il ne reste que la configuration de Nagios pour contrôler cet équipement. Plusieurs plugins existent pour contrôler un équipement réseau, à savoir check_snmp, check_ifoperstatus, check_ifstatus et check_mrtgtraf.
Dans cette partie, nous souhaitons configurer Nagios pour vérifier les informations suivantes :
-
l’état d’un port réseau (UP ou Down) ;
-
l’utilisation de bande passante d’une interface réseau.
1. Contrôle l’état d’un port réseau
Pour contrôler l’état d’un port, nous pouvons utiliser l’un des deux plugins check_ifstatus ou check_ifoperstatus qui sont fournis dans les plugins officiels.
Le plugin check_ifstatus permet de vérifier toutes les interfaces d’un équipement réseau d’un seul coup. L’utilisation de ce plugin est simple, il ne nécessite que l’adresse IP ou le nom DNS de l’hôte et la communauté SNMP configurée sur l’hôte :
./check_ifstatus -C <READ COMMUNITY> -H <HOSTNAME>
Voici un exemple où on utilise le plugin check_ifstatus :
./check_ifstatus -C Nagios@Cisco! -H 192.168.3.254
CRITICAL: host '172.16.3.254', interfaces up: 43, down: 1, dormant: 0, excluded:
0, unused: 0<BR>Voice Over IP Peer: 107: down <BR>
|up=43,down=1,dormant=0,excluded=0,unused=0
La commande retourne un résultat...
Supervision d’un site web
Aujourd’hui, le site web et le serveur qui l’héberge, sont parmi les composantes les plus critiques dans le système d’information de l’entreprise. Si les performances d’un site web sont faibles et si le taux d’indisponibilité est important, cela peut avoir un impact sérieux sur l’image de marque de l’entreprise. La surveillance et les contrôles permanents, proactifs et réactifs des sites Internet par Nagios, permettent non seulement de vous alerter en cas d’une défaillance du système, mais évitent aussi la production d’une panne. En conséquence, vous pouvez atteindre une disponibilité des serveurs 24/24 et du site web 7/7.
La surveillance d’un site web avec Nagios consiste à :
-
contrôler la disponibilité du site web ;
-
contrôler les ressources du système tel que la charge du CPU et l’utilisation de la mémoire du serveur ainsi que l’espace libre du disque dur, etc. ;
-
contrôler le contenu du site web ;
-
contrôler la performance et la disponibilité de la base de données ;
-
contrôler l’état des services comme le service web comme apache2, httpd et nginx, etc. ;
-
contrôler les performances et la vitesse de chargement du site web ;
-
contrôler les mises à jour du CMS (Content Management System) ;
-
contrôler le service DNS.
L’objectif de cette partie est de présenter les services nécessaires pour superviser un site web avec Nagios. Ces services sont définis à partir des commandes définies dans les chapitres précédents. Nous allons prendre le site web exchange.nagios.org comme...
Développement des plugins Nagios
Comme vous le savez, il existe des milliers de plugins publiés par la communauté Nagios surtout sur le site web officiel (https://exchange.nagios.org/). Toutefois, votre besoin de supervision ne peut être totalement couvert, voire pas du tout par ces plugins. Dans cette situation, vous serez obligé de développer votre propre plugin Nagios. Dans cette partie, nous allons présenter les bonnes pratiques et démarches pour développer un plugin Nagios avec différents langages de développement.
1. Les bonnes pratiques
Avant d’entrer dans le vif du sujet, nous allons faire un rappel sur le fonctionnement des plugins. Un plugin ou une sonde est généralement un script exécutable invoqué régulièrement par l’ordonnanceur de supervision comme Nagios pour récupérer l’état d’un élément contrôlé comme le pourcentage d’utilisation de la mémoire ou du CPU. Il peut être développé avec différents langages (Bash, PHP, Perl, C, Python…) qui doivent être supportés sur le serveur sur lequel le plugin est exécuté.
Pour considérer un script ou une sonde exécutable comme un plugin Nagios, il doit avoir au moins deux caractéristiques :
-
Un code de retour :
Le script ou l’exécutable doit toujours renvoyer un code de retour qui permet à Nagios de savoir l’état de l’élément supervisé.
-
Une sortie vers STDOUT :
Le script ou l’exécutable doit toujours retourner un résultat vers STDOUT qui indique plus de détails sur l’élément supervisé comme les données de performances.
Avant de commencer le développement du plugin, il faut bien choisir le langage de développement. Voici quelques éléments à considérer dans votre choix :
-
Le langage doit être supporté par plusieurs systèmes d’exploitation.
-
Le langage doit être interprété, simple et facile à apprendre.
-
Le langage doit être performant et vous permettre de développer aussi bien des fonctions simples que complexes.
-
Le langage doit offrir plusieurs bibliothèques gratuitement....