JAlcocerTech E-books

Chapter 13 — Monitoring Your Homelab and IoT Nodes

Before you can trust your IoT data, you need to know that your IoT nodes are running. Before you can trust your homelab, you need to know that your servers are healthy.

Monitoring the monitoring infrastructure is not recursive paranoia — it’s the practice that prevents “why did my plant die?” from having the answer “because the sensor node crashed 6 days ago and nobody noticed.”

Beszel: The Right Tool for Homelab Scale

Beszel is a lightweight server monitoring tool that runs as a single binary (or Docker container) on each host. It tracks CPU, memory, disk, and network usage, and aggregates the data in a central Beszel Hub. The web UI is clean, responsive, and shows historical trends without requiring you to configure Prometheus scrape targets and Grafana dashboards.

For a homelab with 2–5 machines, Beszel is the right choice. Setup takes 10 minutes per host.

Beszel dashboard — CPU, memory, disk, and network for all homelab nodes in one view

Adding a new monitor agent in Beszel — a one-command install on each host

# docker-compose.yml for Beszel Hub
services:
  beszel:
    image: henrygd/beszel:latest
    ports:
      - "8090:8090"
    volumes:
      - ./beszel-data:/app/data

Netdata: Real-Time with More Detail

Netdata provides real-time metrics at per-second granularity with automatic detection of hundreds of applications. It’s more resource-intensive than Beszel but gives more detail when you need it — useful when you’re debugging a performance problem and need to know exactly which process spiked CPU 45 seconds ago.

Netdata also includes anomaly detection (comparing current behavior to historical baselines) which can catch unusual patterns before they become failures.

When to Graduate to the Full Grafana Stack

The full Prometheus + Grafana stack (Chapter 14) makes sense when:

  • You have more than 5 nodes to monitor
  • You need long-term retention (months of data for trend analysis)
  • You want custom dashboards that combine homelab metrics with IoT sensor data in a single view
  • You’re ready to spend a weekend on configuration

The Grafana stack is powerful but has a steep initial configuration curve. Beszel is the faster path to useful monitoring.

flowchart TD
    Start([New monitoring need]) --> Q1{How many nodes?}
    Q1 -->|1–5| Beszel[Beszel\n10 min setup, clean UI]
    Q1 -->|5+| Q2{Need custom dashboards?}
    Q2 -->|No| Netdata[Netdata\nReal-time, auto-detects apps]
    Q2 -->|Yes| Q3{IoT sensor data too?}
    Q3 -->|Yes| Influx[InfluxDB + Grafana\nTime-series first]
    Q3 -->|No| Prom[Prometheus + Grafana\nMetrics + PromQL]

    style Beszel fill:#e8f5e9,stroke:#388e3c
    style Netdata fill:#e3f2fd,stroke:#1565c0
    style Influx fill:#fff3e0,stroke:#e65100
    style Prom fill:#f3e5f5,stroke:#6a1b9a

Takeaway: Use Beszel for homelab monitoring at up to 5 nodes. Graduate to Prometheus + Grafana when you need custom dashboards, long-term retention, or more than 5 hosts.