4 IPMI-controles

Overzicht

Je kunt de gezondheid en beschikbaarheid van Intelligent Platform Management Interface (IPMI) apparaten monitoren in Zabbix. Om IPMI checks uit te voeren, moet de Zabbix-server aanvankelijk geconfigureerd zijn met IPMI ondersteuning.

IPMI is een gestandaardiseerde interface voor externe "lights-out" of "out-of-band" beheer van computersystemen. Hiermee kun je de hardwarestatus monitoren via de zogenaamde "out-of-band" beheerkaarten, onafhankelijk van het besturingssysteem of de machine überhaupt is ingeschakeld.

Zabbix IPMI-monitoring werkt alleen voor apparaten die IPMI ondersteunen (HP iLO, DELL DRAC, IBM RSA, Sun SSP, etc).

Sinds Zabbix 3.4 is er een nieuw IPMI-beheerproces toegevoegd om IPMI-checks in te plannen door IPMI-pollers. Nu wordt een host altijd gecontroleerd door slechts één IPMI-poller tegelijk, wat het aantal open verbindingen met BMC-controllers vermindert. Met deze wijzigingen kun je veilig het aantal IPMI-pollers verhogen zonder je zorgen te maken over overbelasting van BMC-controllers. Het IPMI-beheerproces wordt automatisch gestart wanneer ten minste één IPMI-poller wordt gestart.

Zie ook bekende problemen voor IPMI-checks.

Configuratie

Hostconfiguratie

Een host moet geconfigureerd worden om IPMI-checks te verwerken. Een IPMI-interface moet worden toegevoegd, met de respectievelijke IP- en poortnummers, en IPMI-authenticatieparameters moeten worden gedefinieerd.

Zie de configuratie van hosts voor meer details.

Serverconfiguratie

Standaard is de Zabbix-server niet geconfigureerd om enige IPMI-pollers te starten, dus zullen toegevoegde IPMI-items niet werken. Om dit te wijzigen, open het Zabbix-serverconfiguratiebestand (zabbix_server.conf) als rootgebruiker en zoek naar de volgende regel:

# StartIPMIPollers=0

Verwijder het commentaarsteken en stel het aantal pollers in op bijvoorbeeld 3, zodat het als volgt wordt gelezen:

StartIPMIPollers=3

Sla het bestand op en herstart vervolgens zabbix_server.

Itemconfiguratie

Bij het configureren van een item op hostniveau:

  • Selecteer 'IPMI-agent' als het Type
  • Voer een sleutel in die uniek is binnen de host (bijvoorbeeld ipmi.fan.rpm)
  • Selecteer voor Hostinterface de relevante IPMI-interface (IP en poort). Merk op dat er een IPMI-interface op de host moet bestaan.
  • Specificeer de IPMI-sensor (bijvoorbeeld 'FAN MOD 1A RPM' op Dell Poweredge) om de metriek op te halen. Standaard moet het sensor-ID worden gespecificeerd. Het is ook mogelijk om voorvoegsels voor de waarde te gebruiken:
    • id: - om het sensor-ID aan te geven;
    • name: - om de volledige naam van de sensor aan te geven. Dit kan handig zijn in situaties waarin sensoren alleen kunnen worden onderscheiden door de volledige naam op te geven.
  • Selecteer het respectieve type informatie ('Numeriek (float)' in dit geval; voor discrete sensoren - 'Numeriek (ongesigneerd)'), eenheden (waarschijnlijk 'rpm') en alle andere vereiste attributen voor het item.
Ondersteunde controles

De onderstaande tabel beschrijft ingebouwde items die worden ondersteund in IPMI-agentcontroles.

Item sleutel
Beschrijving Terugkeerwaarde Opmerkingen
ipmi.get
IPMI-sensor gerelateerde informatie. JSON-object Dit item kan worden gebruikt voor het ontdekken van IPMI-sensoren.
Ondersteund sinds Zabbix 5.0.0.

Time-out en sessiebeëindiging

IPMI-berichttime-outs en herhaaltellingen zijn gedefinieerd in de OpenIPMI-bibliotheek. Vanwege het huidige ontwerp van OpenIPMI is het niet mogelijk om deze waarden configureerbaar te maken in Zabbix, noch op het niveau van de interface noch op het niveau van het item.

De inactiviteitstime-out van de IPMI-sessie voor LAN is 60 +/- 3 seconden. Momenteel is het niet mogelijk om periodiek het Activate Session-commando te verzenden met OpenIPMI. Als er gedurende de sessietime-out geconfigureerd in BMC geen IPMI-itemcontroles van Zabbix naar een bepaalde BMC zijn gedurende de sessie, zal de volgende IPMI-controle na het verlopen van de time-out mislukken vanwege individuele berichttime-outs, herhaaltellingen of ontvangstfouten. Daarna wordt een nieuwe sessie geopend en wordt een volledige scan van de BMC gestart. Als u onnodige scans van de BMC wilt vermijden, wordt aangeraden om het IPMI-iteminterval voor polling onder de inactiviteitstime-out van de IPMI-sessie te configureren die in BMC is geconfigureerd.

Opmerkingen over IPMI discrete sensoren

Om sensoren op een host te vinden, start u de Zabbix-server met DebugLevel=4 ingeschakeld. Wacht een paar minuten en zoek sensor ontdekkingsgegevens in het Zabbix-serverlogbestand:

