Vous êtes ici:

Menu


Stacks Image 1350
Le module Centreon Dynamic Service Management (Centreon-DSM) permet la création de « bac à événements » pour chaque ressource supervisée par votre solution Centreon. La nouvelle version 2.2 se trouvant sur le GitHub de Centreon a été optimisée et est pleinement compatible avec Debian.
Centreon-DSM intercepte des événements systèmes, principalement des traps SNMP (services passifs ) , pour ensuite les stocker dans un ensemble de « slots » affecté à un hôte. Cette configuration s'appuie sur le service centreontrapd pour les événements trap SNMP.
Nous allons découvrir comment utiliser ce module avec une distribution Debian et une solution Centreon version 2.7x. Pour les utilisateurs de la distribution Centreon, il sera préférable d'utiliser les sources du GitHub car les rpm ne sont pas encore prêt.

1 Principe de fonctionnement en mode standalone

Afin de vous aider à mieux comprendre le fonctionnement de votre installation, j'ai réalisé ce schéma. Vous trouverez les explications ci-dessous.
Stacks Image 27763
  1. Le démon snmptrapd reçoit un trap et l'envoie à centreontrapdforward
  2. Centreontrapdforward enregistre le trap dans le dossier spool prévu à cet effet
  3. Le démon centreontrapd récupère les événements dans le spool et décode les informations
  4. Il compare les événements aux informations enregistrées dans la base Centreon
  5. Si celles-ci correspondent à des événements prévues à DSM, le démon envoie une commande spéciale
  6. La commande dsmclient mémorise l'événement dans la base Centreon_storage
  7. Le démon dsmd lit les informations de la base Centreon et Centreon_storage.
  8. En fonction de la correspondance des événements et des slots libres, il envoie une commande externe dans la file d'attente de Centcore
  9. La commande est interprété par le moteur de supervision.

2 Préparation à l’installation du module

Pour installer le module Centreon-DSM, nous aurons besoin d’une application Full Centreon version 2.7x opérationnelle avec Centreon-Engine et Centreon-Broker. Le service SNMP doit être configuré et votre serveur doit accepter les Traps SNMP. Le service Centreontrapd doit aussi fonctionner car le module Centreon-DSM l’utilise. Nous avons besoin des outils git pour télécharger le dépôt du module Centreon-DSM. En effet, celui-ci n’a pas été packagé en archive sur le site de téléchargement de Centreon. Récupérons l’application git.
apt-get install git-core
Maintenant, il faut récupérer les sources du module que nous déposerons dans le dossier /usr/local/src
cd /usr/local/src
git clone https://github.com/centreon/centreon-dsm.git
cd centreon-dsm
Première chose à faire, rendre exécutable le script bash install.sh
chmod +x install.sh
Vous pouvez lancer l’installation.

3 Installation du module

3.1 installation en ligne de commande

Lancez la ligne de commande :
./install.sh -i
Le programme affiche ceci. Saisissez le chemin de la configuration centreon (/etc/centreon).
###############################################################################
#                                                                             #
#                          Thanks for using Centreon-DSM                      #
#                                                                             #
#                                    v2.2.0                                     #
#                                                                             #
###############################################################################
------------------------------------------------------------------------
	Checking all needed binaries
------------------------------------------------------------------------
rm                                                         OK
cp                                                         OK
mv                                                         OK
/bin/chmod                                                 OK
/bin/chown                                                 OK
echo                                                       OK
more                                                       OK
mkdir                                                      OK
find                                                       OK
/bin/grep                                                  OK
/bin/cat                                                   OK
/bin/sed                                                   OK

------------------------------------------------------------------------
	Load parameters
------------------------------------------------------------------------
Please specify the directory with contain "instCentWeb.conf"
> /etc/centreon
L’installation continue
Parameters was loaded with success                         OK

------------------------------------------------------------------------
	Backup Centreon-DSM
------------------------------------------------------------------------

------------------------------------------------------------------------
	Install Centreon-DSM web interface
------------------------------------------------------------------------
Setting right                                              OK
Setting owner/group                                        OK
Copying module                                             OK

------------------------------------------------------------------------
	Install Centreon-DSM cron
------------------------------------------------------------------------
Changing macro                                             OK
Copy cron in cron.d directory:                             OK

