[Bug] Metrics/ipmi_exporter: no IPMI data on hardware because freeipmi is not installed on 3.2.0

Open Beginner friendly
#1,761 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

@arasHi87 is already working on this.

Since Oct 9, 2026.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
78/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
linux, prometheus, shell

Research direction

Start with core/exporters/exporters.mk, where the issue says ROOTFS_DNF currently adds node-exporter but not freeipmi. Check how that package list is used to build the node image and whether the four FreeIPMI binaries are available in the resulting image. Done means freeipmi and those binaries are installed, with the issue’s QA commands confirming exporter metrics on a BMC node and no missing-executable errors.

Written by the indexing model from the issue text.

Description

Description

A clear and concise description of what the bug is.

On 3.2.0 bare metal with a working BMC (/dev/ipmi0 present, ipmi_si/ipmi_devintf loaded), ipmi_exporter reports ipmi_up 0 for all four collectors (bmc, chassis, dcmi, ipmi) and no ipmi_sensor_value series, while the Prometheus ipmi target still shows up. The exporter shells out to FreeIPMI tools (ipmimonitoring, bmc-info, ipmi-dcmi, ipmi-chassis), and none of them is in the image: rpm -q freeipmi → "package freeipmi is not installed".

Root cause (cubecos develop): core/exporters/exporters.mk adds only node-exporter to ROOTFS_DNF. freeipmi appears nowhere in the tree except comments (config_prometheus.cpp, exporters/ipmi_exporter.service) that assume it is present. ipmitool is installed (by nova/ironic), but ipmi_exporter does not use it.

How to Reproduce

Steps to reproduce the behavior:

  1. On a 3.2.0 hardware node with a BMC: ls -l /dev/ipmi0 → device present.
  2. curl -s http://<node-ip>:9290/metrics | grep ^ipmi_up → all four collectors 0.
  3. curl -s http://<node-ip>:9290/metrics | grep -c ^ipmi_sensor_value → 0.
  4. journalctl -u ipmi_exporter -n 4 → error running bmc-info: exec: "bmc-info": executable file not found in $PATH (same for ipmimonitoring, ipmi-dcmi, ipmi-chassis).
  5. rpm -q freeipmi → package freeipmi is not installed.

Expected behavior

A clear and concise description of what you expected to happen.

On hardware with a BMC, ipmi_up is 1 for the available collectors, and ipmi_sensor_value / ipmi_temperature_celsius etc. are populated in Prometheus for every node. (ipmi_up 0 is expected only on VM labs without a BMC.)

Screenshots (Optional)

If applicable, add screenshots to help explain your problem.

None; the evidence is command output (see Additional Context).

Additional Context (Optional)

Add any other context about the problem here.

  • ipmi_exporter 1.10.1. The unit runs as User=root, so /dev/ipmi0 permissions are not the cause.

  • Suggested fix: add freeipmi to ROOTFS_DNF in core/exporters/exporters.mk.

  • Priority P3: the Grafana Host and Device sensor panels read telegraf's ipmi_sensor from InfluxDB, not Prometheus, and those panels have data (#1694). Nothing consumes ipmi_* from Prometheus yet.

  • Found by upgrade check #1693 (story #1651).

  • Environment: build CUBE_3.2.0_20261004-0551_cfc4886c, single-node (1cc) control-converged test node, HA off.

  • Command output, screenshots and logs are stored with regression run rt694-20261006 and are available on request.

Device Information (Optional)

N/A: server-side defect, no browser or phone involved.

QA Verification

How QA verifies this issue is actually fixed — write checkable claims: the exact
command or click path plus the expected outcome. "Verify it works" is not a checkable
claim. These claims are what the Qase test suite is generated from, so write them for a
reader who has not seen the code.

# Command / steps Expected outcome
1 rpm -q freeipmi and which ipmimonitoring bmc-info ipmi-dcmi ipmi-chassis on every node Package installed and all four binaries found
2 On a hardware node: curl -s http://<node-ip>:9290/metrics | grep ^ipmi_up ipmi_up{collector="ipmi"} 1 and ipmi_up{collector="bmc"} 1
3 curl -s 'http://127.0.0.1:9091/prometheus/api/v1/query' --data-urlencode 'query=count by (fqdn) (ipmi_sensor_value)' | jq -c .data.result One non-zero row per hardware node
4 journalctl -u ipmi_exporter --since -5min | grep -c "executable file not found" 0
  • QA Status declared at Done — when this issue reaches Done, set the board's
    QA Status field to Not needed or Ready to QA. Never leave it empty on a Done
    ticket; In QA / Verified are QA's own transitions.

Output artifacts (Definition of Done)

Beyond code, docs, and config changes, completing this issue must also deliver:

  • Handbook knowledge update — land the durable, team-readable knowledge from this
    work into the bigstack-handbook cubecos kb (kb/cubecos/…) via
    /bigstack-core:save-to-handbook (Topic / Runbook / Known-issue / ADR as fits).
    Diagnosed or fixed a failure? Ship the scenario sidecar (<note>.scenario.yaml)
    beside the note.
Dominant language
Shell
Stars
161
Forks
19
Avg merge
1d 4h
Merged PRs (30d)
108

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from bigstack-oss/cubecos

All issues in bigstack-oss/cubecos

Similar issues

More Shell/Bash issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.