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 nombreux plugins de système d'exploitation : Aix, FreeBsd, Linux, Solaris, Windows, etc...
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.
J'ai repris mon tuto en utilisant les plugins Centreon FatPacked. Cela n'empêche pas d'utiliser les plugins du Github, j'ajouterai un encart pour chaque plugin.

1 Les plugins Linux

Il existe deux plugins :
- centreon_linux_local.pl qui fonctionnera en local sur la machine et à distance via le protocole ssh avec l'option remote
- centreon_linux_snmp.pl qui fonctionnera avec le protocole SNMP pour interroger une machine distante
Stacks Image 46969
Utilisation du plugin GitHub
Pour avoir les mêmes fonctionnalités que le plugin FatPacked
centreon_linux_local.pl => centreon_plugins.pl --plugin=os::linux::local::plugin
centreon_linux_snmp.pl => centreon_plugins.pl --plugin=os::linux::snmp::plugin
Stacks Image 16157
Différentes façons d'utiliser le module

1.1 Le plugin centreon_linux_local.pl

Voici la liste des modes de ce plugin
/usr/lib/centreon/plugins/centreon_linux_local.pl --list-mode

....
Modes Available:
cmd-return
connections
cpu
cpu-detailed
directlvm-usage
discovery-nmap
discovery-snmp
diskio
files-date
files-size
inodes
list-interfaces
list-partitions
list-storages
load
memory
mountpoint
ntp
open-files
packet-errors
paging
pending-updates
process
quota
storage
swap
systemd-sc-status
traffic
uptime
Voici la liste des modes en détail
Vous trouverez un exemple de configuration avec ce plugin dans la page suivante Configuration du module centreon_linux_local.pl
 

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_linux_local.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_linux_local.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_linux_local.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_linux_local.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_linux_local.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 centreon_linux_local 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_linux_local.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_linux_local.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

1.3 Le plugin centreon_linux_snmp.pl

Le plugin centreon_linux_snmp.pl sera en partie identique au plugin centreon_linux_local.pl. 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_linux_snmp.pl --plugin=os::linux::snmp::plugin --list-mode

....
Modes Available:
arp
cpu
cpu-detailed
disk-usage
diskio
inodes
interfaces
list-diskspath
list-interfaces
list-processes
list-storages
load
memory
processcount
storage
swap
tcpcon
time
udpcon
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.
Extrait des nombreux modules de centreon_plugins
 Vous êtes ici:

Nous utilisons des cookies pour nous permettre de mieux comprendre comment le site est utilisé. En continuant à utiliser ce site, vous acceptez cette politique.