您可以在 Zabbix 中监控智能平台管理接口(IPMI)设备的健康状况和可用性。要执行 IPMI 检查,Zabbix server 必须首先 4-配置源代码 并启用 IPMI 支持。
IPMI 是用于远程“带外”或“非带内”管理计算机系统的标准化接口。它允许直接从所谓的“非带内”管理卡监控硬件状态,而无需依赖操作系统或机器是否开机。
Zabbix 的 IPMI 监控仅适用于支持 IPMI 的设备(如 HP iLO、DELL DRAC、IBM RSA、Sun SSP 等)。
IPMI 管理器进程负责调度 IPMI 检查任务给 IPMI 轮询器。一个主机 在任意时刻仅由一个 IPMI 轮询器轮询,从而减少与 BMC 控制器的连接数。因此,可以安全地增加 IPMI 轮询器的数量,而无需担心 BMC 控制器过载。当至少有一个 IPMI 轮询器启动时,IPMI 管理器进程会自动启动。
另请参阅 ipmi检查 了解有关 IPMI 检查的更多信息。
必须配置一个主机以处理IPMI检查。需要添加一个IPMI接口,设置相应的IP地址和端口号,并定义IPMI认证参数。
更多详细信息,请参阅configuration of hosts。
默认情况下,Zabbix server 未配置为启动任何 IPMI 轮询器,因此任何添加的 IPMI 监控项 都将无法工作。要更改此设置,请以 root 身份打开 Zabbix server 配置 file(zabbix_server.conf),并查找以下行:
取消注释该行,并将轮询器数量设置为例如 3,修改后的内容如下所示:
保存 file 并随后重启 zabbix_server。
当在 一个主机 级别上 configuring an item:
id:
- 指定传感器 ID;name:
- 用于指定传感器全名。这在以下场景中可能非常有用: 传感器只能通过指定来区分的情况 完整名称。IPMI agent 支持内置的 监控项 ipmi.get,该功能返回与IPMI传感器相关的信息,并可用于 概述。 返回值:JSON object
IPMI消息超时和重试次数由OpenIPMI库定义。
由于OpenIPMI的当前设计,无法在Zabbix中对接口或监控项级别的这些值进行配置。
LAN的IPMI会话非活动超时为60 +/-3秒。目前无法通过OpenIPMI实现周期性发送Activate Session命令。
如果Zabbix在BMC中配置的会话超时时间内未向特定BMC发送任何IPMI 监控项检查,则超时后下一次IPMI检查将由于单个消息超时、重试或接收错误而失败。
之后将打开一个新会话,并启动对BMC的完整重新扫描。可能会打开一个新的UDP端口以管理新会话。
非活动性的定义是既没有发出请求,也没有接收响应。
如果希望避免对BMC进行不必要的重新扫描,建议将IPMI 监控项轮询间隔设置为低于BMC中配置的IPMI会话非活动超时值。
要查找一个主机上的传感器,请以启用DebugLevel=4的方式启动Zabbix server。等待几分钟后,在Zabbix服务器的日志文件中查找传感器发现记录:
$ grep 'Added sensor' zabbix_server.log
8358:20130318:111122.170 Added sensor: 主机:'192.168.1.12:623' id_type:0 id_sz:7 id:'CATERR' reading_type:0x3 ('discrete_state') type:0x7 ('中央处理器') full_name:'(r0.32.3.0).CATERR'
8358:20130318:111122.170 Added sensor: 主机:'192.168.1.12:623' id_type:0 id_sz:15 id:'CPU Therm Trip' reading_type:0x3 ('discrete_state') type:0x1 ('温度') full_name:'(7.1).CPU Therm Trip'
8358:20130318:111122.171 Added sensor: 主机:'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: 主机:'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: 主机:'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: 主机:'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: 主机:'192.168.1.12:623' id_type:0 id_sz:16 id:'P1 Therm Ctrl %' reading_type:0x1 ('threshold') type:0x1 ('温度') full_name:'(3.1).P1 Therm Ctrl %'
8358:20130318:111122.172 Added sensor: 主机:'192.168.1.12:623' id_type:0 id_sz:16 id:'P1 Therm Margin' reading_type:0x1 ('threshold') type:0x1 ('温度') full_name:'(3.2).P1 Therm Margin'
8358:20130318:111122.172 Added sensor: 主机:'192.168.1.12:623' id_type:0 id_sz:13 id:'System Fan 2' reading_type:0x1 ('threshold') type:0x4 ('风扇') full_name:'(29.1).System Fan 2'
8358:20130318:111122.172 Added sensor: 主机:'192.168.1.12:623' id_type:0 id_sz:13 id:'System Fan 3' reading_type:0x1 ('threshold') type:0x4 ('风扇') full_name:'(29.1).System Fan 3'
8358:20130318:111122.172 Added sensor: 主机:'192.168.1.12:623' id_type:0 id_sz:14 id:'P1 Mem Margin' reading_type:0x1 ('threshold') type:0x1 ('温度') full_name:'(7.6).P1 Mem Margin'
8358:20130318:111122.172 Added sensor: 主机:'192.168.1.12:623' id_type:0 id_sz:17 id:'Front Panel Temp' reading_type:0x1 ('threshold') type:0x1 ('温度') full_name:'(7.6).Front Panel Temp'
8358:20130318:111122.173 Added sensor: 主机:'192.168.1.12:623' id_type:0 id_sz:15 id:'Baseboard Temp' reading_type:0x1 ('threshold') type:0x1 ('温度') full_name:'(7.6).Baseboard Temp'
8358:20130318:111122.173 Added sensor: 主机:'192.168.1.12:623' id_type:0 id_sz:9 id:'BB +5.0V' reading_type:0x1 ('threshold') type:0x2 ('电压') full_name:'(7.1).BB +5.0V'
8358:20130318:111122.173 Added sensor: 主机:'192.168.1.12:623' id_type:0 id_sz:14 id:'BB +3.3V STBY' reading_type:0x1 ('threshold') type:0x2 ('电压') full_name:'(7.1).BB +3.3V STBY'
8358:20130318:111122.173 Added sensor: 主机:'192.168.1.12:623' id_type:0 id_sz:9 id:'BB +3.3V' reading_type:0x1 ('threshold') type:0x2 ('电压') full_name:'(7.1).BB +3.3V'
8358:20130318:111122.173 Added sensor: 主机:'192.168.1.12:623' id_type:0 id_sz:17 id:'BB +1.5V P1 DDR3' reading_type:0x1 ('threshold') type:0x2 ('电压') full_name:'(7.1).BB +1.5V P1 DDR3'
8358:20130318:111122.173 Added sensor: 主机:'192.168.1.12:623' id_type:0 id_sz:17 id:'BB +1.1V P1 Vccp' reading_type:0x1 ('threshold') type:0x2 ('电压') full_name:'(7.1).BB +1.1V P1 Vccp'
8358:20130318:111122.174 Added sensor: 主机:'192.168.1.12:623' id_type:0 id_sz:14 id:'BB +1.05V PCH' reading_type:0x1 ('threshold') type:0x2 ('电压') full_name:'(7.1).BB +1.05V PCH'
要解码IPMI传感器类型和状态,可以参考copy的IPMI 2.0 specifications(请注意,no further updates到IPMI规范的链接计划中)。
开始时首先要处理的参数是"reading_type"。使用规范中的"Table 42-1, Event/Reading Type Code Ranges"来解码"reading_type"代码。在我们的示例中,大多数传感器的"reading_type:0x1"表示"threshold"传感器。"Table 42-3, Sensor Type Codes"显示"type:0x1"表示温度传感器,"type:0x2"表示电压传感器,"type:0x4"表示风扇等。阈值传感器有时被称为"analog"传感器,因为它们测量的是连续参数,如温度、电压、每分钟转数。
另一个例子是"reading_type:0x3"的传感器。"Table 42-1, Event/Reading Type Code Ranges"指出,读取类型代码02h-0Ch表示"Generic Discrete"传感器。离散传感器最多有15种可能的状态(换句话说,最多有15个有意义的位)。例如,对于类型为"type:0x7"的传感器'CATERR',"Table 42-3, Sensor Type Codes"显示该类型表示"Processor",各个位的含义是:00h(最低有效位)表示IERR,01h表示Thermal Trip等。
在我们的示例中,有几个传感器的"reading_type:0x6f"。对于这些传感器,"Table 42-1, Event/Reading Type Code Ranges"建议使用"Table 42-3, Sensor Type Codes"来解码位的含义。例如,传感器'Power Unit Stat'的类型为"type:0x9",表示"Power Unit"。偏移量00h表示"PowerOff/Power Down"。换句话说,如果最低有效位是1,则服务器已关闭电源。要测试这个位,可以使用bitand
函数和掩码'1'。触发器表达式可以如下:
用于警告服务器电源关闭。
OpenIPMI-2.0.16、2.0.17 以及 2.0.18 中离散传感器的名称通常会在末尾附加一个 "0
"(或其它数字或字母)。例如,虽然在 ipmitool
和 OpenIPMI-2.0.19 中传感器名称显示为 "PhysicalSecurity
" 或 "CATERR
",但在 OpenIPMI-2.0.16、2.0.17 和 2.0.18 中,这些名称分别为 "PhysicalSecurity0
" 或 "CATERR0
"。
当使用 OpenIPMI-2.0.16、2.0.17 或 2.0.18 配置带有 Zabbix server 的 IPMI 监控项 时,在 IPMI agent 监控项 的 IPMI sensor 字段中请使用以 "0" 结尾的这些名称。当您的 Zabbix server 升级到使用 OpenIPMI-2.0.19(或更高版本)的新版 Linux 发行版时,使用这些 IPMI 离散传感器的 监控项 将变为 "NOT SUPPORTED"(不支持)。您必须更改它们的 IPMI sensor 名称(去掉末尾的 '0'),并等待一段时间后它们才会再次变为 "Enabled"(已启用)。
某些IPMI agents 在同一名称下同时提供阈值传感器和离散传感器。系统始终优先选择阈值传感器。
如果IPMI检查未执行(无论何种原因:所有主机的IPMI监控项被禁用/不支持、主机被禁用/删除、主机处于维护模式等),IPMI连接将在3内根据Zabbix server或proxy启动时间,于4小时后由Zabbix server/proxy终止。