Vous êtes ici:

Menu


Stacks Image 16138
Les plugins OS correspondent à la supervision des systèmes d'exploitation. Nouveauté par rapport à la version béta 1.0, Certains modules peuvent s'exécuter en mode local et le reste en mode distant avec les protocoles SMNP et SSH. La vitesse d'exécution du plugin est bien plus performant en mode local comme nous aurons l'occasion de le constater. Pour l'utilisation en mode SNMP, le plugin aura donc besoin des modules du dossier snmp_standard. L'option remote permet d'utiliser le protocole SSH pour exécuter les commandes de vérifications sur un hôte distant. Actuellement, les plugins OS se sont enrichis de plusieurs plugins de système d'exploitation : Aix, FreeBsd, Linux, Solaris et Windows.
Voici les principales fonctionnalités pour Linux. Nous verrons ensuite la configuration du plugin dans Centreon, nous utiliserons le protocole SNMP v2c pour l'instant. Par convention, le dossier des plugins Centreon est positionné dans /usr/lib/centreon/plugins.

1 Les plugins os::linux::xxxxxxx::plugin

Stacks Image 16157
Différentes façons d'utiliser le module

1.1 Le plugin os::linux::local::plugin

Voici une liste d’exemples des nouveaux plugins centreon.
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=os::linux::local::plugin --list-mode

....
Modes Available:
cmd-return
connections
cpu
cpu-detailed
directlvm-usage
diskio
files-date
files-size
inodes
list-interfaces
list-partitions
list-storages
load
memory
packet-errors
paging
process
quota
storage
swap
systemd-sc-status
traffic
uptime
Le mode cmd-return mérite que l'on s'y attarde. Cette commande permet de réaliser des tests en shell. Par exemple, tester la présence d'un fichier ou d'un dossier sur un serveur. On pourra paramétré le message de sortie de la sonde avec une syntaxe que l'on nous allons découvrir ci-dessous. Nous allons débuter par un test de présence d'un dossier. La syntaxe sera la suivante :
Vous trouverez un exemple de configuration avec ce lien.
 

1.1a Mode cmd-return

Le mode cmd-return mérite que l'on s'y attarde. Cette commande permet de réaliser des tests en shell. Par exemple, tester la présence d'un fichier ou d'un dossier sur un serveur. On pourra paramétré le message de sortie de la sonde avec une syntaxe que l'on nous allons découvrir ci-dessous. Nous allons débuter par un test de présence d'un dossier. La syntaxe sera la suivante :
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=os::linux::local::plugin --mode=cmd-return --command=[commande shell] --command-options=[expression de test] --manage-returns='0,OK,Test réussi#1,CRITICAL,Test non réussi#,UNKNOWN,Erreur dans le test'

Tester la présence d'un fichier sur un système Linux

Nous utiliserons comme commande de test, la commande shell test et comme expression '-d /var/log/centreon' qui va tester la présence du dossier /var/log/centreon. Voici la commande exacte et son résultat :
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=os::linux::local::plugin --mode=cmd-return --command=test --command-options='-d /var/log/centreon' --manage-returns='0,OK,Directory /var/log/centreon exist#1,CRITICAL,Directory /var/log/centreon no exist#,UNKNOWN,Command problem'
OK: Directory /var/log/centreon exist | 'code'=0;;;;
Pour tester la présence d'un fichier, on utilisera la commande suivante :
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=os::linux::local::plugin --mode=cmd-return --command=test --command-options='-e /root/essai' --manage-returns='0,OK,File /root/essai exist#1,CRITICAL,File /root/essai no exist#,UNKNOWN,Command problem'
CRITICAL: File /root/essai no exist | 'code'=1;;;;
Il est possible de lancer la commande sur un serveur distant grâce à l'option remote. Nous établirons une connexion shh entre le serveur de supervision et le serveur distant. Nous allons prendre la cas d'un test de présence de fichier sur un serveur Linux distant. Comme le moteur de supervision utilise le user centreon-engine, nous allons établir une connexion sécurisée entre les deux serveurs avec le même user. Créez le user centreon-engine au besoin sur le serveur distant. Copier la clé ssh sur celui-ci afin de permettre une connexion ssh sans mot de passe. Il suffira maintenant de lancer cette commande pour exécuter la commande à distance.
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=os::linux::local::plugin --mode=cmd-return --command=test --command-options='-e /var/log/centreon-engine/essai' --manage-returns='0,OK,File /var/log/centreon-engine/essai exist#1,CRITICAL,File /var/log/centreon-engine/essai no exist#,UNKNOWN,Command problem' --remote --hostname=172.16.209.232 --ssh-option='-l=centreon-engine'
OK: File /var/log/centreon-engine/essai exist | 'code'=0;;;;

