Introduction (The “Why”)
Managing a modern homelab fleet—from Docker hosts and servers to router firmware—demands visibility. As our infrastructure grows, “guessing” why a service is slow or why a container restarted becomes untenable. This post introduces a robust, script-driven monitoring stack designed for reproducibility, scalability, and deep observability across Linux, macOS, and OpenWrt devices.
— Architecture Overview
Our monitoring infrastructure is built on two primary pillars:
- The Central Hub (Dockerized Stack):
- Grafana: The visual interface for real-time performance metrics and historical analytics.
-
- Prometheus: Our time-series database for scraping metrics from exporters across the network.
-
- InfluxDB: Efficient long-term storage for Telegraf-reported host metrics.Loki: Centralized log aggregation for effortless troubleshooting across disparate nodes.
- The Fleet (Client Nodes):
- Telegraf Agents: Lightweight collectors installed on every host (Linux/macOS) to push system metrics (CPU, Memory, Disk, Network) to the hub.
-
- Exporter Fleet: Specific exporters (
node_exporter,blackbox_exporter) bridge the gap between niche hardware and standard Prometheus metrics.
- Exporter Fleet: Specific exporters (
—
Key Capabilities
Infrastructure-as-Code (IaC) Methodology: Every step—from Docker deployment to Telegraf configuration—is defined by scripts. No manual tinkering.
Multi-Platform Support: Whether it’s your main Docker host, a secondary server, or your Gl.iNet router, the stack provides unified visibility. (1/2)
- Ready-to-Use Dashboards: A pre-provisioned suite of Grafana dashboards provides instant visibility into:
- Individual Host Performance (CPU, RAM, Load)
-
- Docker Container Health
-
- Router Performance (Gigi’s Router)
-
- Multi-Host Tile Views for fleet-wide status at a glance.
— Getting Started
The full deployment is automated via a bootstrap flow available in the Monitoring Stack Repository.
#### 1. Bootstrap the Infrastructure Run the provided bootstrap.sh on your dedicated monitoring host. This prepares the directory structure and verifies Docker environment health.
#### 2. Deploy the Core Services Use the standard docker-compose.yml located in docs/deployment/ to stand up Grafana, Prometheus, and InfluxDB with pre-configured persistent volumes.
#### 3. Onboard Fleet Nodes Installing Telegraf on new hosts is trivial:
# Add a node in seconds: ./docs/scripts/install-telegraf.sh <target-host>
#### 4. Provision Visuals Don’t waste time clicking around the UI. Our provision-dashboard.sh script automatically injects the standard collection of homelab dashboards directly into your Grafana instance.
—
Why this approach?
Unlike “black box” appliance-based monitoring, this stack is entirely open and under your control. By using standard Telegraf plugins and Prometheus exporters, you avoid vendor lock-in and ensure that your observability stack grows with your homelab, not against it.
—
For the complete technical walkthrough, configuration samples, and troubleshooting guides, visit the Monitoring Stack Wiki.