U kunt de gezondheid en beschikbaarheid van Intelligent Platform Management Interface (IPMI)-apparaten in Zabbix bewaken. Om IPMI-controles uit te voeren, moet de Zabbix-server aanvankelijk worden geconfigureerd met IPMI-ondersteuning.
IPMI is een gestandaardiseerde interface voor externe "lights-out" of "out-of-band" beheer van computersystemen. Het stelt u in staat om de hardwarestatus rechtstreeks te controleren vanaf de zogenaamde "out-of-band" beheerkaarten, onafhankelijk van het besturingssysteem of of de machine überhaupt is ingeschakeld.
Zabbix IPMI-bewaking werkt alleen voor apparaten met IPMI-ondersteuning (HP iLO, DELL DRAC, IBM RSA, Sun SSP, enz.).
Sinds Zabbix 3.4 is er een nieuw IPMI-beheerproces toegevoegd om IPMI-controles te plannen via IPMI-pollers. Nu wordt een host altijd door slechts één IPMI-poller tegelijk gepeild, waardoor het aantal open verbindingen met BMC-controllers wordt verminderd. Met deze wijzigingen kunt u het aantal IPMI-pollers veilig verhogen zonder u zorgen te hoeven maken over overbelasting van BMC-controllers. Het IPMI-beheerproces wordt automatisch gestart wanneer ten minste één IPMI-poller wordt gestart.
Zie ook bekende problemen met betrekking tot IPMI-controles.
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.
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:
Verwijder het commentaarsteken en stel het aantal pollers in op bijvoorbeeld 3, zodat het als volgt wordt gelezen:
Sla het bestand op en herstart vervolgens zabbix_server.
Bij het configureren van een item op hostniveau:
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.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. |
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.
Om sensoren op een host te vinden, start u de Zabbix-server met DebugLevel=4 ingeschakeld. Wacht enkele minuten en zoek de records voor sensorontdekking in het Zabbix-serverlogboek:
$ 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'
8358:20130318:111122.171 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:16 id:'P1 Therm Ctrl %' reading_type:0x1 ('threshold') type:0x1 ('temperature') full_name:'(3.1).P1 Therm Ctrl %'
8358:20130318:111122.172 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:16 id:'P1 Therm Margin' reading_type:0x1 ('threshold') type:0x1 ('temperature') full_name:'(3.2).P1 Therm Margin'
8358:20130318:111122.172 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:13 id:'System Fan 2' reading_type:0x1 ('threshold') type:0x4 ('fan') full_name:'(29.1).System Fan 2'
8358:20130318:111122.172 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:13 id:'System Fan 3' reading_type:0x1 ('threshold') type:0x4 ('fan') full_name:'(29.1).System Fan 3'
8358:20130318:111122.172 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:14 id:'P1 Mem Margin' reading_type:0x1 ('threshold') type:0x1 ('temperature') full_name:'(7.6).P1 Mem Margin'
8358:20130318:111122.172 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:17 id:'Front Panel Temp' reading_type:0x1 ('threshold') type:0x1 ('temperature') full_name:'(7.6).Front Panel Temp'
8358:20130318:111122.173 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:15 id:'Baseboard Temp' reading_type:0x1 ('threshold') type:0x1 ('temperature') full_name:'(7.6).Baseboard Temp'
8358:20130318:111122.173 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:9 id:'BB +5.0V' reading_type:0x1 ('threshold') type:0x2 ('voltage') full_name:'(7.1).BB +5.0V'
8358:20130318:111122.173 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:14 id:'BB +3.3V STBY' reading_type:0x1 ('threshold') type:0x2 ('voltage') full_name:'(7.1).BB +3.3V STBY'
8358:20130318:111122.173 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:9 id:'BB +3.3V' reading_type:0x1 ('threshold') type:0x2 ('voltage') full_name:'(7.1).BB +3.3V'
8358:20130318:111122.173 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:17 id:'BB +1.5V P1 DDR3' reading_type:0x1 ('threshold') type:0x2 ('voltage') full_name:'(7.1).BB +1.5V P1 DDR3'
8358:20130318:111122.173 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:17 id:'BB +1.1V P1 Vccp' reading_type:0x1 ('threshold') type:0x2 ('voltage') full_name:'(7.1).BB +1.1V P1 Vccp'
8358:20130318:111122.174 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:14 id:'BB +1.05V PCH' reading_type:0x1 ('threshold') type:0x2 ('voltage') full_name:'(7.1).BB +1.05V PCH'
Om IPMI-sensortypes en -staten te decoderen, kunt u een kopie krijgen van de IPMI 2.0-specificaties op de website van Intel: IPMI-specificaties (Op het moment van schrijven was het nieuwste document te vinden op: 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 de "reading_type"-code te decoderen. De meeste sensoren in ons voorbeeld hebben "reading_type:0x1", wat "threshold" sensor betekent. "Table 42-3, Sensor Type Codes" laat zien dat "type:0x1" een temperatuursensor is, "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 is een sensor met "reading_type:0x3". "Table 42-1, Event/Reading Type Code Ranges" zegt dat leestypecodes 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" laat "Table 42-3, Sensor Type Codes" zien 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 de betekenis van bits te decoderen. Bijvoorbeeld, sensor 'Power Unit Stat' heeft het type "type:0x9", wat "Power Unit" betekent. 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 kan er als volgt uitzien:
bitand(last(/www.example.com/Power Unit Stat,#1),1)=1
om te waarschuwen voor een uitgeschakelde server.
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.
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.
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.