Déterminer le type de sondes qui vous convient

De Overmon Wiki
Aller à : Navigation, rechercher

Introduction[modifier]

Si vous êtes arrivés jusqu'à cet article, c'est probablement que vous êtes à un stade crucial de votre projet de supervision : comment déterminer le type de sondes qui vous convient ?

En effet, quelque soit le type de machine, il existe plusieurs moyens d'en obtenir les informations souhaités. Chacune des méthodes utilisée possède certains avantages et certains inconvénients.

Cet article a pour but de vous aider à vous y retrouver. En vous donnant les informations nécessaires pour que vous puissiez choisir en conscience.

A contrario, cet article ne détaillera pas les méthodes d'installation et de paramétrage des différentes sondes. Car dans la plupart des cas, ces différentes méthodes sont masquées par l'utilisation de notre solution.

C'est justement l'un des apports majeurs de Overmon, que de permettre le déploiement de ces différentes types de sondes, sans en maitriser tous les aspects techniques en détail

Les différents types de sondes[modifier]

Les sondes nécessitant un agent[modifier]

Les sondes executées via un agent sont les plus riches, les plus modulaires. Elles sont à utiliser dans tous les cas ou cela est possible/autorisé.

NRPE[modifier]

Nrpe.png

NRPE (Nagios Remote Plugin Executor) est probablement le type de sondes le plus utilisé aujourd'hui. Il permet d'exécuter des commandes sur des machines distantes, sous réserve qu'un agent soit installé au préalable.

Ce type de sondes est utilisé dans le cadre d'une supervision active. 

On parle de supervision active lorsque c'est le serveur Nagios qui prend l'initiative de l'interrogation de l'équipement distant.

Ses principaux atous sont :

  • embarque un certain nombre de plugins prêts à l'emploi
  • disponible sur tout type de plateforme
  • possibilité d'y ajouter n'importe quel plugin spécifique
  • sécurité des échanges entre le serveur Nagios et la machine distante, via SSL
  • optimisation de la charge, côté Nagios
  • compatible avec les modules "Plugins" et "Développer" de l'OAT

Son usage est relativement simple. A partir du moment ou le démon tourne, côté machine distante, il vous suffit de lancer la commande check_nrpe depuis le serveur nagios (OVS dans notre cas) avec certains paramètres pour obtenir des résultats. 

Voici quelques exemples d'interrogations :

  • Obtenir la charge sur la machine distante
./check_nrpe -H sample-linux -c check_load
OK - Charge moyenne: 0.00, 0.01, 0.05|load1=0.000;15.000;30.000;0; load5=0.010;10.000;25.000;0; load15=0.050;5.000;20.000;0;
  • Obtenir la version du démon NRPE installé
./check_nrpe -H sample-linux
NRPE v2.12
  • Obtenir des infos sur l'espace disponible
./check_nrpe -H sample-linux -c check_disk -a 30% 20% /dev/sda1
DISK OK - free space: / 3136 MB (57% inode=91%);|/=2308MB;4015;4588;0;5736

NSCA[modifier]

Nsca.png

Il n'est pas toujours possible d'interroger certaines machines distantes. Que ce soit lié à des contraintes géographiques ou de sécurité, il est parfois nécessaire d'introduire dans son systèmes des processus de supervision dites "passives".

Contrairement au chapitre précédent, c'est la machine distante qui prend l'initiative d'effectuer un certain nombre d'interrogations locale, puis de les envoyer vers le serveur hébergeant Nagios.


Dans ce cas, un script externe prend en charge le contrôle d'un service donné, et le soumet à Nagios via un fichier de commande externe. A ce moment, le démon NSCA (du côté de l'OVS) se contente de lire ce fichier de commande externe, interprète les résultats, et les assignent aux services correspondants.

Avantage : on le voit bien. Avec la supervision passive, il est possible de gérer un parc très important de machines étant donné que la charge, côté Nagios, est réduite à son strict minimum.

