You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Prometheus中基于IPMI Exporter筛选HP服务器高温查询问题排查

问题排查与解决方案

核心问题:指标标签不匹配导致关联失败

你的查询用and同时过滤ipmi_bmc_info和ipmi_temperature_celsius两个指标,但Prometheus的and操作要求两边的时间序列所有标签完全一致才能匹配。ipmi_bmc_info(BMC信息指标)通常只有服务器级别的标签(比如instance、manufacturer_id),而ipmi_temperature_celsius(温度指标)会额外包含传感器级别的标签(比如name),两者标签集不重合,所以and会直接过滤掉所有结果。

正确的查询写法

要实现按制造商区分阈值的温度告警,需要用group_left关联两个指标的共同标签(比如instance,代表单台服务器),把制造商信息关联到温度序列上,再分别设置阈值:

ipmi_temperature_celsius{job="ipmi",name=~"02-CPU.*"}
  * on(instance) group_left(manufacturer_id) ipmi_bmc_info{job="ipmi"}
  > on(instance,manufacturer_id) group_left() 
  (
    ipmi_bmc_info{job="ipmi",manufacturer_id="Hewlett-Packard (11)"} * 40
    or
    ipmi_bmc_info{job="ipmi",manufacturer_id="Supermicro (10876)"} * 50
  )

写法说明

  1. 先获取CPU温度序列,用name=~"02-CPU.*"匹配所有CPU传感器(避免仅匹配单个CPU 1)
  2. 通过on(instance) group_left(manufacturer_id)将ipmi_bmc_info中的manufacturer_id标签关联到温度序列上
  3. 最后用on(instance,manufacturer_id)匹配对应制造商的阈值:HP服务器用40℃,超微用50℃

额外优化建议

  • 先确认ipmi_bmc_info的manufacturer_id值是否正确:执行ipmi_bmc_info{job="ipmi"}查看实际返回的制造商标识,比如超微可能是"Supermicro (10876)",需要和实际数据一致
  • 如果只关注CPU温度,保留name=~"02-CPU.*"的过滤;若要监控所有温度传感器,可去掉该标签过滤

内容的提问来源于stack exchange,提问作者Jairo Serrano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 11:00:46