Prometheus Exporter for the ISC Kea DHCP Server.
From v0.4.0 on Kea >=1.3.0 is required, as the configuration, specifically subnet information, will be read from the control socket.
The latest stable version can always be installed from PyPi:
$ pip install kea-exporter
and upgraded with:
$ pip install --upgrade kea-exporter
A docker image is available and can be configured with environment variables see usage section
$ docker pull ghcr.io/mweinelt/kea-exporter
- DHCP4 & DHCP6 Metrics (tested against Kea 2.4.1)
- Configuration and statistics via control socket or http api
Currently not working:
- Automatic config reload (through inotify)
The following features are not supported yet, help is welcome.
- Shared Networks
- Custom Subnet Identifiers
Pass one or multiple Unix Domain Socket path or HTTP Control-Agent URLs to the kea-exporter executable. All other options are optional.
Usage: python -m kea_exporter [OPTIONS] TARGETS... Options: -a, --address TEXT Address that the exporter binds to. -p, --port INTEGER Port that the exporter binds to. -i, --interval INTEGER Minimal interval between two queries to Kea in seconds. --client-cert PATH Path to client certificate used to in HTTP requests --client-key PATH Path to client key used in HTTP requests --version Show the version and exit. --help Show this message and exit.
You can also configure the exporter using environment variables:
export ADDRESS="0.0.0.0" export PORT="9547" export INTERVAL="7.5" export TARGETS="http://router.example.com:8000" export CLIENT_CERT="/etc/kea-exporter/client.crt" export CLIENT_KEY="/etc/kea-exporter/client.key"
The exporter uses Kea's control socket to request both configuration and statistics. Consult the documentation on how to set up the control socket:
- https://kea.readthedocs.io/en/latest/arm/dhcp4-srv.html#management-api-for-the-dhcpv4-server
- https://kea.readthedocs.io/en/latest/arm/dhcp6-srv.html#management-api-for-the-dhcpv6-server
If you need to validate a self-signed certificate on a Kea instance, you can set REQUESTS_CA_BUNDLE environment variable to a bundle CA path.
Kea Exporter needs to be able to read and write on the socket, hence it's permissions might need to be modified accordingly.
A dashboard for this exporter is available at https://grafana.com/grafana/dashboards/12688.