Inconvénient : La machine distante doit disposer de tous les éléments nécessaires pour pouvoir envoyer ses résultats à l'OVS. De ce fait, il est possible, dans certains contextes, que l'installation de l'agent doivent de faire manuellement

NSCLIENT[modifier]

Nsclient.png

NSClient est l'implémentation des protocole NRPE et NSCA pour les machines Windows

A dire vrai, NSClient est même capable de faire bien plus, mais l'ensemble de ses fonctionnalités dépasse le cadre simple de l'usage que nous en faisons chez Overmon.

Pour une information complète sur ce produit, nous vous invitons à vous rendre sur le site officiel

Les sondes ne nécessitant pas d'agent[modifier]

Plusieurs raisons peuvent empêcher l'utilisation d'un agent dans le cadre de la supervision d'un équipement :

  • utilisation contraire à la politique de sécurité de l'entreprise
  • équipement passif (imprimante, switch, routeur, ...) 

Fort heureusement, il est tout à fait possible de les superviser néanmoins.

REMOTE SSH[modifier]

Remote-ssh.jpg

Ce premier mode de supervision sans agent est le mode remote ssh. 

Comme son nom l'indique, il s'agit de capitaliser sur le fait que ssh soit installé sur la machine distante.

Les plugins résident sur le serveur Nagios. Au moment souhaité, un socket ssh est ouvert vert la machine distante. Et, à travers un pipe ouvert pour l'occasion, le plugin est copié à la volée vers la machine distante, puis exécuté. Les codes retours et statuts du check sont alors rapatriés vers l'OVS via ce même pipe.

Outre le fait que ce mode d'interrogation soit agentless, il est tout à fait possible d'étendre son champ d'application à des domaines très spécifiques.

Par contre, il faut avoir conscience que cette méthode est loin d'être optimale, dans la mesure ou l'OVS doit, lorsqu'on utilise ce mode, s'occuper non seulement de l'initialisation de la connection, mais également de la partie controle/copie du scripts à exécuter en remote.

Ce mode remote-ssh doit, en conséquence, n'être utilisé que lorsque les autres modes sont impossible à mettre en oeuvre, et sur un parc restreint.


WMI[modifier]

Wmi.png

WMI est l'acronyme de Windows Management Instrumentation. Vous l'aurez compris, l'usage de ce type de sondes est donc clairement restreint à l'écosystème Microsoft.

Non seulement, là encore, ce type de sonde est agentless, mais surtout, il donne accès au référentiel WMI de la machine, qui est particulièrement riche. Qui plus est, sur les OS récents de Microsoft, le stack WMI est présent par défaut.

Son mode d'accès s'apparente à du requetage SQL.

Voici quelques exemples :

// état des services Windows (Running / Stopped)
SELECT State FROM Win32_Service

// mémoire disponible
SELECT AvailableBytes FROM Win32_PerfRawData_PerfOS_Memory

// mémoire physique du serveur
SELECT Capacity FROM Win32_PhysicalMemory

// espace disque disponible sur tous les disques (media type = 12 pour ne sélectionner que les partitions provenant de disques dur)
SELECT FreeSpace, Size FROM Win32_LogicalDisk WHERE MediaType = '12'

// charge en pourcentage de chaque processeur
SELECT LoadPercentage FROM Win32_Processor

// mémoire utilisé par un processus donné
SELECT WorkingSet FROM Win32_PerfRawData_PerfProc_Process where Name = 'sqlservr'

SNMP[modifier]

Snmp.png

Pour certains équipement passifs tels que :

  • Imprimantes
  • Routeurs
  • Switchs
  • etc ...

La question ne se pose pas : il est impossible d'installer quoi que ce soit sur ce genre d'équipements.

Heureusement, et pour une fois, les constructeurs propose tous la même méthode d'interaction avec l'utilisateur : le snmp

SNMP est l'acronyme de Simple Network Management Protocol

Il est à noter que ce type de supervision peut être active OU passive.

En effet, il est possible de demander à Nagios d'interroger une machine distante via SNMP, comme il est possible de demander à l'équipement passif lui même d'envoyer des trames SNMP spécifiques en cas d'erreur, vers l'OVS.