------------------------------------------------------------------------
	Install Centreon-DSM binaries
------------------------------------------------------------------------
Changing macros                                            OK
Setting right                                              OK
Setting owner/group                                        OK
Copying module                                             OK
Changing macros for init script                            OK
Set owner for init script                                  OK
Set mod for init script                                    OK
Copying init script                                        OK
Changing macros for default script                         OK
Set owner for default script                               OK
Set mod for default script                                 OK
Copying default script                                     OK

------------------------------------------------------------------------
	End of Centreon-DSM installation
------------------------------------------------------------------------


Installation of Centreon-DSM is finished                   OK
See README and the log file for more details.
###############################################################################
#                                                                             #
#      Go to the URL : http://your-server/centreon/                           #
#                   	to finish the setup                                   #
#                                                                             #
#      Report bugs at                                                         #
#               https://github.com/centreon/centreon-dsm                      #
#                                                                             #
###############################################################################
Configurez son démarrage automatique.
update-rc.d dsmd defaults
Continuons avec l’interface graphique de Centreon.

3.2 installation en mode Web

Connectez-vous sur votre interface Centreon. Sélectionnez le menu Administration / Extension. Cliquez sur Modules et ensuite cliquez sur l’icône Actions pour installer le module.
Stacks Image 27593
Suivez les instructions des copies d’écran ci-dessous.
Stacks Image 27598
Stacks Image 27604
Le module Centreon-DSM est installé.
Stacks Image 27601

4 Configuration du module

Maintenant, passons à la configuration du module. Celle-ci se passe en plusieurs étapes :
- Création d'un modèle de service passif et ajout d’une macro ALARM_ID
- Association des traps avec un template générique
- Création d’un groupe de slots
- Génération et application de la configuration
- Création d’un trap SNMP adapté au module DSM
- Génération et application de la configuration des traps
- Démarrage du service dsmd

4.1 Création d'un modèle de service passif

Avant de créer votre groupe de slots, vous devez associer celui-ci à un hôte par le biais d'un modèle de service passif. Il est préférable que ce modèle de service soit le plus générique possible pour être utilisé avec les traps sélectionnés. exemple : un modèle de service trap-dsm basé sur un modèle passif. Voici mon exemple, j’utilise ce modèle que j'utiliserai pour tous mes serveurs Linux.
Stacks Image 27777

4.2 Association des traps avec un modèle de service

Ensuite il faut rajouter une relation entre les traps que l'on veut intercepter et l'hôte. Pour éviter une redondance d'envoi de commandes dsmclient, on utilisera un template le plus générique possible et qui n'est utilisé qu'une seul fois par hôte. En général le template ping-lan est le plus approprié. Ajoutez cette relation entre votre modèle de service et les traps utilisés par Centreon-DSM comme le montre cet exemple ci-dessous :
Stacks Image 27784
Relation du template Ping-LAN

4.3 Création d’un groupe de slots

Passons à la création d’un groupe de slots pour un hôte. Un slot est un genre de bac pouvant réceptionner et mémoriser un trap SNMP. Centreon-DSM mémorisera les traps SNMP suivantes dans les slots vides. Si les slots sont occupés, Centreon-DSM mémorisera les traps suivant en base de données. Le but étant de garder une trace des traps SNMP nécessitant un acquittement. Si le trap est acquitté, le slot est automatiquement libéré.
Pour créer un groupe de slot, sélectionnez le menu Administration (1) / Extensions (2). Cliquez sur le lien Configure (3) sous le menu Dynamic Services. Cliquez sur Add (4) pour ajouter un groupe de slot.
Stacks Image 27635
La configuration du groupe de slots ne présente pas de difficultés majeurs. Vous devez associer votre groupe à un hôte. Ce groupe sera basé sur le modèle de service passif créé précédemment.
Stacks Image 27632
Ajoutons la commande check_centreon_dummy qui servira pour les acquittements utilisateur. Le texte « Initial OK state » peut être modifié en fonction de vos besoins. Les champs obligatoires sont le nombre de slot et le nom du préfixe.

4.4 Application de la configuration

Comme pour une modification de configuration, il faut générer la nouvelle configuration et l’appliquer au moteur de supervision. Vous obtiendrez ce résultat avec la création de 10 slots nommé de slot-0001 à slot-0010 pouvant mémorisé les traps SNMP.
Stacks Image 27654

