Dell OpenManage et Nagios

Vendredi, 09 Décembre 2005 00:00
Imprimer
Note des utilisateurs: / 5
MauvaisTrès bien 
J'aborde ici la méthode que j'utilise pour envoyer dans Nagios les alarmes générées par le produit de supervision livré avec les serveurs Dell : OpenManage. Cette méthode permet de ne pas utiliser les traps SNMP. Si vous souhaitez au contraire paramétrer Nagios pour recevoir les alarmes OpenManage via SNMP, lisez plutôt cet article.

En quelques mots, il s'agit d'utiliser la capacité du produit Dell à lancer une ligne de commande quelconque lors de la survenance d'un évènement matériel, pour remonter l'information à Nagios sous forme de contrôle passif.

Configuration de Nagios

Il s'agit ici avant tout d'avoir un Nagios en état de marche. Le mien, c'est une version 1.2.

Tout d'abord, je définis un template réutilisable pour tous les services, et je le spécialise pour les services passifs, parce que je fais les choses proprement moi monsieur :

# Generic service definition template
define service{
name generic-service
register 0
check_period 24x7
max_check_attempts 3
normal_check_interval 15
retry_check_interval 5
active_checks_enabled 1
passive_checks_enabled 0
parallelize_check 1
obsess_over_service 0
check_freshness 0
event_handler_enabled 0
flap_detection_enabled 0
process_perf_data 1
retain_status_information 1
retain_nonstatus_information 1
notification_interval 60
notification_period 24x7
notification_options w,u,c,r
notifications_enabled 1
}

# Generic passive service definition template
define service{
name passive-service
use generic-service
register 0
active_checks_enabled 0
passive_checks_enabled 1
max_check_attempts 1
check_freshness 0
check_command check_dummy!1
}

J'utilise cette définition pour le service correspondant à OpenManage, toujours sous la forme d'un template réutilisable :

define service{
# DELL OpenManage (+ nsca)
use passive-service
name dell-probe
register 0
service_description Hardware
contact_groups nt-admins
}

Il ne reste plus ensuite qu'à utiliser ce template pour la machine MON_SERVEUR par exemple :

define service{
host_name MON_SERVEUR
use dell-probe
}

Allez, hop, c'est fini pour Nagios. Du beurre, non ?

Installation du serveur Dell

Système d'exploitation

C'est du Windows chez moi. Ceci dit, il n'y a aucune raison que ça ne marche pas de la même manière sous Linux. Tiens, si tu mets ça au point, donne, je le publierai ici.

NSCA

Ce add-on "Nagios Service Check Acceptor" peut être récupéré sur la page téléchargement du site officiel de Nagios. J'utilise dans cet exemple la version 2.4. Une version compilée pour Windows est disponible sur Nagios Exchange.

Cet outil, composé d'un client et d'un serveur, va permettre d'envoyer les évènements OpenManage à la machine hébergeant Nagios. Le client est un exécutable Windows appelé send_nsca.exe, et le serveur est un démon en écoute sur la machine Nagios. Je vous renvoie à la documentation de cet excellent produit pour son installation.

OpenManage

Le produit OpenManage doit bien sûr être installé sur le serveur : je ne vous fait pas l'affront de vous expliquer comment, normalement vous jetez le CD correspondant dans le mange-disque et vous cliquez sur Suivant, Suivant, Suivant... jusqu'à ce que mort s'ensuive.

J'ai toutes sortes de versions personnellement, de 1.5.0 à 1.7.0.

Configuration des logiciels

NSCA

J'ai en ce qui me concerne configuré le côté serveur pour tourner sous xinetd ; c'est toujours beaucoup plus chic, n'est-ce-pas. Tous les paramétres sont laissés par défaut.

Côté client, je créée un répertoire pour accueillir le biniou (personnellement, sous C:\program files\send_nsca, mais tu fais ce que tu veux). Le biniou est composé de :

Ha ha, tu as remarqué, observateur comme tu es ? Hé oui, send_nsca.cmd ne fait pas partie de la distribution standard. C'est moi qui l'ai fait ; c'est la commande qui sera invoquée par OpenManage. Elle contient :

@echo off
rem envoi des alertes OpenManage a Nagios
rem (c)Xavier Dusart 11/2004 - http://xavier.dusart.free.fr/
echo %COMPUTERNAME%;Hardware;2;%1 | "c:\program files\send_nsca\send_nsca" -H serveur_nagios -d ; -c "c:\program files\send_nsca\send_nsca.cfg"

Ce qui est en rouge mérite ton attention.

Le mode opératoire est donc :