Dans ce dernier cas, l'utilisation des event handler sera facilité par l'usage de Centreon, inclu dans l'OVS

Tableau de choix[modifier]

Ce tableau vous présente, de manière synthétique, les choix auquels vous serez confrontés, lors de vos déploiement de sondes Nagios

Les différents choix proposés peuvent être remise en cause dans votre contexte, par des éléments extérieurs que je ne maitrise pas, n'en ayant pas connaissance

Notez enfin que dans la plupart des cas, vous serez amenés à faire cohabiter plusieurs types de sondes, n'étant pas soumis aux mêmes contraintes pour chacunes de vos machines.

Le fait d'utiliser plusieurs types de sondes différents ne pose aucun problème

Contexte
Type de sonde à privilégier Restrictions
Windows Linux / Unix
Je n'ai aucune contrainte particulière NSClient (mode NRPE) NRPE Aucune

Je suis soumis aux contraintes suivantes :

  • L'équipement est de type Windows
  • l'OVS ne peut joindre l'équipement distant. Par contre, l'équipement peut joindre l'OVS
NSClient (mode NSCA)

Aucune

Je suis soumis aux contraintes suivantes :

  • L'équipement est de type Windows
  • Interdiction d'installer des agents sur l'équipement à superviser
WMI

Impossible de superviser du spécifique, hors référentiel WMI

Je suis soumis aux contraintes suivantes :

  • L'équipement est de type Windows
  • l'OVS ne peut joindre l'équipement distant. Par contre, l'équipement peut joindre l'OVS
  • Interdiction d'installer des agents sur l'équipement à superviser
SNMP (mode passif)

Impossible de superviser du spécifique, hors référentiel SNMP

Je suis soumis aux contraintes suivantes :

  • L'équipement est de type Windows
  • Interdiction d'installer des agents sur l'équipement à superviser
  • WMI n'est pas disponible sur l'équipement à superviser
SNMP (mode actif)

Impossible de superviser du spécifique, hors référentiel SNMP

Je suis soumis aux contraintes suivantes :

  • L'équipement est de type Windows
  • Interdiction d'installer des agents sur l'équipement à superviser
  • WMI n'est pas disponible sur l'équipement à superviser
  • l'OVS ne peut joindre l'équipement distant.
  • l'équipement ne peut joindre l'OVS
Impasse.gif


Vous allez devoir rendre votre équipement plus ... communicant 

... ;o)

Je suis soumis aux contraintes suivantes :

  • L'équipement est de type Linux/Unix
  • l'OVS ne peut joindre l'équipement distant. Par contre, l'équipement peut joindre l'OVS

NSCA Aucune

Je suis soumis aux contraintes suivantes :

  • L'équipement est de type Linux/Unix
  • Interdiction d'installer des agents sur l'équipement à superviser

Remote SSH Aucune

Je suis soumis aux contraintes suivantes :

  • L'équipement est de type Linux/Unix
  • l'OVS ne peut joindre l'équipement distant. Par contre, l'équipement peut joindre l'OVS
  • Interdiction d'installer des agents sur l'équipement à superviser

SNMP (mode passif) Impossible de superviser du spécifique, hors référentiel SNMP

Je suis soumis aux contraintes suivantes :

  • L'équipement est de type Linux/Unix
  • Interdiction d'installer des agents sur l'équipement à superviser
  • SSH n'est pas disponible sur l'équipement à superviser

SNMP (mode actif) Impossible de superviser du spécifique, hors référentiel SNMP

Je suis soumis aux contraintes suivantes :

  • L'équipement est de type Linux/Unix
  • Interdiction d'installer des agents sur l'équipement à superviser
  • SSH n'est pas disponible sur l'équipement à superviser
  • l'OVS ne peut joindre l'équipement distant.
  • l'équipement ne peut joindre l'OVS

Impasse.gif

Vous allez devoir rendre votre équipement plus ... communicant 

... ;o)