$ grep 'Added sensor' zabbix_server.log
       8358:20130318:111122.170 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:7 id:'CATERR' reading_type:0x3 ('discrete_state') type:0x7 ('processor') full_name:'(r0.32.3.0).CATERR'
       8358:20130318:111122.170 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:15 id:'CPU Therm Trip' reading_type:0x3 ('discrete_state') type:0x1 ('temperature') full_name:'(7.1).CPU Therm Trip'
       8358:20130318:111122.171 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:17 id:'System Event Log' reading_type:0x6f ('sensor specific') type:0x10 ('event_logging_disabled') full_name:'(7.1).System Event Log'
       8358:20130318:111122.171 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:17 id:'PhysicalSecurity' reading_type:0x6f ('sensor specific') type:0x5 ('physical_security') full_name:'(23.1).PhysicalSecurity'
       8358:20130318:111122.171 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:14 id:'IPMI Watchdog' reading_type:0x6f ('sensor specific') type:0x23 ('watchdog_2') full_name:'(7.7).IPMI Watchdog'
       8358:20130318:111122.171 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:16 id:'Power Unit Stat' reading_type:0x6f ('sensor specific') type:0x9 ('power_unit') full_name:'(21.1).Power Unit Stat'
       ...

Om IPMI-sensortypes en -staten te decoderen, krijgt u een kopie van de IPMI 2.0-specificaties op http://www.intel.com/content/www/us/en/servers/ipmi/ipmi-specifications.html (Op het moment van schrijven was het nieuwste document http://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/second-gen-interface-spec-v2.pdf)

Het eerste parameter om mee te beginnen is "reading_type". Gebruik "Table 42-1, Event/Reading Type Code Ranges" uit de specificaties om "reading_type"-code te decoderen. De meeste sensoren in ons voorbeeld hebben "reading_type:0x1", wat betekent "drempelwaarde"-sensor. "Table 42-3, Sensor Type Codes" toont aan dat "type:0x1" een temperatuursensor betekent, "type:0x2" - een spanningsensor, "type:0x4" - een ventilator, enz. Drempelsensoren worden soms "analoge" sensoren genoemd omdat ze continue parameters meten zoals temperatuur, spanning, omwentelingen per minuut.

Een ander voorbeeld - een sensor met "reading_type:0x3". "Table 42-1, Event/Reading Type Code Ranges" zegt dat lees type codes 02h-0Ch "Generic Discrete" sensor betekenen. Discrete sensoren hebben tot 15 mogelijke staten (met andere woorden - tot 15 betekenisvolle bits). Bijvoorbeeld voor sensor 'CATERR' met "type:0x7" toont "Table 42-3, Sensor Type Codes" aan dat dit type "Processor" betekent en de betekenis van individuele bits is: 00h (het minst significante bit) - IERR, 01h - Thermal Trip, enz.

Er zijn enkele sensoren met "reading_type:0x6f" in ons voorbeeld. Voor deze sensoren adviseert "Table 42-1, Event/Reading Type Code Ranges" om "Table 42-3, Sensor Type Codes" te gebruiken om betekenissen van bits te decoderen. Bijvoorbeeld, sensor 'Power Unit Stat' heeft type "type:0x9", wat betekent "Power Unit". Offset 00h betekent "PowerOff/Power Down". Met andere woorden, als het minst significante bit 1 is, dan is de server uitgeschakeld. Om dit bit te testen, kan de bitand functie met masker '1' worden gebruikt. De triggeruitdrukking zou bijvoorbeeld kunnen zijn:

bitand(last(/www.example.com/Power Unit Stat,#1),1)=1

om te waarschuwen voor het uitschakelen van een server.

Opmerkingen over discrete sensor namen in OpenIPMI-2.0.16, 2.0.17, 2.0.18 en 2.0.19

Namen van discrete sensoren in OpenIPMI-2.0.16, 2.0.17 en 2.0.18 hebben vaak een extra "0" (of een ander cijfer of letter) aan het einde. Bijvoorbeeld, terwijl ipmitool en OpenIPMI-2.0.19 sensor namen weergeven als "PhysicalSecurity" of "CATERR", zijn de namen in OpenIPMI-2.0.16, 2.0.17 en 2.0.18 respectievelijk "PhysicalSecurity0" of "CATERR0".

Bij het configureren van een IPMI-item met de Zabbix-server met behulp van OpenIPMI-2.0.16, 2.0.17 en 2.0.18, gebruik deze namen met "0" aan het einde in het IPMI sensor veld van IPMI-agent items. Wanneer uw Zabbix-server wordt bijgewerkt naar een nieuwe Linux-distributie die OpenIPMI-2.0.19 (of later) gebruikt, worden items met deze IPMI discrete sensoren "NIET ONDERSTEUND". U moet hun IPMI sensor namen wijzigen (verwijder de '0' aan het einde) en even wachten voordat ze weer "Ingeschakeld" worden.

Opmerkingen over gelijktijdige beschikbaarheid van drempel- en discrete sensoren

Sommige IPMI-agents bieden zowel een drempelsensor als een discrete sensor onder dezelfde naam aan. In Zabbix-versies voorafgaand aan 2.2.8 en 2.4.3 werd de eerste geleverde sensor gekozen. Sinds versies 2.2.8 en 2.4.3 krijgt de drempelsensor altijd de voorkeur.

Opmerkingen over verbindingsterminatie

Als IPMI-controles niet worden uitgevoerd (om welke reden dan ook: alle IPMI-items van de host zijn uitgeschakeld/niet ondersteund, host uitgeschakeld/verwijderd, host in onderhoud, enz.), wordt de IPMI-verbinding vanuit de Zabbix-server of proxy na 3 tot 4 uur verbroken, afhankelijk van het tijdstip waarop de Zabbix-server/proxy werd gestart.