557f2c072b
* Streamline README * Link to container imgages * Move privileges part to separate doc * Use absolute paths for `sudo` examples * Emphasize `sudo` only being needed for local metrics |
||
---|---|---|
.circleci | ||
.github | ||
contrib/rpm | ||
docs | ||
freeipmi | ||
.gitignore | ||
.golangci.yml | ||
.promu.yml | ||
.yamllint | ||
CHANGELOG.md | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
Dockerfile | ||
LICENSE | ||
Makefile | ||
Makefile.common | ||
NOTICE | ||
README.md | ||
SECURITY.md | ||
VERSION | ||
collector.go | ||
collector_bmc.go | ||
collector_bmc_watchdog.go | ||
collector_chassis.go | ||
collector_dcmi.go | ||
collector_ipmi.go | ||
collector_sel.go | ||
collector_sel_events.go | ||
collector_sm_lan_mode.go | ||
config.go | ||
docker-compose.yml | ||
go.mod | ||
go.sum | ||
ipmi_local.yml | ||
ipmi_local_sudo.yml | ||
ipmi_remote.yml | ||
main.go |
README.md
Prometheus IPMI Exporter
This is an IPMI exporter for Prometheus.
It supports both the regular /metrics
endpoint, exposing metrics from the
host that the exporter is running on, as well as an /ipmi
endpoint that
supports IPMI over RMCP, implementing the multi-target exporter pattern. If you
plan to use the latter, please read the guide Understanding and using the
multi-target exporter pattern to get the general idea about the
configuration.
The exporter relies on tools from the FreeIPMI suite for the actual IPMI implementation.
Installation
For most use-cases, simply download the the latest release.
For Kubernets, you can use the community-maintained Helm chart.
Pre-built container images are available on dockerhub and quay.io.
Building from source
You need a Go development environment. Then, simply run make
to build the
executable:
make
This uses the common prometheus tooling to build and run some tests.
Alternatively, you can use the standard Go tooling, which will install the
executable in $GOPATH/bin
:
go install github.com/prometheus-community/ipmi_exporter@latest
Building a container image
You can build a container image with the included docker
make target:
make promu
promu crossbuild -p linux/amd64 -p linux/arm64
make docker
Running
A minimal invocation looks like this:
./ipmi_exporter
Supported parameters include:
web.listen-address
: the address/port to listen on (default:":9290"
)config.file
: path to the configuration file (default: none)freeipmi.path
: path to the FreeIPMI executables (default: rely on$PATH
)
For syntax and a complete list of available parameters, run:
./ipmi_exporter -h
Make sure you have the following tools from the FreeIPMI suite installed:
ipmimonitoring
/ipmi-sensors
ipmi-dcmi
ipmi-raw
bmc-info
ipmi-sel
ipmi-chassis
When running a container image, make sure to:
- set
config.file
to where the config file is mounted - expose the default port (9290) or set
web.listen-address
accordingly
NOTE: you should only use containers for collecting remote metrics.
Configuration
The configuration document describes both the configuration of the IPMI exporter itself as well as providing some guidance for configuring the Prometheus server to scrape it.
TLS and basic authentication
The IPMI Exporter supports TLS and basic authentication.
To use TLS and/or basic authentication, you need to pass a configuration file
using the --web.config.file
parameter. The format of the file is described
in the exporter-toolkit repository.
Exported data
For a description of the metrics that this exporter provides, see the metrics document.
Privileges
Collecting host-local IPMI metrics requires root privileges. See privileges document for how to avoid running the exporter as root.