Quand au fichier de configuration du client nsca – appelé send_nsca.cfg – il contient : encryption_method=1. Pas trop dur, mon gars ?

OpenManage

Tu pointes sur https://MON_SERVEUR:1311, et tu vas dans la rubrique Gestion des alertes. Et là, pour chaque alerte que tu juges critique, tu lui dit d'exécuter l'application c:\progra~1\send_nsca\send_nsca.cmd "description de l'alerte". La description de l'alerte, c'est par exemple "Bloc d'alimentation critique", ou "Avertissement des capteurs de temperature". Et voilà.

En option

Un lien dans Nagios

Pour afficher un joli lien vers OpenManage dans l'interface Nagios, tu peux ajouter dans le fichier de configuration de Nagios serviceextinfo.cfg :

define serviceextinfo{
host_name MON_SERVEUR
service_description Hardware
notes_url https://$HOSTNAME$:1311/
icon_image dell.gif
}

Et tiens, je te donne dell.gif, le petit logo d'OpenManage (t'as qu'à faire Enregistrer sous).

Un truc pour aider à la configuration de OpenManage

Comme les alarmes sont assez pénibles à configurer, et que c'est la même chose sur tous les serveurs, j'ai cherché les fichiers où OpenManage pouvait stocker ces informations. Selon les versions, j'en ai trouvé deux :

C:\Program Files\Dell\OpenManage\omsa\ini\dcprv32.Ini, à la fin duquel on modifie la rubrique HWC :

.../...
[HWC Configuration]
lraRObj.settings.00B5=256
lraRObj.epfName.00B5=c:\progra~1\send_nsca\send_nsca.cmd "Panne detectee par un capteur de ventilateur"
lraRObj.settings.00BD=256
lraRObj.epfName.00BD=c:\progra~1\send_nsca\send_nsca.cmd "Echec anticipe de la memoire"
lraRObj.settings.00BE=256
lraRObj.epfName.00BE=c:\progra~1\send_nsca\send_nsca.cmd "Echec de la memoire"
lraRObj.settings.00B1=256
lraRObj.epfName.00B1=c:\progra~1\send_nsca\send_nsca.cmd "Bloc d'alimentation critique"
lraRObj.settings.00BB=256
lraRObj.epfName.00BB=c:\progra~1\send_nsca\send_nsca.cmd "Degradation de la redondance
lraRObj.settings.00BC=256
lraRObj.epfName.00BC=c:\progra~1\send_nsca\send_nsca.cmd "Perte de la redondance"
lraRObj.settings.00B2=256
lraRObj.epfName.00B2=c:\progra~1\send_nsca\send_nsca.cmd "Avertissement des capteurs de temperature"
lraRObj.settings.00B3=256
lraRObj.epfName.00B3=c:\progra~1\send_nsca\send_nsca.cmd "Panne detectee par un capteur de temperature"
lraRObj.settings.00B6=256
lraRObj.epfName.00B6=c:\progra~1\send_nsca\send_nsca.cmd "Avertissement des capteurs de tension"
lraRObj.settings.00B7=256
lraRObj.epfName.00B7=c:\progra~1\send_nsca\send_nsca.cmd "Panne detectee par un capteur de tension"
lraRObj.settings.00B4=256
lraRObj.epfName.00B4=c:\progra~1\send_nsca\send_nsca.cmd "Avertissement des capteurs de ventilateur"
lraRObj.settings.00B8=256
lraRObj.epfName.00B8=c:\progra~1\send_nsca\send_nsca.cmd "Avertissement des capteurs de courant"
lraRObj.settings.00BA=256
lraRObj.epfName.00BA=c:\progra~1\send_nsca\send_nsca.cmd "Detection d'une intrusion dans le chassis"
lraRObj.settings.00B9=256
lraRObj.epfName.00B9=c:\progra~1\send_nsca\send_nsca.cmd "Panne detectee par les capteurs de courant"

Ou C:\Program Files\Dell\OpenManage\omsa\ini\dclrdy32.ini, qui doit contenir :

