Monitoring SNMP Traps
Configuration de la supervisionâ
Rendez-vous dans le menu Configuration > Services > Services by host et cliquez sur Add.
- Définir une description du service
- Sélectionnez l'hÎte auquel attacher ce service
- Sélectionnez le modÚle de service generic-passive-service-custom
- Rendez-vous dans l'onglet Relation et sélectionnez les traps SNMP
- Cliquez sur Save
Appliquer les changementsâ
Pour pouvoir exporter les OID présents en base de données en fichier de configuration pour centreontrapd, suivez la procédure suivante :
- Rendez-vous dans le menu Configuration > SNMP traps > Generate
- Sélectionnez le collecteur vers lequel vous souhaitez exporter les fichiers de configuration
- Cochez Generate traps database et Apply configurations
- Dans la liste dĂ©roulante Send signal (prĂ©fĂ©rez lâoption Reload)
- Cliquez sur le bouton Generate
- Export the monitoring configuration
Pour aller plus loinâ
Modifier le message de sortieâ
Utiliser lâensemble des argumentsâ
Pour un trap SNMP, lors de la configuration du message de sortie, lâargument $* permet dâafficher lâensemble des informations (valeur des arguments) contenu au sein du trap SNMP. Cependant, il est possible dâafficher uniquement certaines informations contenues au sein du trap SNMP en appelant unitairement les arguments.
Exemple :
Le message de sortie Link down on interface $2. State: $4.â permet dâafficher uniquement le nom de lâinterface et lâĂ©tat de celle-ci (argument $2 et $4).
OĂč trouver les arguments ?
Les arguments se trouvent au sein de la documentation de la MIB de votre constructeur ou bien au sein du champ Comments de votre trap SNMP.
Par exemple :
Pour afficher :
- Lâindex du lien tombĂ©, utilisez lâargument $1
- Le nom de lâinterface tombĂ©e, utilisez lâargument $2
- LâĂ©tat administratif de lâinterface, utilisez lâargument $3
- LâĂ©tat de lâinterface, utilisez lâargument $4
Par exemple, le message de sortie suivant permet dâafficher lâensemble des arguments :
Link down on interface: $2 (index: $1). Operational state: $4, Administration state: $3
Effectuer un contrĂŽle actif suite Ă la reception dâun trapâ
Il est possible par lâutilisation de lâoption Reschedule associated services de rĂ©aliser un contrĂŽle actif sur le service suite Ă la rĂ©ception du trap SNMP.
Le contrÎle actif défini au niveau du service est alors effectué.
Executer une commande spĂ©cialeâ
Centreontrapd peut Ă©xecuter une commande spĂ©ciale suite Ă la rĂ©ception dâun trap SNMP. Pour utiliser cela, il suffit de cocher lâoption Execute special command et dâĂ©crire la commande voulue.
Utiliser lâensemble des arguments (via les OID)â
Il est Ă©galement possible de rĂ©cupĂ©rer directement la valeur dâun argument sans connaĂźtre son ordre dâarrivĂ©e ($1, $2, $3, ...). Pour cela, utilisez lâOID complet de lâargument.
Voici un exemple :
Link down on interface: @{.1.3.6.1.2.1.2.2.1.2} (index: @{.1.3.6.1.2.1.2.2.1.1}). Operational state: @{.1.3.6.1.2.1.2.2.1.8}, Administration state: @{.1.3.6.1.2.1.2.2.1.7}
Utiliser une variable externeâ
Il est Ă©galement possible de modifier le message de sortie en rĂ©cupĂ©rant des informations via des scripts ou commandes externes et de rĂ©cupĂ©rer le rĂ©sultat pour lâinsĂ©rer au sein du message. Pour cela, au sein de la dĂ©finition de votre trap SNMP, rendez-vous dans lâonglet Advanced et ajoutez une (ou plusieurs) commande(s) PREEXEC.
Exemple :
La premiĂšre commande est snmpget -v 2c -Ovq -c public @HOSTADDRESS@ ifAlias.$1 et permet de rĂ©cupĂ©rer lâalias de lâinterface. La variable â$1â correspond ici Ă la valeur associĂ©e Ă lâargument 1 des traps linkUp/linkDown, soit lâindex.
La seconde commande contient snmpget -v 2c -Ovq -c public @HOSTADDRESS@ ifSpeed.$1 et permet de rĂ©cupĂ©rer la vitesse de lâinterface. La variable â$1â correspond ici Ă la valeur associĂ©e Ă lâargument 1 des traps linkUp/linkDown, soit lâindex.
Pour utiliser le rĂ©sultat de la premiĂšre commande dans le message de sortie, utilisez lâargument $p1 et pour utiliser le rĂ©sultat de la seconde commande dans le message de sortie, utilisez lâargument $p2.
Par conséquent, nous pouvons déduire le message de sortie suivant :
Link down on interface: $2 (index: $1). Operational state: $4, Administration state: $3, Alias : $p1, Speed : $p2
Utiliser une expression rĂ©guliĂšreâ
Il est Ă©galement possible de modifier le message de sortie en utilisant une expression rĂ©guliĂšre par lâintermĂ©diaire de lâoption Output Transform. Il suffit de renseigner une expression rĂ©guliĂšre et elle sera Ă©xĂ©cutĂ©e Ă la rĂ©ception dâun trap SNMP.
For example:
s/\|/-/g
Will replace | in the output to -.
Route/Transfer SNMP trapsâ
Parfois, il existe un concentrateur de traps SNMP au sein dâune sociĂ©tĂ©. Exemple : Oracle GRID. Oracle GRID est chargĂ© de fĂ©dĂ©rer les informations de tous les serveurs Oracle en cas de nĂ©cessitĂ©, câest le serveur Oracle GRID qui envoie un trap SNMP au serveur de supervision.
Or, Ă partir dâun trap SNMP reçu par Oracle GRID, on souhaite pouvoir extraire lâadresse IP de lâhĂŽte concernĂ© et afficher le message du trap dans un service appartenant non pas Ă Oracle Grid mais Ă lâhĂŽte concernĂ© par le trap (le vĂ©ritable Ă©metteur).
Pour cela, exécutez la procédure suivante :
- Créez un trap générique, ayant les paramÚtres suivants :
- Dans l'onglet Main :
Attributs | Description |
---|---|
Trap Name | Nom du trap |
Mode | Unique |
OID | OID du trap |
Default Status | Statut par défaut du trap |
Output Message | Message de sortie personnalisé |
- Dans l'onglet Advanced:
Attributes | Description |
---|---|
Enable routing | Cochez la case |
Route definition | $2 (ici on part du principe que lâargument numĂ©ro 2 du trap contient lâadresse IP de lâhĂŽte concernĂ© par le trap) |
- Créer une deuxiÚme définition du trap avec :
- Dans l'onglet Main :
Attributs | Description |
---|---|
Trap Name | Nom du trap |
OID | OID du trap |
Default Status | Statut par défaut du trap |
Output Message | Message de sortie personnalisé |
- Associer la premiÚre définition à un service (par exemple PING) du serveur Oracle GRID
- Associer la deuxiĂšme dĂ©finition Ă un service passif de lâhĂŽte concernĂ©
- Générer les définitions de traps SNMP et redémarrer centreontrapd
Au sein du champ Route definition vous pouvez utiliser les arguments suivants :
Nom de la variable | Description |
---|---|
@GETHOSTBYADDR($1)@ | RĂ©solution DNS inverse permettant de connaitre le nom DNS Ă partir de lâadresse IP (127.0.0.1 -> localhost) |
@GETHOSTBYNAME($1)@ | RĂ©solution DNS permettant de connaitre lâadresse IP Ă partir du nom DNS (localhost -> 127.0.0.1) |
Ne pas soumettre le trap SNMP durant un downtimeâ
Lâoption Check Downtime permet Ă centreontrapd de contrĂŽler si le service nâest pas dans un statut de downtime lors de la rĂ©ception du trap SNMP. Il est possible alors dâannuler la soumission du trap.
Ce mode de focntionnement nâest compatible quâavec Centreon Broker et des services supervisĂ©s depuis le central.
Il est possible dâadapter le comportement selon ces trois mĂ©thodes :
- None : Rien de spécial, le trap SNMP est envoyé normalement
- Real-Time : Si un downtime est actif sur le service, il nâest pas mis Ă jour.
- History : Ooption utilisĂ©e pour ne pas prendre en compte un trap SNMP qui concerne un Ă©vĂ©nement passĂ© lors dâun temps dâarrĂȘt.