4.5 Création du trap SNMP

Dans un premier temps, nous allons modifier deux traps génériques : les traps Linkdown et Linkup. Sélectionnez le menu Configuration / SNMP Traps.
Stacks Image 27626
Pour chaque trap linkDown et linkUp, modifiez la configuration comme ceci. Décochez la cas Submit result et cochez Execute special command. La seule différence se situe au niveau dela ligne de commande pour envoyer un état critique pour linkDown ou un état OK pour linkUP. Saisissez la ligne suivante pour linkDown :
/usr/share/centreon/bin/dsmclient.pl -H @HOSTADDRESS@ -o 'interface $1 linkdown' -i interface$1 -s 2 -t @TIME@
Stacks Image 27790
Vérifier les relations de vos trap
Pour éviter la redondance d'alerte, il peut être intéressant de vérifier les relations de votre trap avec les services et les modèles de service. Pour cela, vous avez un onglet Relation pour chaque trap.
association_trap
Saisissez la ligne suivante pour linkUp :
/usr/share/centreon/bin/dsmclient.pl -H @HOSTADDRESS@  -i interface$1 -s 0 -t @TIME@
Stacks Image 27659
Le paramètre -i est important, cela doit représenter un identifiant unique du trap concerné afin de permettre un acquittement automatique en cas de retour à la normal. Je vous explique : dans notre exemple, nous interceptons les déconnexions des interfaces réseaux. Nous prenons comme identifiant unique, le nom de l’interface réseau se trouvant dans le paramètre $1 avec le préfixe interface. Si bien que lorsque l’interface retourne un état OK, Centreon-DSM ne vas pas occuper un nouveau slot mais va libérer le slot contenant l’identifiant correspondant.
Stacks Image 27787
Obtenir un fichier de log
Pour avoir un fichier de log correspondant à cette commande, vous pouvez rajouter cette option dans la ligne de commande.
--logfile=/var/log/centreon/centreon-dsmclient.log

Le démon dmsd a son propre fichier de log centreon-dsm.log et sera créé dans ce répertoire /var/log/centreon.

4.6 Application de la configuration des traps

Lorsque votre configuration est terminée, appliquez votre configuration.
Stacks Image 27676

4.7 Démarrage du service

Pour finir, lancer le démarrage du service dsmd.
service dsmd start

4.8 Test de notre configuration

Nous allons simuler une coupure réseau de notre serveur de supervision avec six cartes réseaux. Lançons les commandes de génération de traps.
snmptrap -v2c -c public 127.0.0.1 '' .1.3.6.1.6.3.1.1.5.3 ifIndex i 1 ifadminStatus i 2 ifOperStatus i 2
snmptrap -v2c -c public 127.0.0.1 '' .1.3.6.1.6.3.1.1.5.3 ifIndex i 2 ifadminStatus i 2 ifOperStatus i 2
snmptrap -v2c -c public 127.0.0.1 '' .1.3.6.1.6.3.1.1.5.3 ifIndex i 3 ifadminStatus i 2 ifOperStatus i 2
snmptrap -v2c -c public 127.0.0.1 '' .1.3.6.1.6.3.1.1.5.3 ifIndex i 4 ifadminStatus i 2 ifOperStatus i 2
snmptrap -v2c -c public 127.0.0.1 '' .1.3.6.1.6.3.1.1.5.3 ifIndex i 5 ifadminStatus i 2 ifOperStatus i 2
snmptrap -v2c -c public 127.0.0.1 '' .1.3.6.1.6.3.1.1.5.3 ifIndex i 6 ifadminStatus i 2 ifOperStatus i 2
Avec une configuration classique d’un service passif associé avec les traps SNMP, vous ne verriez que le dernier événement dans la vue temps réel. Avec Centreon-DSM, chaque événement est stocké dans un slot comme le montre la vue ci-dessous.
Stacks Image 27687
Libérons les slots avec les commandes suivantes :
snmptrap -v2c -c public 127.0.0.1 '' .1.3.6.1.6.3.1.1.5.4 ifIndex i 1 ifadminStatus i 1 ifOperStatus i 1
snmptrap -v2c -c public 127.0.0.1 '' .1.3.6.1.6.3.1.1.5.4 ifIndex i 2 ifadminStatus i 1 ifOperStatus i 1
snmptrap -v2c -c public 127.0.0.1 '' .1.3.6.1.6.3.1.1.5.4 ifIndex i 3 ifadminStatus i 1 ifOperStatus i 1
snmptrap -v2c -c public 127.0.0.1 '' .1.3.6.1.6.3.1.1.5.4 ifIndex i 4 ifadminStatus i 1 ifOperStatus i 1
snmptrap -v2c -c public 127.0.0.1 '' .1.3.6.1.6.3.1.1.5.4 ifIndex i 5 ifadminStatus i 1 ifOperStatus i 1
snmptrap -v2c -c public 127.0.0.1 '' .1.3.6.1.6.3.1.1.5.4 ifIndex i 6 ifadminStatus i 1 ifOperStatus i 1
Les slots se mettent en état OK avec l’information Free Slot.
Stacks Image 27694