;--------------------------------------------------------------------
;
; Dell Inc. PROPRIETARY INFORMATION
; This software is supplied under the terms of a license agreement or
; nondisclosure agreement with Dell Inc. and may not
; be copied or disclosed except in accordance with the terms of that
; agreement.
;
; Copyright (c) 1995-2004 Dell Inc.
; All Rights Reserved.
;
; Module Name:
;
; DCLRDY32.INI
;
; Abstract/Purpose:
;
; Local Response Agent ("Dynamic" Data) INI file
;
;--------------------------------------------------------------------
; XDU 09/2004 : a copier dans C:\Program Files\Dell\OpenManage\omsa\ini
; vérifier la section "LRA Resp Configuration Section"
; relancer le service "Systems management data manager"
[LRA Resp Configuration Section]
lrarespid.0x00=175 ; Watchdog ASR event
lrarespid.0x01=177 ; Power supply critical
lrarespid.0x02=178 ; Temperature non-critical
lrarespid.0x03=179 ; Temperature critical
lrarespid.0x04=180 ; Fan non-critical
lrarespid.0x05=181 ; Fan critical
lrarespid.0x06=182 ; Voltage non-critical
lrarespid.0x07=183 ; Voltage critical
lrarespid.0x08=184 ; Current non-critical
lrarespid.0x09=185 ; Current critical
lrarespid.0x0a=186 ; Intrusion detected
lrarespid.0x0b=187 ; Redundancy degraded
lrarespid.0x0c=188 ; Redundancy lost
lrarespid.0x0d=189 ; Memory ECC error non-critical
lrarespid.0x0e=190 ; Memory ECC error critical
lrarespid.0x0f=304 ; Hardware log (ESM log) near full
lrarespid.0x10=305 ; Hardware log (ESM log) full
lrarespid.0x11=306 ; Processor warning
lrarespid.0x12=307 ; Processor failure
lrarespid.0x13=308 ; Power supply non-critical
[175]
settings=256
epfName=c:\progra~1\send_nsca\send_nsca.cmd "ASR de surveillance"
[177]
settings=256
epfName=c:\progra~1\send_nsca\send_nsca.cmd "Bloc d'alimentation critique"
[178]
settings=256
epfName=c:\progra~1\send_nsca\send_nsca.cmd "Avertissement des capteurs de temperature"
[179]
settings=256
epfName=c:\progra~1\send_nsca\send_nsca.cmd "Panne detectee par un capteur de temperature"
[180]
settings=256
epfName=c:\progra~1\send_nsca\send_nsca.cmd "Avertissement des capteurs de ventilateur"
[181]
settings=256
epfName=c:\progra~1\send_nsca\send_nsca.cmd "Panne detectee par un capteur de ventilateur"
[182]
settings=256
epfName=c:\progra~1\send_nsca\send_nsca.cmd "Avertissement des capteurs de tension"
[183]
settings=256
epfName=c:\progra~1\send_nsca\send_nsca.cmd "Panne detectee par un capteur de tension"
[184]
settings=256
epfName=c:\progra~1\send_nsca\send_nsca.cmd "Avertissement des capteurs de courant"
[185]
settings=256
epfName=c:\progra~1\send_nsca\send_nsca.cmd "Panne detectee par les capteurs de courant"
[186]
settings=256
epfName=c:\progra~1\send_nsca\send_nsca.cmd "Detection d'une intrusion dans le chassis"
[187]
settings=256
epfName=c:\progra~1\send_nsca\send_nsca.cmd "Degradation de la redondance"
[188]
settings=256
epfName=c:\progra~1\send_nsca\send_nsca.cmd "Perte de la redondance"
[189]
settings=256
epfName=c:\progra~1\send_nsca\send_nsca.cmd "Echec anticipe de la memoire"
[190]
settings=256
epfName=c:\progra~1\send_nsca\send_nsca.cmd "Echec de la memoire"
[304]
settings=256
epfName=c:\progra~1\send_nsca\send_nsca.cmd "Journal du materiel : avertissement"
[305]
settings=256
epfName=c:\progra~1\send_nsca\send_nsca.cmd "Journal du materiel : erreur"
[306]
settings=256
epfName=c:\progra~1\send_nsca\send_nsca.cmd "Processeur : avertissement"
[307]
settings=256
epfName=c:\progra~1\send_nsca\send_nsca.cmd "Processeur : panne"
[308]
settings=256
epfName=c:\progra~1\send_nsca\send_nsca.cmd "Bloc d'alimentation : avertissement"
[LRA Prot Configuration Section]
lraprotid.0x00=1045 ; Thermal Protect
[1045]
activateTimeout=60
reCheckTimeout=6
condition=0
canBeForced=true
[HWC Configuration]
migrationCompleted=TRUE

Tu ne prends pas ça pour argent comptant, non plus, hein, tu vérifie que ça correspond bien à ce que tu as déjà dans le fichier. Une fois le fichier ini modifié, il faut relancer le service correspondant d'OpenManage, ou mieux, tiens, t'embêtes pas : reboote.

Reste à faire

Essaye un peu de transposer ça pour Compaq Insight Manager, tiens, ça va t'occuper.

Remerciements

Mis à jour le Vendredi, 06 Mars 2009 18:38