Netdata logoReal-time Monitoring

Netdata

Real-time server performance monitoring with thousands of metrics, quick and lightweight to install.

Review notes

Auto-discovers services and collects metrics. Minimal configuration needed, but restrict dashboard access if public.

Deployment guide

Install with a single Docker container or script. Automatically collects host metrics.

  1. Run the Netdata container with access to /proc, /sys, and Docker socket.
  2. Open the dashboard at port 19999 to see real-time metrics.
  3. Configure alarm notifications via email, Slack, or webhook.
  4. Customize retention and storage if you need longer metric history.
  5. Restrict access with firewall or basic auth if not using Netdata Cloud.
Backup:Netdata stores metrics locally. Back up config and custom dashboards. Metrics can be re-collected.

Copy and run on your server

Use each block separately: save the compose file, or copy the bash script to create it and start the container.

docker-compose.ymlyaml
services:
  netdata:
    image: netdata/netdata:stable
    container_name: netdata
    hostname: netdata-server
    cap_add:
      - SYS_PTRACE
      - SYS_ADMIN
    security_opt:
      - apparmor:unconfined
    volumes:
      - ./config:/etc/netdata
      - ./lib:/var/lib/netdata
      - ./cache:/var/cache/netdata
      - /proc:/host/proc:ro
      - /sys:/host/sys:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
    ports:
      - "19999:19999"
    restart: unless-stopped
setup.shbash
#!/usr/bin/env bash
set -euo pipefail

sudo mkdir -p /opt/netdata
sudo chown "$USER":"$USER" /opt/netdata
cd /opt/netdata

cat > docker-compose.yml <<'COMPOSE'
services:
  netdata:
    image: netdata/netdata:stable
    container_name: netdata
    hostname: netdata-server
    cap_add:
      - SYS_PTRACE
      - SYS_ADMIN
    security_opt:
      - apparmor:unconfined
    volumes:
      - ./config:/etc/netdata
      - ./lib:/var/lib/netdata
      - ./cache:/var/cache/netdata
      - /proc:/host/proc:ro
      - /sys:/host/sys:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
    ports:
      - "19999:19999"
    restart: unless-stopped
COMPOSE

docker compose up -d
echo "Netdata is running on http://SERVER_IP:19999"

Stack

CPythonDocker