IPMI 采集插件
监控数据采集器 Categraf 的 IPMI 采集插件介绍
采集硬件的温度、功率、电压等信息
采集原理
v0.3.44(企业版v0.3.65)以前的版本利用ipmitool sdr命令, 采集硬件的温度、功率、电压等信息,并转化为指标。 依赖工具ipmitool ,所以需要安装ipmitool。
新版版的ipmi插件对齐ipmi exporter,利用freeipm套件命令来采集硬件硬件的温度、功率、电压等信息,并转化为指标。
- ipmimonitoring / ipmi-sensors
- ipmi-dcmi
- ipmi-raw
- bmc-info
- ipmi-sel
- ipmi-chassis
无论是ipmitool还是freeipmi, 都需要先自行配置好ipmi。
配置
v0.3.44(企业版v0.3.65)及以上版本:
# Read metrics from the bare metal servers via freeipmi
[[instances]]
# target指定是本地采集还是远程采集
#target="localhost"
# 指定采集的用户名和密码,这里务必保证ipmi命令能获取正确输出,不是网上查到一个用户名 密码就可以。
#user = "user"
#pass = "1234"
# ipmi协议版本,支持1.5 和 2.0
#driver = "LAN_2_0"
# 指定特权用户级别
#privilege = "User"
## session-timeout, ms
#timeout = 100000
# 支持的采集器 bmc, bmc-watchdog, ipmi, chassis, dcmi, sel,sm-lan-mode
# 默认使用 bmc, ipmi, chassis和dcmi,建议保持下列配置便于仪表盘更好的展示
collectors = [ "bmc", "ipmi", "chassis", "sel", "dcmi"]
# 不关注的传感器,指定id 排除掉
#exclude_sensor_ids = [ 2, 29, 32, 50, 52, 55 ]
# 如果你想使用定制化的参数覆盖内置的命令,可以修改以下内容; 建议保持注释
#[instances.collector_cmd]
#ipmi = "sudo"
#sel = "sudo"
#[instances.default_args]
#ipmi = [ "--bridge-sensors" ]
#[instances.custom_args]
#ipmi = [ "--bridge-sensors" ]
#sel = [ "ipmi-sel" ]
v0.3.44 之前版本,请参考:
本地采集需要免密sudo,并且保持servers为空;远程采集需要按照格式配置servers
[[instances]]
## 可选配置,categraf默认会搜索ipmitool,如果ipmitool没有安装到默认路径下,需要显示指定
# path = "/usr/bin/ipmitool"
##
## 本地采集,需要免密sudo权限
use_sudo = true
##
## 默认是ADMINISTRATOR, 有 CALLBACK, USER, OPERATOR, ADMINISTRATOR 可选
# privilege = "ADMINISTRATOR"
##
## 如果servers 为空, 则为本地采集
## [username[:password]@][protocol[(address)]]
# servers = ["ADMIN:PASSW0RD@lan(192.168.1.1)"]
## 采集周期
interval = "30s"
## 采集超时时间
timeout = "20s"
## ipmitool 返回信息格式的版本 ,默认是1
metric_version = 2
## 可选项,ipmi连接 的hex key
# hex_key = ""
## 是否使用cache
## 有用户反馈使用cache会快2-10倍 (硬件:HP G10 servers, OS: ubuntu20.04)
## 不过要注意,如果有些传感器启动比较慢,cache可能会有问题
# use_cache = false
## 设置cache 路径
# cache_path = ""
指标示例
v0.3.44 及以后的指标
ipmi_bmc_info
ipmi_chassis_cooling_fault_state
ipmi_chassis_drive_fault_state
ipmi_chassis_power_state
ipmi_dcmi_power_consumption_watts
ipmi_fan_speed_rpm
ipmi_fan_speed_state
ipmi_power_state
ipmi_power_watts
ipmi_scrape_duration_seconds
ipmi_sel_free_space_bytes
ipmi_sel_logs_count
ipmi_sensor_state
ipmi_sensor_value
ipmi_temperature_celsius
ipmi_temperature_state
ipmi_up
ipmi_voltage_state
ipmi_voltage_volts
......
v0.3.44以前的版本指标 版本1
- ipmi_xxxx:
- tags:
- unit
- host
- server (远程采集时才有)
- status_code
- description
- fields:
- xxxx
- tags:
版本2
- ipmi_xxxx:
- tags:
- entity_id (可以用来区分重复指标)
- status_code (两个字符的状态码)
- status_desc (状态吗的扩展描述字段)
- unit (单位)
- host
- server (远程采集才会有)
- description
- fields:
- xxxx
- tags:
V1版本 远程采集指标示例:
ipmi_cpu1_temp agent_hostname=1.2.3.4 description=40_degrees_c entity_id=3.1 server=192.168.10.173 status_code=ok unit=degrees_c 40
ipmi_cpu2_temp agent_hostname=1.2.3.4 description=42_degrees_c entity_id=3.2 server=192.168.10.173 status_code=ok unit=degrees_c 42
ipmi_pch_temp agent_hostname=1.2.3.4 description=66_degrees_c entity_id=7.1 server=192.168.10.173 status_code=ok unit=degrees_c 66
ipmi_fan3 agent_hostname=1.2.3.4 description=500_rpm entity_id=29.3 server=192.168.10.173 status_code=lnc unit=rpm 500
ipmi_fan4 agent_hostname=1.2.3.4 description=500_rpm entity_id=29.4 server=192.168.10.173 status_code=lnc unit=rpm 500
ipmi_fan5 agent_hostname=1.2.3.4 description=no_reading entity_id=29.5 server=192.168.10.173 status_code=ns status_desc=no_reading 0
V1版本 本地采集指标示例:
ipmi_cpu1_temp agent_hostname=1.2.3.4 description=40_degrees_c status_code=ok unit=degrees_c 40
ipmi_cpu2_temp agent_hostname=1.2.3.4 description=43_degrees_c status_code=ok unit=degrees_c 43
ipmi_pch_temp agent_hostname=1.2.3.4 description=66_degrees_c status_code=ok unit=degrees_c 66
ipmi_fan3 agent_hostname=1.2.3.4 description=500_rpm status_code=nc unit=rpm 500
ipmi_fan4 agent_hostname=1.2.3.4 description=500_rpm status_code=nc unit=rpm 500
ipmi_fan5 agent_hostname=1.2.3.4 description=no_reading status_code=ns 0
V2版本,本地采集指标示例
ipmi_cpu1_temp agent_hostname=1.2.3.4 description=39_degrees_c entity_id=3.1 status_code=ok unit=degrees_c 39
ipmi_cpu2_temp agent_hostname=1.2.3.4 description=42_degrees_c entity_id=3.2 status_code=ok unit=degrees_c 42
ipmi_pch_temp agent_hostname=1.2.3.4 description=66_degrees_c entity_id=7.1 status_code=ok unit=degrees_c 66
ipmi_fan5 agent_hostname=1.2.3.4 description=no_reading entity_id=29.5 status_code=ns status_desc=no_reading 0
ipmi_fan6 agent_hostname=1.2.3.4 description=500_rpm entity_id=29.6 status_code=lnc unit=rpm 500
ipmi_fana agent_hostname=1.2.3.4 description=no_reading entity_id=29.7 status_code=ns status_desc=no_reading 0
V2版本,远程采集指标示例
ipmi_cpu1_temp agent_hostname=1.2.3.4 description=40_degrees_c entity_id=3.1 server=192.168.10.173 status_code=ok unit=degrees_c 40
ipmi_cpu2_temp agent_hostname=1.2.3.4 description=42_degrees_c entity_id=3.2 server=192.168.10.173 status_code=ok unit=degrees_c 42
ipmi_pch_temp agent_hostname=1.2.3.4 description=66_degrees_c entity_id=7.1 server=192.168.10.173 status_code=ok unit=degrees_c 66
ipmi_fan5 agent_hostname=1.2.3.4 description=no_reading entity_id=29.5 server=192.168.10.173 status_code=ns status_desc=no_reading 0
ipmi_fan6 agent_hostname=1.2.3.4 description=500_rpm entity_id=29.6 server=192.168.10.173 status_code=lnc unit=rpm 500
ipmi_fana agent_hostname=1.2.3.4 description=no_reading entity_id=29.7 server=192.168.10.173 status_code=ns status_desc=no_reading 0
- v0.3.10 删除了ipmi v2版本中的
description,因为这个字段在v2中与status_desc语义重复了; v1 版本中仍然保。