Simple Home Network Monitoring using Prometheus + Grafana and a few exporters.
This folder contains a small Docker Compose setup to run a lightweight monitoring stack for a home network (FRITZ!Box, local hosts and external checks).
Lightweight home network monitoring using Prometheus, Grafana and a few exporters.
This repository contains a small Docker Compose setup to run a minimal monitoring stack for a home network (FRITZ!Box metrics, local hosts and external checks).
What runs
- Prometheus — scrapes metrics from exporters and stores time series (port
9090). - Blackbox exporter — external probes (ICMP/HTTP/DNS) used by Prometheus for reachability checks.
- fritzbox_exporter — exposes TR-064 metrics from a FRITZ!Box (container port
9787). - Speedtest exporter — periodic speedtest metrics.
- Grafana — dashboards and dashboards visualisation (port
3000).
How it fits together
- Prometheus scrapes each exporter (fritzbox, speedtest, node exporters) and the blackbox exporter for probe results.
- Metrics are stored in Prometheus; Grafana reads Prometheus as a datasource and visualises metrics on dashboards.
- Example dashboards are in
example.jsons/and can be imported into Grafana (use a Prometheus datasource namedprometheusor select your datasource during import).
Quick start
- Copy the template and set your local values (keep this file private):
cp .env.example .env
# Edit .env and add real credentials (do NOT commit .env)- Start the stack:
docker compose up -d- Access UIs:
- Prometheus:
http://<host>:9090 - Grafana:
http://<host>:3000(default in compose:admin/admin)
Environment & secrets (short)
- Keep real credentials in a local
.env(this repo already lists.envin.gitignore). - The compose file reads variables from
.envand injects them into services. Avoid committing any file that contains real passwords or API keys. - Consider setting
GF_SECURITY_ADMIN_PASSWORDin your local.envinstead of leaving the defaultadminpassword.
Files of interest
docker-compose.yml— services and how environment variables are passed.prometheus/prometheus.yml— scrape jobs and blackbox probe configs.blackbox/blackbox.yml— blackbox probe modules.example.jsons/— Grafana dashboards you can import.
Importing dashboards
- In Grafana: Dashboard → Import → paste JSON or upload a file from
example.jsons/.
Troubleshooting
- Check service logs:
docker compose logs -f <service> - Prometheus targets:
http://<host>:9090/targets
License: MIT