Nous utiliserons une architecture Centreon standard pour configurer le plugin. Le module Centreon-Clapi sera requis pour notre configuration. En effet, il vous suffira de copier-coller mes commandes pour réaliser la configuration. Cette méthode est vraiment plus efficace que l'utilisation de l'interface graphique.
Dans notre exemple nous verrons la configuration du SNMP V2 et V3.
Dans notre exemple nous verrons la configuration du SNMP V2 et V3.
1 Le module os::linux::snmp::plugin
Notre exemple sera basé sur la supervision de deux hôtes distants sous Linux. Le premier appelé server3 utilisera le protocole SNMP V2, le deuxième appelé weblamp utilisera le protocole SNMP V3. Nous utiliserons les modes load, cpu, memory, swap, storage. Notre configuration sera réalisé avec des templates et les macros personnalisées seront utilisées pour les paramètres.
1.1 Schéma global de la configuration
Voici la configuration de notre serveur de supervision. Afin d'utiliser un nombre minimum de commandes et templates de services, il fallait trouver une solution pour différencier les deux protocoles SNMP sans toucher à la configuration des commandes. Voici ma solution mais il en existe certainement d'autres. Tout d'abord les paramètres pour la configuration du SNMP sur les deux serveurs. Pour la configuration du SNMP V3 avec une distribution Debian, visitez la page sur la configuration SNMP.
Server 3
SNMP communauté : publicWeblamp
user : netadmin authpassphrase : azerty98 algorithme : MD5 privpassphrase : supervision algorithme : DES
1.1a Utilisation de Centreon-clapi, exemples
Pour exemple, nous allons utiliser le mode uptime du module. voici la ligne de commande pour le SNMP V2 :
/usr/local/plugins/libexec/centreon_plugins.pl --plugin=os::linux::snmp::plugin --mode=cpu --warning=70 --critical=90 --host=172.16.209.52 --snmp-version=2 --snmp-community=publicrésultat
OK: CPU(s) average usage is: 1.00% | 'cpu0'=1.00%;;;0;100 'total_cpu_avg'=1.00%;0:70;0:90;0;100
et la ligne de commande pour le SNMP V3 :
/usr/local/plugins/libexec/centreon_plugins.pl --plugin=os::linux::snmp::plugin --mode=cpu --warning=70 --critical=90 --snmp-username=netadmin --authpassphrase=azerty98 --privpassphrase=supervision --authprotocol=MD5 --privprotocol=DES --host=172.16.209.51 --snmp-version=3résultat
OK: CPU(s) average usage is: 1.00% | 'cpu0'=1.00%;;;0;100 'total_cpu_avg'=1.00%;0:70;0:90;0;100
En adaptant la commande check de Centreon avec les macros personnalisées on arrive à optimiser la configuration en une seule ligne de commande comme ci-dessous :
$USER1$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --mode=$_SERVICEMODE$ --warning=$_SERVICEWARNING$ --critical=$_SERVICECRITICAL$ $_HOSTOPTIONV3$ $_SERVICEOPTION$ --host=$HOSTADDRESS$ --snmp-version=$_HOSTSNMPVERSION$ --snmp-community=$_HOSTSNMPCOMMUNITY$
Pour différencier les versions SNMP nous utiliserons la macro d'hôte _HOSTSNMPVERSION. Pour la version 3, la valeur sera appliquée à un template spécifique OS-Linux-snmpV3. Il contiendra aussi les paramètres spécifique au SNMP V3 avec la macro d'hôte _HOSTOPTIONV3. Celui-ci devra être obligatoirement placé en premier dans l'héritage des templates. la macro d'hôte _HOSTSNMPCOMMUNITY servira pour le SNMP V2 et pourra être complété soit dans le template generic-host ou dans le template OS-Linux-snmpV2.
1.2 Préparation des commandes Clapi
Avant de créer notre configuration, vous pouvez améliorer l'utilisation de la commande clapi si ce n'est pas déjà fait.
2 Création de la configuration avec clapi
2.1 Macros Personnalisées
Passons à la configuration de Centreon. Nous commencerons par les macros personnalisées pour réaliser la configuration.
Centreon-Clapi
Création des macros personnalisées avec mon script que vous trouverez ici (nous créons juste les macros utiles pour la suite)
Création des macros personnalisées avec mon script que vous trouverez ici (nous créons juste les macros utiles pour la suite)
./create_macrocustom.sh _SERVICEWARNING 0 Central "Custom Macro"
./create_macrocustom.sh _HOSTOPTIONV3 0 Central "Custom Macro"
./create_macrocustom.sh _SERVICECRITICAL 0 Central "Custom Macro"
./create_macrocustom.sh _SERVICEMODE 0 Central "Custom Macro"
./create_macrocustom.sh _SERVICEOPTION 0 Central "Custom Macro"
./create_macrocustom.sh _SERVICEPLUGIN 0 Central "Custom Macro"
./create_macrocustom.sh _SERVICEUSERNAME 0 Central "Custom Macro"
./create_macrocustom.sh _SERVICEINTERFACE 0 Central "Custom Macro"
2.2 La commande check_centreon_plugin_snmp_os
Voici les relations entre la commande et les modèle de services et d'hôtes.
Voici la configuration de la commande dans l'interface web.
Ci-dessous le champ Command Line de la commande check_centreon_plugin_snmp_os.
$USER1$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --mode=$_SERVICEMODE$ --warning=$_SERVICEWARNING$ --critical=$_SERVICECRITICAL$ $_HOSTOPTIONV3$ $_SERVICEOPTION$ --host=$HOSTADDRESS$ --snmp-version=$_HOSTSNMPVERSION$ --snmp-community=$_HOSTSNMPCOMMUNITY$
Centreon-Clapi
commande check_centreon_plugin_snmp_os
commande check_centreon_plugin_snmp_os
clapi -o CMD -a ADD -v 'check_centreon_plugin_snmp_os;$USER1$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --mode=$_SERVICEMODE$ --warning=$_SERVICEWARNING$ --critical=$_SERVICECRITICAL$ $_HOSTOPTIONV3$ $_SERVICEOPTION$ --host=$HOSTADDRESS$ --snmp-version=$_HOSTSNMPVERSION$ --snmp-community=$_HOSTSNMPCOMMUNITY$’
2.3 Les templates de service
Maintenant, il s'agit de créer les templates de services pour les modes que l'on a défini en début de chapitre.
Les templates de service pour les systèmes de fichiers Linux utiliseront un modèle principal disk-snmp-Model-Service. Voici les commandes clapi pour créer ces modèles de service.
Centreon-clapi
# CPU
# DISK
# Model Disk
# DISK
# Disk home
# DISK
# Disk root
# DISK
# Disk tmp
# DISK
# Disk usr
# DISK
# Disk var
# LOAD
# MEMORY
# SWAP
# CPU
clapi -o STPL -a add -v "Cpu-snmp-Model-Service;Cpu-snmp;Model-service-active"
clapi -o STPL -a setparam -v "Cpu-snmp-Model-Service;check_command;check_centreon_plugin_snmp_os"
clapi -o STPL -a setmacro -v "Cpu-snmp-Model-Service;PLUGIN;os::linux::snmp::plugin"
clapi -o STPL -a setmacro -v "Cpu-snmp-Model-Service;WARNING;70"
clapi -o STPL -a setmacro -v "Cpu-snmp-Model-Service;CRITICAL;90"
clapi -o STPL -a setmacro -v "Cpu-snmp-Model-Service;MODE;cpu"
clapi -o CMD -a setparam -v "Cpu-snmp-Model-Service;graphtemplate;CPU"
# DISK
# Model Disk
clapi -o STPL -a add -v "disk-snmp-Model-Service;disk-snmp-model;Model-service-active"
clapi -o STPL -a setparam -v "disk-snmp-Model-Service;check_command;check_centreon_plugin_snmp_os"
clapi -o STPL -a setmacro -v "disk-snmp-Model-Service;PLUGIN;os::linux::snmp::plugin"
clapi -o STPL -a setmacro -v "disk-snmp-Model-Service;WARNING;80"
clapi -o STPL -a setmacro -v "disk-snmp-Model-Service;CRITICAL;90"
clapi -o STPL -a setmacro -v "disk-snmp-Model-Service;MODE;storage"
clapi -o STPL -a setparam -v "disk-snmp-Model-Service;graphtemplate;Storage"
# DISK
# Disk home
clapi -o STPL -a add -v "disk-snmp-home-Model-Service;Disk-snmp-Home;disk-snmp-Model-Service"
clapi -o STPL -a setmacro -v "disk-snmp-home-Model-Service;OPTION;--storage=/home --name"
# DISK
# Disk root
clapi -o STPL -a add -v "disk-snmp-root-Model-Service;Disk-snmp-Root;disk-snmp-Model-Service"
clapi -o STPL -a setmacro -v "disk-snmp-root-Model-Service;OPTION;--storage=/ --name"
# DISK
# Disk tmp
clapi -o STPL -a add -v "disk-snmp-tmp-Model-Service;Disk-snmp-Tmp;disk-snmp-Model-Service"
clapi -o STPL -a setmacro -v "disk-snmp-tmp-Model-Service;OPTION;--storage=/tmp --name"
# DISK
# Disk usr
clapi -o STPL -a add -v "disk-snmp-usr-Model-Service;Disk-snmp-Usr;disk-snmp-Model-Service"
clapi -o STPL -a setmacro -v "disk-snmp-usr-Model-Service;OPTION;--storage=/usr --name"
# DISK
# Disk var
clapi -o STPL -a add -v "disk-snmp-var-Model-Service;Disk-snmp-Var;disk-snmp-Model-Service"
clapi -o STPL -a setmacro -v "disk-snmp-var-Model-Service;OPTION;--storage=/var --name"
# LOAD
clapi -o STPL -a add -v "Load-snmp-Model-Service;Load-snmp;Model-service-active"
clapi -o STPL -a setparam -v "Load-snmp-Model-Service;check_command;check_centreon_plugin_snmp_os"
clapi -o STPL -a setmacro -v "Load-snmp-Model-Service;PLUGIN;os::linux::snmp::plugin"
clapi -o STPL -a setmacro -v "Load-snmp-Model-Service;WARNING;4,3,2"
clapi -o STPL -a setmacro -v "Load-snmp-Model-Service;CRITICAL;6,5,4"
clapi -o STPL -a setmacro -v "Load-snmp-Model-Service;MODE;load"
clapi -o STPL -a setparam -v "Load-snmp-Model-Service;graphtemplate;LOAD_Average"
# MEMORY
clapi -o STPL -a add -v "Memory-snmp-Model-Service;Memory-snmp;Model-service-active"
clapi -o STPL -a setparam -v "Memory-snmp-Model-Service;check_command;check_centreon_plugin_snmp_os"
clapi -o STPL -a setmacro -v "Memory-snmp-Model-Service;PLUGIN;os::linux::snmp::plugin"
clapi -o STPL -a setmacro -v "Memory-snmp-Model-Service;WARNING;70"
clapi -o STPL -a setmacro -v "Memory-snmp-Model-Service;CRITICAL;90"
clapi -o STPL -a setmacro -v "Memory-snmp-Model-Service;MODE;memory"
clapi -o STPL -a setparam -v "Memory-snmp-Model-Service;graphtemplate;Memory"
# SWAP
clapi -o STPL -a add -v "Swap-snmp-Model-Service;Swap-snmp;Model-service-active"
clapi -o STPL -a setparam -v "Swap-snmp-Model-Service;check_command;check_centreon_plugin_snmp_os"
clapi -o STPL -a setmacro -v "Swap-snmp-Model-Service;PLUGIN;os::linux::snmp::plugin"
clapi -o STPL -a setmacro -v "Swap-snmp-Model-Service;WARNING;80"
clapi -o STPL -a setmacro -v "Swap-snmp-Model-Service;CRITICAL;90"
clapi -o STPL -a setmacro -v "Swap-snmp-Model-Service;MODE;swap"
clapi -o STPL -a setparam -v "Swap-snmp-Model-Service;graphtemplate;Memory"
Vous obtiendrez, par exemple, le template swap-snmp-Model-service.
2.4 Les templates d’hôte
Nous regrouperons les services dans les deux template d'hôte nommés respectivement OS-Linux-SNMPV2 et OS-Linux-SNMPV3. On rajoutera les macros personnalisées pour ces deux templates.
Centreon-clapi
# HOSTS OS-Linux-SNMP2
# HOSTS OS-Linux-SNMP3
# HOSTS OS-Linux-SNMP2
clapi -o HTPL -a add -v "OS-Linux-SNMPV2;OS-Linux-SNMPV2;;;;"
clapi -o HTPL -a setparam -v "OS-Linux-SNMPV2;host_snmp_version;2c"
clapi -o STPL -a addhost -v "Cpu-snmp-Model-Service;OS-Linux-SNMPV2"
clapi -o STPL -a addhost -v "disk-snmp-home-Model-Service;OS-Linux-SNMPV2"
clapi -o STPL -a addhost -v "disk-snmp-root-Model-Service;OS-Linux-SNMPV2"
clapi -o STPL -a addhost -v "disk-snmp-tmp-Model-Service;OS-Linux-SNMPV2"
clapi -o STPL -a addhost -v "disk-snmp-usr-Model-Service;OS-Linux-SNMPV2"
clapi -o STPL -a addhost -v "disk-snmp-var-Model-Service;OS-Linux-SNMPV2"
clapi -o STPL -a addhost -v "Load-snmp-Model-Service;OS-Linux-SNMPV2"
clapi -o STPL -a addhost -v "Memory-snmp-Model-Service;OS-Linux-SNMPV2"
clapi -o STPL -a addhost -v "Swap-snmp-Model-Service;OS-Linux-SNMPV2"
# HOSTS OS-Linux-SNMP3
clapi -o HTPL -a add -v "OS-Linux-SNMPV3;OS-Linux-SNMPV3;;;;"
clapi -o HTPL -a setmacro -v "OS-Linux-SNMPV3;OPTIONV3;--snmp-username=netadmin --authpassphrase=azerty98 --privpassphrase=supervision --authprotocol=MD5 --privprotocol=DES;1"
clapi -o HTPL -a setparam -v "OS-Linux-SNMPV3;host_snmp_version;3"
clapi -o STPL -a addhost -v "Cpu-snmp-Model-Service;OS-Linux-SNMPV3"
clapi -o STPL -a addhost -v "disk-snmp-home-Model-Service;OS-Linux-SNMPV3"
clapi -o STPL -a addhost -v "disk-snmp-root-Model-Service;OS-Linux-SNMPV3"
clapi -o STPL -a addhost -v "disk-snmp-tmp-Model-Service;OS-Linux-SNMPV3"
clapi -o STPL -a addhost -v "disk-snmp-usr-Model-Service;OS-Linux-SNMPV3"
clapi -o STPL -a addhost -v "disk-snmp-var-Model-Service;OS-Linux-SNMPV3"
clapi -o STPL -a addhost -v "Load-snmp-Model-Service;OS-Linux-SNMPV3"
clapi -o STPL -a addhost -v "Memory-snmp-Model-Service;OS-Linux-SNMPV3"
clapi -o STPL -a addhost -v "Swap-snmp-Model-Service;OS-Linux-SNMPV3"
Vous remarquerez pour la macro OPTIONV3, le troisième paramètre à 1 permettant de crypter la chaîne de caractères dans l'interface Web de Centreon. Cette fonctionnalité existe depuis la version 1.6. Faites attention aux mots de passe compliqués qui pourraient être interprétés par la ligne de commande Clapi, penser à protéger les caractères par des caractères d'échappement.
2.5 Création des deux hôtes
Pour créer nos deux hôtes nous utiliserons les templates d'hôtes OS-Linux-SNMPV3 et OS-Linux-SNMPV2 en fonction des versions SNMP installées sur les serveurs. L'orde des templates est très important, surtout pour la prise en compte de la macro $_HOSTSNMPVERSION$ pour la version 3. En effet c'est la première valeur qui sera pris en compte, donc si le template generic-host a pour valeur 2, il faudra obligatoirement mettre le template OS-Linux-SNMPV3 avant celui-ci pour faire prendre en compte la valeur 3.
Centreon-clapi
# CREATE HOST server3
# CREATE HOST weblamp
# CREATE HOST server3
clapi -o HOST -a add -v "server3;serveur linux snmp v2;172.16.209.52;generic-host;Central;Linux-servers"
clapi -o HOST -a addtemplate -v "server3;OS-Linux-SNMPV2"
clapi -o HOST -a applytpl -v "server3"
# CREATE HOST weblamp
clapi -o HOST -a add -v "weblamp;serveur Web;172.16.209.51;OS-Linux-SNMPV3;Central;Linux-servers"
clapi -o HOST -a addtemplate -v "weblamp;generic-host"
clapi -o HOST -a applytpl -v "weblamp"
3 Vérification de la configuration
Appliquez la configuration. Vous devriez avoir cette vue pour les services après quelques minutes de fonctionnement.