2.7 KiB
UniFi Exporter Setup
Purpose
UniFi metrics are collected using Unpoller.
Unpoller connects to the UniFi Network application and exposes UniFi network metrics to Prometheus on port 9130.
Exporter Used
Unpoller
Metrics Port
9130
Step 1 Create UniFi Monitoring User
In the UniFi Network application, create a local monitoring user.
Recommended settings:
Username: prometheus Role: Read-only or limited admin
Do not commit the password to GitHub.
Step 2 Run UniFi Exporter / Unpoller
Replace the password before running:
docker run -d \
--name unifi-exporter \
--restart unless-stopped \
-p 9130:9130 \
-e UP_UNIFI_DEFAULT_URL="https://<unifi-controller-ip>" \
-e UP_UNIFI_DEFAULT_USER="prometheus" \
-e UP_UNIFI_DEFAULT_PASS="REPLACE_WITH_YOUR_PASSWORD" \
-e UP_UNIFI_DEFAULT_VERIFY_SSL="false" \
-e UP_PROMETHEUS_HTTP_LISTEN="0.0.0.0:9130" \
ghcr.io/unpoller/unpoller:latest
Step 3 Verify Container Is Running
docker ps --format "table {{.Names}}\t{{.Ports}}\t{{.Status}}"
Expected result:
unifi-exporter 0.0.0.0:9130->9130/tcp Up
Step 4 Test Metrics Endpoint
curl http://<exporter-host-ip>:9130/metrics
Expected result:
UniFi metrics output
Step 5 Restart Prometheus
systemctl restart prometheus
Step 6 Confirm in Prometheus
Open:
http://<prometheus-host-ip>:9090/targets
Expected:
unifi-exporter UP
Prometheus Scrape Config
Add this to prometheus.yml if not present:
- job_name: "unifi-exporter"
static_configs:
- targets:
- "<exporter-host-ip>:9130"
labels:
instance: "unifi-exporter"
service: "unifi"
role: "network"
vendor: "unifi"
site: "ceds-homelab"
Troubleshooting
Connection Refused
Cause: Exporter not running or not bound to port 9130.
Fix:
docker ps --format "table {{.Names}}\t{{.Ports}}\t{{.Status}}"
docker restart unifi-exporter
Authentication Failed
Cause: Incorrect UniFi credentials.
Fix: Update credentials and restart container.
Target Still Down in Prometheus
Test exporter:
curl http://<exporter-host-ip>:9130/metrics
Check Prometheus config:
promtool check config /etc/prometheus/prometheus.yml
Restart Prometheus:
systemctl restart prometheus
Security Notes
Never commit:
- UniFi passwords
- API keys
- Cloudflare tokens
- Proxmox credentials
- Grafana credentials
Use placeholders:
REPLACE_WITH_YOUR_PASSWORD
Status
When complete, Prometheus should show:
unifi-exporter UP
Grafana dashboards can now use UniFi metrics.