夜莺-Nightingale
夜莺V6
项目介绍 架构介绍
快速开始
黄埔营
安装部署
升级
采集器
使用手册
API
数据库表结构
FAQ
夜莺专业版
开源生态
Prometheus
版权声明
第1章:天降奇兵
第2章:探索PromQL
第3章:Prometheus告警处理
第4章:Exporter详解
第5章:数据与可视化
第6章:集群与高可用
第7章:Prometheus服务发现
第8章:监控Kubernetes
第9章:Prometheus Operator
参考资料

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

版本2

  • ipmi_xxxx:
    • tags:
      • entity_id (可以用来区分重复指标)
      • status_code (两个字符的状态码)
      • status_desc (状态吗的扩展描述字段)
      • unit (单位)
      • host
      • server (远程采集才会有)
      • description
    • fields:
      • xxxx

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 版本中仍然保。
开源版
Flashcat
Flashduty