5 Exemple d’utilisation de Centreon-DSM

Maintenant, regardons un exemple concret avec un commutateur ethernet manageable. L’objectif étant de superviser les états up et down de chaque port. Nous utiliserons les traps SNMP. Nous utiliserons pas de modèle de service passif mais un modèle très souvent utilisé pour les hôtes génériques, le modèle ping-LAN pour rajouter la macro ALARM_ID. Notre hôte switch_giga aura un point de service basé sur le modèle ping-LAN.
Stacks Image 27727
Configuration de l’hôte

5.1 modification du modèle Ping-LAN

Ajoutons la macro ALARM_ID
Stacks Image 27701
Ajoutons les relations des traps. Nous utiliserons les mêmes trap du chapitre précédent.
Stacks Image 27722

5.2 Ajout d’un groupe de slots

Créons notre groupe de slots pour notre switch. Il s’agit d’un groupe de 5 slots et basé sur le modèle Ping-LAN.
Stacks Image 27704

5.3 Application de la configuration

Appliquez la configuration, vous devez obtenir ceci.
Stacks Image 27732

5.4 Test de la configuration

Nous allons voir en détail, le fonctionnement de notre trap. Arrêtons le service centreontrapd afin de visualiser le détail du trap.
service centreontrapd stop
Lorsque nous débranchons le câble du port 4 du switch, un trap arrive sur le serveur de supervision.
tail -f /var/log/syslog
résultat
Oct 31 11:47:55 centreon277 snmptrapd[13247]: 2016-10-31 11:47:55  [UDP: [192.168.0.152]:161->[192.168.0.174]:162]:#012.1.3.6.1.2.1.1.3.0 = Timeticks: (766865138) 88 days, 18:10:51.38#011.1.3.6.1.6.3.1.1.4.1.0 = OID: .1.3.6.1.6.3.1.1.5.3#011.1.3.6.1.2.1.2.2.1.1.4 = INTEGER: 4#011.1.3.6.1.2.1.2.2.1.7.4 = INTEGER: down(2)#011.1.3.6.1.2.1.2.2.1.8.4 = INTEGER: down(2)#011.1.3.6.1.4.1.11863 = STRING: "Port4 linkDown"
Celui-ci est traité par le script centreontrapdforward et un fichier est créé dans /var/spool/centreontrapd. Voici le contenu et la correspondance avec les variables $1 à $4 utilisé par la configuration des traps.
Stacks Image 27739
La variable $1, correspondant au numéro du port, nous servira pour créer l’identifiant unique. Relançons le service centreontrapd.
service centreontrapd start
Le trap est automatique traité par centreontrapd, puis par le script dsmclient.pl pour l’insérer en base. Le service dsmd traitera l’information et ajoutera l’événement dans un slot.
Stacks Image 27748
Lorsque le câble sera inséré de nouveau dans le switch, le trap correspondant au port 4 libérera le slot automatiquement comme ci-dessous.
Stacks Image 27753
Cet article est terminé. J’attire votre attention que si vous changez le modèle de service dans le groupe de slot, il faudra reprendre la configuration de votre hôte. Dans l'article suivant, vous découvrirez Centreon-DSM en architecture distribuée. Centreon-DSM peut aussi être utilisé seul si vous n'utilisez pas les Traps SNMP. Cette utilisation fera l'objet d'un prochain tutoriel.

Références

comments powered by Disqus
 Vous êtes ici: