IPMI (experimental Go collector)
IPMI (experimental Go collector) documentationIPMI (experimental Go collector)
Plugin: ipmi.plugin Module: ipmi
Overview
Monitor hardware sensor readings, sensor health and System Event Log entries through IPMI.
Queries the local Linux OpenIPMI device. The collector reads sensors and SEL metadata; it does not change BMC configuration or clear the event log.
This collector is only supported on the following platforms:
- Linux
This collector supports collecting metrics from multiple instances of this integration.
Local collection requires read/write access to the selected OpenIPMI device. Installation grants no setuid mode, capabilities or device permissions.
Default Behavior
Auto-Detection
No jobs start by default. Build the experimental plugin explicitly and configure the target.
Limits
This experimental plugin requires Linux amd64 or arm64 and supports local OpenIPMI only. Keep FreeIPMI for legacy direct drivers, OEM interpretation or custom FreeIPMI interpretation files. Unknown or unavailable sensor readings leave gaps. Default FreeIPMI policy treats non-critical threshold assertions as nominal. Do not run both IPMI plugins against the same host with the canonical ipmi job name because chart IDs overlap. The Go collector uses separate ipmi_go.* contexts and the ipmi-go-sensors Function.
Performance Impact
IPMI command latency grows with sensor count. Increase update_every when a complete sensor scan takes longer than the configured interval.
Setup
Prerequisites
Build the experimental plugin
Run sudo ./netdata-installer.sh --enable-plugin-ipmi from a source checkout. The option is OFF in production builds. Installation uses ordinary executable permissions.
Select one IPMI plugin
Before activating a Go IPMI job, set freeipmi = no in the [plugins] section of netdata.conf. Use a trusted configuration and explicit sudo invocation for local debugging when the device is root-only. For normal Agent execution, arrange device access according to the host security policy.
Configuration
Options
Options apply to each local IPMI job. Remote LAN/LAN+ is not supported in this experimental build.
| Group | Option | Description | Default | Required |
|---|---|---|---|---|
| Connection | driver | Local Linux OpenIPMI transport. Only open is supported. | open | no |
| device | Local OpenIPMI device number. | 0 | no | |
| Collection | update_every | Data collection frequency in seconds. | 5 | no |
| timeout | Receive timeout for each IPMI command. Stopping a job can wait for an in-flight receive to finish. | 5s | no | |
| collect_sel | Collect the System Event Log entry count. | yes | no |
via File
The configuration file name for this integration is ipmi/ipmi.conf.
You can edit the configuration file using the edit-config script from the
Netdata config directory.
cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
sudo ./edit-config ipmi/ipmi.conf
Examples
Local device
Monitor the first kernel IPMI device.
jobs:
- name: ipmi
driver: open
Metrics
Metrics grouped by scope.
The scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.
Each sensor has its own reading and state chart. SEL is the raw repository entry count, including records FreeIPMI may filter during interpretation. The stock SEL alarm targets the canonical local ipmi.events chart; other job chart IDs include the job name.
Per sensor
A sensor on the selected BMC.
Labels:
| Label | Description |
|---|---|
| sensor | Sensor name. |
| type | IPMI sensor type. |
| component | Component inferred from the sensor name and type. |
Metrics:
| Metric | Description | Dimensions | Unit |
|---|---|---|---|
| ipmi_go.sensor_temperature_c | IPMI Sensor Temperature | temperature | Celsius |
| ipmi_go.sensor_temperature_f | IPMI Sensor Temperature | temperature | Fahrenheit |
| ipmi_go.sensor_voltage | IPMI Sensor Voltage | voltage | Volts |
| ipmi_go.sensor_ampere | IPMI Sensor Current | ampere | Amps |
| ipmi_go.sensor_fan_speed | IPMI Sensor Fan Speed | rotations | RPM |
| ipmi_go.sensor_power | IPMI Sensor Power | power | Watts |
| ipmi_go.sensor_reading_percent | IPMI Sensor Percentage Reading | percentage | % |
| ipmi_go.sensor_state | IPMI Sensor State | nominal, warning, critical, unknown | state |
Per IPMI (experimental Go collector) instance
The selected BMC System Event Log.
This scope has no labels.
Metrics:
| Metric | Description | Dimensions | Unit |
|---|---|---|---|
| ipmi_go.sel | IPMI System Event Log Entries | events | events |
Alerts
The following alerts are available:
| Alert name | On metric | Description |
|---|---|---|
| ipmi_go_sensor_state | ipmi_go.sensor_state | IPMI sensor ${label:sensor} (${label:component}) state |
| ipmi_events | ipmi_go.sel | number of events in the IPMI System Event Log (SEL) |
Live Data
Inspect the latest successful collection without issuing more IPMI commands.
IPMI Sensors
Show current readings and default FreeIPMI health states, with sensor counts by component and state.
| Aspect | Description |
|---|---|
| Name | Ipmi-go-sensors |
| Require Cloud | no |
| Performance | Reads the latest completed snapshot without additional BMC requests. |
| Security | Read-only sensor data from the configured target. |
| Availability | Available while a collection job runs. Returns HTTP 503 before the first successful collection or after a collection failure. |
Prerequisites
No additional configuration is required.
Parameters
| Parameter | Type | Description | Required | Default | Options |
|---|---|---|---|---|---|
| Instance | select | Select the IPMI collection job. | no | First available job |
Returns
One row per discovered full or compact sensor record, expanded for sharing. Unavailable numeric readings are null.
| Column | Type | Unit | Visibility | Description |
|---|---|---|---|---|
| Sensor | string | Sensor name. | ||
| Type | string | IPMI sensor type. | ||
| Component | string | Component inferred from the sensor name and type. | ||
| Reading | float | Current reading; null when unavailable. | ||
| Units | string | Reading units; null for discrete sensors. | ||
| State | string | Default FreeIPMI health interpretation. | ||
| Key | string | hidden | Stable sensor identity within the collection job. | |
| rowOptions | none | hidden | Row health severity. |
Troubleshooting
Known Errors
permission denied
Cause
The plugin account cannot open the local IPMI device for reading and writing.
Fix
Grant device access through the host security policy, or run a trusted local test explicitly with sudo. Rebuilding the plugin does not grant device access.
The observability platform companies need to succeed
Sign up for freeWant a personalised demo of Netdata for your use case?