Tester la présence d'un fichier sur un serveur Web

On peut aussi tester la présence d'un fichier sur une page Web avec curl. Cette méthode évite le téléchargement du fichier comme le ferait la commande wget. Voici la commande pour vérifier si un fichier est disponible sur une page Web.
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=os::linux::local::plugin --mode=cmd-return --command=curl --command-options='-sfI "http://localhost/test/fichier.mp3"' --manage-returns='0,OK,File exist#22,CRITICAL,File no exist#,UNKNOWN,Command problem'

Présence du fichier
OK: File exist | 'code'=0;;;;

Fichier inexistant
CRITICAL: File no exist | 'code'=22;;;;
Vous avez remarqué que le code de sortie pour l'état CRITICAL n'est pas à 1 mais 22. Le réglage a été possible grâce à la vérification du code de sortie en utilisant la commande suivante après l'exécution de la commande curl.
curl -sfI "http://localhost/test/fichier_manquant.mp3"
# echo $?
22

1.2 Le plugin os::linux::local::plugin avec l’option remote

L'option remote nous permettra d'utiliser le mode local pour superviser un hôte Linux distant grâce au protocole ssh. Nous aurons besoins d'une clé publique et d'une session utilisateur sur l'hôte distant. La syntaxe des commandes sera identique au mode local, nous devrons rajouter les options pour la connexion SSH comme ci-dessous :
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=os::linux::local::plugin --remote --hostname=[IP host linux] --ssh-option='-l=[user ssh]'  --mode=[uptime|swap|memory|....]
Pour ajouter d'autres options pour une configuration ssh particulière, ajouter autant de paramètre ssh-option que vous avez de paramètres à ajouter. Voici un exemple :
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=os::linux::local::plugin --mode=cpu --remote --ssh-option="-l=nagios" --ssh-option='-p=2203' --ssh-option='-o=UserKnownHostsFile=/dev/null' --ssh-option='-o=StrictHostKeyChecking no' --ssh-option='-o=ConnectTimeout 240' --ssh-option='-q' --ssh-option='-E=/dev/null' --hostname=xxx.xxx.xxx.xxx --warning=70 --critical=80
Vous trouverez un exemple de configuration avec ce lien.

1.3 Le plugin os::linux::snmp::plugin

Le plugin os::linux::snmp::plugin sera pratiquement identique au plugin os::linux::local::plugin. La différence vient du fait que nous utiliserons le protocole SNMP pour communiquer avec des machines distantes. Quelques modes de supervision ne sont plus accessibles comme files-size, files-date, list-partitions, cmd-return. D'autres sont modifiés comme process devenu processcount et d'autres sont ajoutés comme list-diskpath
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=os::linux::snmp::plugin --list-mode

....
Modes Available:
cpu
cpu-detailed
disk-usage
diskio
inodes
interfaces
list-diskspath
list-interfaces
list-storages
load
memory
processcount
storage
swap
tcpcon
time
uptime
Les paramètres requis pour le SNMP V2c seront --snmp-version pour le numéro de version (2 en l'occurrence) et --snmp-community pour le nom de la communauté.
Vous trouverez un exemple de configuration avec ce lien.
comments powered by Disqus
Extrait des nombreux modules de centreon_plugins
 Vous êtes ici: