Skip to main content

IPMI (experimental Go collector)

IPMI (experimental Go collector)

Plugin: ipmi.plugin Module: ipmi

Maintained by Netdata

Overview​

Monitor hardware sensor readings, sensor health and System Event Log entries through IPMI.

Queries a local Linux OpenIPMI device or a remote BMC over IPMI 1.5 LAN or IPMI 2.0 LAN+ using the configured account. 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.

PermissionNeeded when
Read/write access to the selected OpenIPMI deviceCollecting locally with driver: open.
BMC account with User privilege and LAN accessCollecting remotely with driver: lan or driver: lanplus. Some BMC policies require a higher session privilege.

Installation grants no setuid mode, capabilities or device permissions. Remote collection requires no elevated privileges on the Agent host.

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. 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 collecting the same host with the canonical ipmi job name, 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.

Enable remote BMC access​

For LAN/LAN+, enable IPMI over LAN on the BMC, configure an account with User privilege, and allow UDP traffic from the Agent to the BMC port (623 by default). Select a higher privilege only if the BMC access policy requires it.

Configuration​

Options​

Options apply to each IPMI job. Configure one local device or remote BMC per job.

GroupOptionDescriptionDefaultRequired
ConnectiondriverIPMI transport: local Linux OpenIPMI, IPMI 1.5 LAN or IPMI 2.0 LAN+.openno
deviceLocal OpenIPMI device number.0no
hostnameBMC hostname or IP address for LAN/LAN+, without a URL scheme or port.yes
portBMC UDP port for LAN/LAN+.623no
usernameBMC account for LAN/LAN+. Leave empty only for anonymous access.no
passwordBMC account password for LAN/LAN+. Leave empty only if the account has no password.no
privilege_levelSession privilege requested from the BMC. User privilege is sufficient for standard sensor and SEL commands.userno
Collectionupdate_everyData collection frequency in seconds.5no
timeoutTimeout for session setup and for each IPMI command.5sno
collect_selCollect the System Event Log entry count.yesno
Virtual NodevnodeAssociates this job with a Virtual Node.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

Remote BMC​

Monitor a remote BMC using IPMI 2.0. Use driver lan for BMCs that require IPMI 1.5.

jobs:
- name: server-bmc
driver: lanplus
hostname: bmc.example
username: monitor
password: '${env:IPMI_PASSWORD}'

Attach a remote BMC to a virtual node​

Define server-node in vnodes.conf first. Without vnode, metrics belong to the Agent host.

jobs:
- name: server-bmc
driver: lanplus
hostname: bmc.example
username: monitor
password: '${env:IPMI_PASSWORD}'
vnode: server-node

Alerts​

The following alerts are available:

Alert nameOn metricDescription
ipmi_go_sensor_state ipmi_go.sensor_stateIPMI sensor ${label:sensor} (${label:component}) state
ipmi_events ipmi_go.selnumber of events in the IPMI System Event Log (SEL)

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:

LabelDescription
sensorSensor name.
typeIPMI sensor type.
componentComponent inferred from the sensor name and type.

Metrics:

MetricDescriptionDimensionsUnit
ipmi_go.sensor_temperature_cIPMI Sensor TemperaturetemperatureCelsius
ipmi_go.sensor_temperature_fIPMI Sensor TemperaturetemperatureFahrenheit
ipmi_go.sensor_voltageIPMI Sensor VoltagevoltageVolts
ipmi_go.sensor_ampereIPMI Sensor CurrentampereAmps
ipmi_go.sensor_fan_speedIPMI Sensor Fan SpeedrotationsRPM
ipmi_go.sensor_powerIPMI Sensor PowerpowerWatts
ipmi_go.sensor_reading_percentIPMI Sensor Percentage Readingpercentage%
ipmi_go.sensor_stateIPMI Sensor Statenominal, warning, critical, unknownstate

Per IPMI (experimental Go collector) instance​

The selected BMC System Event Log.

This scope has no labels.

Metrics:

MetricDescriptionDimensionsUnit
ipmi_go.selIPMI System Event Log Entrieseventsevents

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.

AspectDescription
NameIpmi-go-sensors
Require Cloudno
PerformanceReads the latest completed snapshot without additional BMC requests.
SecurityRead-only sensor data from the configured target.
AvailabilityAvailable 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​

ParameterTypeDescriptionRequiredDefaultOptions
InstanceselectSelect the IPMI collection job.noFirst available job

Returns​

One row per discovered full or compact sensor record, expanded for sharing. Unavailable numeric readings are null.

ColumnTypeUnitVisibilityDescription
SensorstringSensor name.
TypestringIPMI sensor type.
ComponentstringComponent inferred from the sensor name and type.
ReadingfloatCurrent reading; null when unavailable.
UnitsstringReading units; null for discrete sensors.
StatestringDefault FreeIPMI health interpretation.
KeystringhiddenStable sensor identity within the collection job.
rowOptionsnonehiddenRow 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.


Do you have any feedback for this page? If so, you can open a new issue on our netdata/learn repository.