Modern Homelab Observability: Netdata Telemetry & Uptime Kuma Health Checks

3 min read

In early sysadmin workflows, monitoring meant installing Monit to poll PID files or ping ports, firing off basic email alerts when a process died. While functional, it lacked real-time metrics, trend analysis, and modern push notifications.

Today, homelab observability is divided into two focused layers:
1. Real-Time Streaming Telemetry (Netdata): High-resolution per-second hardware and container metrics.
2. External Synthetic Monitoring (Uptime Kuma): Verifying services actually respond over HTTP, TCP, and DNS from an independent vantage point.

⚡ Quick Runbook: 60-Second Implementation

TL;DR: Copy and deploy the baseline production definition directly onto your host:

services:
  netdata:
    image: netdata/netdata:stable
    container_name: netdata
    hostname: homelab-node
    restart: unless-stopped
    ports:
      - 19999:19999
    cap_add:
      - SYS_PTRACE
      - SYS_ADMIN
    security_opt:
      - apparmor:unconfined
    volumes:
      - netdataconfig:/etc/netdata
      - netdatalib:/var/lib/netdata
      - /proc:/host/proc:ro
      - /sys:/host/sys:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro

volumes:
  netdataconfig:
  netdatalib:

1. Lightweight Streaming Telemetry with Netdata

Netdata monitors thousands of host and container metrics (CPU per-core usage, memory pressure, ZFS ARC hit rates, disk latency) with sub-1% CPU overhead:

services:
  netdata:
    image: netdata/netdata:stable
    container_name: netdata
    hostname: homelab-node
    restart: unless-stopped
    ports:
      - 19999:19999
    cap_add:
      - SYS_PTRACE
      - SYS_ADMIN
    security_opt:
      - apparmor:unconfined
    volumes:
      - netdataconfig:/etc/netdata
      - netdatalib:/var/lib/netdata
      - /proc:/host/proc:ro
      - /sys:/host/sys:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro

volumes:
  netdataconfig:
  netdatalib:

2. Synthetic Blackbox Probing with Uptime Kuma

Run Uptime Kuma on a lightweight VPS or secondary host to monitor your primary infrastructure from the outside:

services:
  uptime-kuma:
    image: louislam/uptime-kuma:latest
    container_name: uptime-kuma
    restart: unless-stopped
    volumes:
      - ./data:/app/data
    ports:
      - 3001:3001

Uptime Kuma tests endpoints every 60 seconds (HTTP status codes, TLS certificate expiration, DNS resolution, ping latency) and dispatches instant webhook notifications via ntfy, Discord, or Pushover the moment an anomaly is detected.


Related Runbooks in This Series

Tags:

← Previous:
Next: →