Skip to content

Info

License: Free — part of the universal collection tier.

IPMI / BMC Sensors

The ipmi probe reads hardware sensor data from the local machine's Baseboard Management Controller via ipmitool, reporting temperatures, fan speeds, voltages and power supply status.

Linux only. Requires ipmitool and the OpenIPMI kernel driver (ipmi_si).

Quick start

# probes.d/10-ipmi.yaml — each file under probes.d/ is a YAML array of probes
- name: ipmi
  type: ipmi

For local sensors, no parameters are needed. The probe calls ipmitool sdr against the local BMC.

Parameters

Parameter Must set Default Description
mode No local local reads the host's own BMC; remote polls a BMC over LAN. One of local, remote
remote If mode is remote - Remote BMC access, used with mode remote
remote.host No - BMC address or hostname; required with mode remote
remote.username No - IPMI user
remote.password No - IPMI user's password. A secret: reference it with ${secret:…}, ${env:…} or ${file:…} rather than writing it in the file
remote.interface No lanplus ipmitool interface; lanplus for IPMI 2.0, lan for IPMI 1.5
sensors No - Sensor selection
sensors.include_types No - Only these sensor types; empty means all. Example: Temperature, Fan
sensors.exclude_names No - Regular expressions of sensor names to skip
ipmitool_path No ipmitool Path of the ipmitool binary when it is not on the PATH. Example: /usr/bin/ipmitool
interval No 60 Seconds between collections
exec_timeout No 10 Seconds an ipmitool run may take before it is killed

To poll a BMC over the network instead of the host's own, set mode: remote and give the BMC under the remote block. Sensor filters live under the sensors block:

# probes.d/10-ipmi.yaml
- name: ipmi
  type: ipmi
  params:
    mode: remote
    remote:
      host: 10.0.0.50
      username: monitor
      password: ${secret:ipmi.password}   # OS secret store; inline plaintext is auto-sealed on install
      interface: lanplus                  # lan for an IPMI 1.5 BMC
    sensors:
      include_types: [Temperature, Fan]
      exclude_names: ["^PSU2.*"]

Metrics

Metric Unit Description
hardware.temperature Cel Temperature per BMC sensor, tagged with hardware.component
hardware.fan.speed RPM Fan speed per sensor
hardware.voltage V Voltage per sensor
hw.power W Power per sensor (a supply, or the machine's consumption)
senhub.hardware.current A Current per sensor, typically per power supply
hw.status # Sensor status: 1 = ok or non-critical, 0 = critical or non-recoverable

Operational notes

  • The agent must run as root on Linux for ipmitool to access the /dev/ipmi0 device.
  • Load the OpenIPMI driver before starting the agent: modprobe ipmi_si && modprobe ipmi_devintf.
  • Sensor names (the hardware.component tag) come directly from ipmitool sdr output and vary by hardware vendor.
  • Sensors that share a name (Dell calls every CPU temperature Temp) are told apart by their IPMI entity: Temp (CPU 1), Temp (CPU 2). These series also carry the hardware.entity and hardware.sensor_number tags. A sensor whose name is unique keeps it unchanged.
  • A power supply reports 1 when present and redundant, 0 on a critical status, "Redundancy Lost" or a failure; an absent supply ("Device Absent") emits nothing.

Metric reference

Every metric this probe can emit. Metric is the OpenTelemetry name the OTLP, Prometheus and Zabbix outputs derive theirs from. Name is what a Nagios check and the API metrics= filter match. PRTG channel is the label PRTG shows, placeholders filled from the series' tags.

Metric Name PRTG channel Unit Description
hw.temperature hardware.temperature Temp Degrees Celsius Temperature reported by the BMC sensor (degrees Celsius)
hw.fan.speed hardware.fan.speed Fan Speed RPM Fan speed in rotations per minute as reported by the BMC
hw.voltage hardware.voltage Voltage Volts Voltage reported by the BMC sensor (volts)
hw.power hardware.power Power Watts Power reported by the BMC sensor (watts): a supply's output or input, or the machine's consumption
senhub.hardware.current senhub.hardware.current Current Amps Current reported by the BMC sensor (amperes), typically per power supply
hw.status hardware.power_supply.status PSU Status # Power supply status: 1 = ok (present, redundant, or a healthy reading), 0 = fault (critical status, redundancy lost or degraded). An absent supply or one the BMC has no reading for emits no value
hw.status hardware.sensor.status Sensor # Generic BMC sensor status: 1 = ok or non-critical, 0 = critical or non-recoverable. A sensor with no reading (ns) emits no value
senhub.ipmi.up senhub.ipmi.up IPMI Reachable # 1 when ipmitool ran successfully and the BMC responded, 0 otherwise