Supervision hardware des Engineered Systems Oracle avec le protocole IPMI

Dans le cadre d’expériences acquises sur le terrain, je vais vous part d’un outil utile à la supervision des Engineered Systems Oracle.
Il s’agit du protocole IPMI qui est implémenté sur les modules ILOM des composants hardware Oracle utilisés pour construire les Exas machines.

Intelligent Platform Management Interface (IPMI) est une interface ouverte standard, conçue pour la gestion des systèmes de serveurs via le réseau.
Il vous permet de surveiller et de contrôler votre plate-forme serveur, ainsi que de récupérer des informations la concernant.
Il prend en charge les rapports d’inventaire, la surveillance du système, la journalisation des événements système, la réception de commandes ou la réception d’alertes suite à des événements.

 
ILOM est aussi une interface de management, mais elle est propre aux composants Oracle comme DRAC pour Dell, ILO pour HP, …
Chacune de ces interfaces de management possède une interface graphique détaillée, développée par le constructeur, et propose en plus le support du protocole IPMI.
L’avantage d’IPMI est sa caractéristique d’interface standard utilisable quel que soit le fournisseur de matériel hardware.
IPMI est avant tout un protocole, mais des interfaces graphiques ont été développées, comme le rpm freeipmi.x86_64 disponible sous Linux.
Il est ainsi possible de développer des composants logiciels, scripts shell, scripts nrpe pour Nagios. Il existe des plugins Nagios dédiés.
Comme snmp, il peut fonctionner par interrogation ou par réception d’événements :

  • Pour l’interrogation, IPMI est plus facile à utiliser dans des scripts.
  • Pour la réception d’événements, snmp possède plus d’implémentation de serveurs. Un serveur IPMI existe sur Linux pour recevoir des traps ; il s’agit du rpm ipmievd.

IPMI permet d’envoyer des commandes au serveur très facilement : reboot, arrêt, démarrage, …
IPMI est plus orienté serveur. Snmp possède par contre une dimension plus universelle par la diversité des composants qui l’intègrent.
Oracle VM utilise aussi le protocole IPMI pour pouvoir arrêter et redémarrer les serveurs physiques depuis l’interface graphique.
Nous allons parcourir quelques exemples de commandes par interrogation qui vous permettrons de réaliser des outils de supervision hardware des Engineered Systems.
Loin d’être exhaustives, les commandes suivantes donnent un aperçu des possibilités.
Il est possible de mettre le password dans un fichier avec l’option -f.
 

1) Paramétrage du protocole IPMI

Pour commencer, il faut que le protocole IPMI soit activé sur votre device. Pour cela, se connecter à l’ILOM du composant et entrer :

set /SP/services/ipmi servicestate=enabled
 Set 'servicestate' to 'enabled'

 
 

2) Supervision des capteurs et des composants internes au système

Tout d’abord, récupération des capteurs supervisés, car IPMI fonctionne avec des éléments qui sont des capteurs. Pour obtenir la liste des sensors, entrer la commande suivante depuis un client Linux :

# ipmitool -I lanplus -U root -P toto -H 10.20.30.40 -v sdr list

 
Je prends un sensor de type ventilateur, et je recherche les informations concernant son fonctionnement :

# ipmitool -I lanplus -U root -P toto -H 10.20.30.40 sensor get 'FM0/F2/TACH'
Locating sensor record...
Sensor ID : FM0/F2/TACH (0x8e)
 Entity ID : 29.12
 Sensor Type (Analog) : Fan
 Sensor Reading : 11800 (+/- 50) RPM
 Status : ok
 Lower Non-Recoverable : 1000.000
 Lower Critical : 1200.000
 Lower Non-Critical : 1400.000
 Upper Non-Critical : na
 Upper Critical : na
 Upper Non-Recoverable : na
 Assertions Enabled : lnc- lcr- lnr-
 Deassertions Enabled : lnc+ lcr+ lnr+

 
On peut interroger les sensors par catégorie. Pour cela, on récupère la liste des catégories :

# ipmitool -I lanplus -U root -P toto -H 10.20.30.40 -v sdr type list
Sensor Types:
        Temperature                 Voltage
        Current                     Fan
        Physical Security           Platform Security
        Processor                   Power Supply
        Power Unit                  Cooling Device
        Other                       Memory
        Drive Slot / Bay            POST Memory Resize
        System Firmwares            Event Logging Disabled
        Watchdog                    System Event
        Critical Interrupt          Button
        Module / Board              Microcontroller
        Add-in Card                 Chassis
        Chip Set                    Other FRU
        Cable / Interconnect        Terminator
        System Boot Initiated       Boot Error
        OS Boot                     OS Critical Stop
        Slot / Connector            System ACPI Power State
        Watchdog                    Platform Alert
        Entity Presence             Monitor ASIC
        LAN                         Management Subsystem Health
        Battery                     Session Audit
        Version Change              FRU State

 
et on lance une commande IPMI sur une catégorie de sensors en particulier :

# ipmitool -I lanplus -U root -P toto -H 10.20.30.40 -v sdr type Temperature

 
Plus globalement, il est possible d’obtenir une vision complète du composant :

# ipmitool -I lanplus -U root -P toto -H 10.20.30.40 -v chassis status
 System Power : on
 Power Overload : false
 Power Interlock : inactive
 Main Power Fault : false
 Power Control Fault : false
 Power Restore Policy : always-off
 Last Power Event :
 Chassis Intrusion : inactive
 Front-Panel Lockout : inactive
 Drive Fault : false
 Cooling/Fan Fault : false

 
 

3) Envoi de commandes à l’ILOM du composant

IPMI permet d’envoyer des commandes d’administration du composant à moindre frais.

Demande de démarrage :

# ipmitool -H 10.20.30.40 -v -I lanplus -U root -P toto chassis power on

 

Demande d’arrêt :

# ipmitool -H 10.20.30.40 -v -I lanplus -U root -P toto chassis power off

 
 

4) Lister le log de l’ILOM du composant

# ipmitool -I lanplus -U root -P toto -H 10.20.30.40 -v sel list
SEL Record ID : 0001
 Record Type : 02
 Timestamp : 04/10/2015 17:22:22
 Generator ID : 0020
 EvM Revision : 04
 Sensor Type : Power Supply
 Sensor Number : d2
 Event Type : Sensor-specific Discrete
 Event Direction : Assertion Event
 Event Data : 03ffff
 Description : Power Supply AC lost

 
 

5) Lister les informations logicielles et matérielles du composant

# ipmitool -I lanplus -U root -P toto -H 10.20.30.40 -v fru print
 FRU Device Description : Builtin FRU Device (ID 0)
 Chassis Type : Rack Mount Chassis
 Chassis Part Number : PILOT3
 Product Manufacturer : Oracle Corporation
 Product Name : ILOM
 Product Version : 3.2.7.26.a
FRU Device Description : SYS (ID 3)
 Chassis Type : Rack Mount Chassis
 Product Manufacturer : Oracle Corporation
 Product Name : ORACLE SERVER X5-2
 Product Part Number : 79998760
 Product Serial : 1813AZ019V

 
 

6) Déclenchement d’un événement sur un sensor à des fins de test

Voici, pour finir, un exemple de commande permettant de simuler une panne sur un ventialteur pour valider votre script de supervision :

# ipmitool -I lanplus -U root -P toto -H 10.20.30.40 event 'FM0/F2/TACH' ucr assert