Monitoring Pi-hole with Prometheus
Export Pi-hole metrics into prometheus
pihole-exporter is a Go application that exports Pi-hole metrics.
The first step is downloading the correct release. In my case I run Pi-hole on a Debian VM so I downloaded the amd64 release. If you run Pi-hole on a Raspberry Pi you will need the arm release.
https://github.com/eko/pihole-exporter/releases
# amd64 ver. 0.0.8
wget https://github.com/eko/pihole-exporter/releases/download/0.0.8/pihole_exporter-linux-amd64
# arm ver. 0.0.8
wget https://github.com/eko/pihole-exporter/releases/download/0.0.8/pihole_exporter-linux-arm
Once you have the the executable downloaded lets create a space for it
mkdir /opt/pihole_exporter
Create a system user to run the exporter
useradd -r pihole_exporter
Move the executable to the folder we created
mv pihole_exporter-linux-amd64 /opt/pihole_exporter
Make sure to set the correct permissions
chgrp pihole_exporter /opt/pihole_exporter
chgrp pihole_exporter /opt/pihole_exporter/pihole_exporter-linux-amd64
chmod +x /opt/pihole_exporter/pihole_exporter-linux-amd64
# NOTE: if you downloaded the arm release make sure you change the file name
Create a service file
nano /lib/systemd/system/pihole_exporter.service
systemctl daemon-reload
service pihole_exporter start
systemctl enable pihole_exporter
[Unit]
Description=pihole_exporter
[Service]
ExecStart=/opt/pihole_exporter/pihole_exporter-linux-amd64
WorkingDirectory=/opt/pihole_exporter
Restart=always
User=pihole_exporter
[Install]
WantedBy=multi-user.target
The exporter should now be running on port 9617
curl 127.0.0.1:9617
All thats left is to setup the Prometheus job
- job_name: pihole
static_configs:
- targets:
- 10.0.4.9:9617
The Github repo also provides a Grafana Dashboard.
https://github.com/eko/pihole-exporter/blob/master/grafana/dashboard.json
Get $100 in cloud credits from DigitalOcean using my link: https://m.do.co/t/909d52b6253a