你可以在Zabbix中监控智能平台管理接口(IPMI)设备的运行状况和可用性。要执行IPMI检查,Zabbix server必须首先配置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接口,必须定义相应的IP和端口号,并且必须定义IPMI认证参数。
更多细节请查看 主机配置 。
默认情况下,Zabbix server未配置为启动任何IPMI轮询,因此任何添加的IPMI监控项将无法正常工作。要更改此选项,请以root身份打开Zabbix server配置文件(zabbix_server.conf) 并查找以下行:
取消注释,并设置 IPMI Poller 计数为3,如下:
保存文件,然后重启 zabbix_server 。
配置主机级别的监控项:
id:
- 指定传感器 ID;name:
- 指定传感器全名。 这在传感器只能通过指定全名来区分的情况下非常有用.IPMI agent 支持内置监控项 ipmi.get,该监控项返回与 IPMI 传感器相关的信息,并可用于 IPMI 传感器的自动发现。
返回值:JSON 对象
IPMI 消息超时和重试次数在 OpenIPMI 库中定义。 由于 OpenIPMI 当前的设计,这些值在 Zabbix 中无法配置,无论是在接口级别还是监控项级别。
对于局域网,IPMI 会话空闲超时为 60 +/-3 秒。目前,使用 OpenIPMI 实现定期发送 Activate Session 命令是不可能的。如果 Zabbix 在超过 BMC 中配置的会话超时时间后没有向特定的 BMC 发送 IPMI 监控项检查,那么超时过后的下一次 IPMI 检查将因单个消息超时、重试或接收错误而超时。之后,将打开一个新的会话,并启动对 BMC 的完整重新扫描。可能打开一个新的 UDP 端口来管理新的会话。空闲状态由没有出站请求和入站响应定义。为了避免不必要的 BMC 重新扫描,建议将 IPMI 监控项轮询间隔设置为低于 BMC 中配置的 IPMI 会话空闲超时时间。
为了在主机上查找传感器,启动Zabbix服务器时需启用DebugLevel=4。 等待几分钟后,在Zabbix服务器日志文件中查找传感器发现记录:
$ grep 'Added sensor' zabbix_server.log
8358:20130318:111122.170 添加传感器: 主机:'192.168.1.12:623' id_type:0 id_sz:7 id:'CATERR' 读取类型:0x3 ('离散状态') 类型:0x7 ('处理器') 完整名称:'(r0.32.3.0).CATERR'
8358:20130318:111122.170 添加传感器: 主机:'192.168.1.12:623' id_type:0 id_sz:15 id:'CPU Therm Trip' 读取类型:0x3 ('离散状态') 类型:0x1 ('温度') 完整名称:'(7.1).CPU Therm Trip'
8358:20130318:111122.171 添加传感器: 主机:'192.168.1.12:623' id_type:0 id_sz:17 id:'System Event Log' 读取类型:0x6f ('传感器特定') 类型:0x10 ('事件日志禁用') 完整名称:'(7.1).System Event Log'
8358:20130318:111122.171 添加传感器: 主机:'192.168.1.12:623' id_type:0 id_sz:17 id:'PhysicalSecurity' 读取类型:0x6f ('传感器特定') 类型:0x5 ('物理安全') 完整名称:'(23.1).PhysicalSecurity'
8358:20130318:111122.171 添加传感器: 主机:'192.168.1.12:623' id_type:0 id_sz:14 id:'IPMI Watchdog' 读取类型:0x6f ('传感器特定') 类型:0x23 ('看门狗_2') 完整名称:'(7.7).IPMI Watchdog'
8358:20130318:111122.171 添加传感器: 主机:'192.168.1.12:623' id_type:0 id_sz:16 id:'Power Unit Stat' 读取类型:0x6f ('传感器特定') 类型:0x9 ('电源单元') 完整名称:'(21.1).Power Unit Stat'
8358:20130318:111122.171 添加传感器: 主机:'192.168.1.12:623' id_type:0 id_sz:16 id:'P1 Therm Ctrl %' 读取类型:0x1 ('阈值') 类型:0x1 ('温度') 完整名称:'(3.1).P1 Therm Ctrl %'
8358:20130318:111122.172 添加传感器: 主机:'192.168.1.12:623' id_type:0 id_sz:16 id:'P1 Therm Margin' 读取类型:0x1 ('阈值') 类型:0x1 ('温度') 完整名称:'(3.2).P1 Therm Margin'
8358:20130318:111122.172 添加传感器: 主机:'192.168.1.12:623' id_type:0 id_sz:13 id:'System Fan 2' 读取类型:0x1 ('阈值') 类型:0x4 ('风扇') 完整名称:'(29.1).System Fan 2'
8358:20130318:111122.172 添加传感器: 主机:'192.168.1.12:623' id_type:0 id_sz:13 id:'System Fan 3' 读取类型:0x1 ('阈值') 类型:0x4 ('风扇') 完整名称:'(29.1).System Fan 3'
8358:20130318:111122.172 添加传感器: 主机:'192.168.1.12:623' id_type:0 id_sz:14 id:'P1 Mem Margin' 读取类型:0x1 ('阈值') 类型:0x1 ('温度') 完整名称:'(7.6).P1 Mem Margin'
8358:20130318:111122.172 添加传感器: 主机:'192.168.1.12:623' id_type:0 id_sz:17 id:'Front Panel Temp' 读取类型:0x1 ('阈值') 类型:0x1 ('温度') 完整名称:'(7.6).Front Panel Temp'
8358:20130318:111122.173 添加传感器: 主机:'192.168.1.12:623' id_type:0 id_sz:15 id:'Baseboard Temp' 读取类型:0x1 ('阈值') 类型:0x1 ('温度') 完整名称:'(7.6).Baseboard Temp'
8358:20130318:111122.173 添加传感器: 主机:'192.168.1.12:623' id_type:0 id_sz:9 id:'BB +5.0V' 读取类型:0x1 ('阈值') 类型:0x2 ('电压') 完整名称:'(7.1).BB +5.0V'
8358:20130318:111122.173 添加传感器: 主机:'192.168.1.12:623' id_type:0 id_sz:14 id:'BB +3.3V STBY' 读取类型:0x1 ('阈值') 类型:0x2 ('电压') 完整名称:'(7.1).BB +3.3V STBY'
8358:20130318:111122.173 添加传感器: 主机:'192.168.1.12:623' id_type:0 id_sz:9 id:'BB +3.3V' 读取类型:0x1 ('阈值') 类型:0x2 ('电压') 完整名称:'(7.1).BB +3.3V'
8358:20130318:111122.173 添加传感器: 主机:'192.168.1.12:623' id_type:0 id_sz:17 id:'BB +1.5V P1 DDR3' 读取类型:0x1 ('阈值') 类型:0x2 ('电压') 完整名称:'(7.1).BB +1.5V P1 DDR3'
8358:20130318:111122.173 添加传感器: 主机:'192.168.1.12:623' id_type:0 id_sz:17 id:'BB +1.1V P1 Vccp' 读取类型:0x1 ('阈值') 类型:0x2 ('电压') 完整名称:'(7.1).BB +1.1V P1 Vccp'
8358:20130318:111122.174 添加传感器: 主机:'192.168.1.12:623' id_type:0 id_sz:14 id:'BB +1.05V PCH' 读取类型:0x1 ('阈值') 类型:0x2 ('电压') 完整名称:'(7.1).BB +1.05V PCH'
为了解码IPMI传感器类型和状态,可以获取 IPMI 2.0规范 的副本(请注意,不再有进一步的更新 计划对IPMI规范进行更新)。
首先需要关注的参数是"reading_type"。使用规范中的"Table 42-1, 事件/读取类型代码范围"来解码"reading_type"代码。在我们的示例中,大多数传感器的 "reading_type:0x1"表示"阈值"传感器。"Table 42-3, 传感器类型代码"显示 "type:0x1"意味着温度传感器,"type:0x2" - 电压传感器,"type:0x4" - 风扇等。阈值传感器有时被称为"模拟"传感器,因为它们测量连续参数,如温度、电压、每分钟转数。
另一个例子 - 一个具有"reading_type:0x3"的传感器。"Table 42-1, 事件/读取类型代码范围"表明读取类型代码02h-0Ch表示"通用离散"传感器。离散传感器最多有15种可能的状态(换句话说,最多有15个有意义的位)。例如,对于类型为"type:0x7"的传感器'CATERR',"Table 42-3, 传感器类型代码"显示此类型意味着"处理器",各个位的含义是:00h(最低有效位)- IERR,01h - 热敏跳闸等。
在我们的示例中,有少数传感器的"reading_type:0x6f"。对于这些传感器,"Table
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配置 IPMI 监控项时,请在IPMI代理监控项的IPMI 传感器字段中使用以“0”结尾的名称。当你的Zabbix server升级到使用OpenIPMI-2.0.19(或更高版本)的新Linux发行版时,具有这些IPMI离散传感器的监控项将变为“不支持”。你必须更改其IPMI 传感器名称(最后删除“0”),并等待一段时间才能再次转为"Enabled"。
某些 IPMI 代理以相同的名称提供阈值传感器和离散传感器。始终优先考虑阈值传感器。
如果不执行IPMI检查(由于任何原因:所有主机IPMI监控项禁用/不支持、主机已禁用/已删除、主机维护等),IPMI连接将从Zabbix server 或 proxy 终止3到4小时,具体时间取决于Zabbix server/proxy 何时启动。