Vous êtes ici:

Menu

Stacks Image 17415
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.

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é : public
Weblamp
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=public
ré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=3
ré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.
Stacks Image 17529
Schéma de principe pour la configuration snmp

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.
Stacks Image 17582
création des macros
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)
./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.
Stacks Image 17611
synoptique des relations entre la commande et les modèles de services et d'hôtes
Voici la configuration de la commande dans l'interface web.
Stacks Image 17632
la commande check_centreon_plugin_snmp_os
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
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.
Stacks Image 17685
synoptique des templates
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
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.
Stacks Image 17722
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
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"
Stacks Image 17759
le template d'hôte 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
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"
Stacks Image 17804
Création des deux hôtes weblamp et server3

3 Vérification de la configuration

Appliquez la configuration. Vous devriez avoir cette vue pour les services après quelques minutes de fonctionnement.
Stacks Image 17833
Résultat des plugins pour les deux hôtes server3 et weblamp
comments powered by Disqus
 Vous êtes ici: