Skip to content

Netdata Docker : monitorer ton serveur en temps réel sans te ruiner

Brandon Visca
Updated date:

💡 TL;DR — Ce qu’il faut retenir :

  • Netdata surveille CPU, RAM, disques, réseau, processes et conteneurs en temps réel.
  • Dashboard web intégré accessible sur le port 19999.
  • Pas de configuration complexe : l’image Docker détecte automatiquement ce qu’elle peut monitorer.
  • Alertes natives sans éditer un fichier YAML kilométrique.

Table des matières

Table des matières

Pourquoi Netdata plutôt qu’une stack Prometheus + Grafana ?

Prometheus + Grafana, c’est le couple star du monitoring. Puissant, modulaire, industrialisé. Mais dans un homelab avec deux ou trois services, c’est comme utiliser un bulldozer pour planter une tulipe.

La stack demande :

Netdata supprime toute cette complexité. Une image Docker, un port ouvert, et tu as un dashboard qui affiche déjà 800+ métriques en temps réel. Pas de config initiale, pas de dashboards à importer, pas de DSL d’alerte à apprendre.

Le projet est open-source (GPL-3.0), hébergé sur GitHub avec 78 000+ étoiles et une version stable à 2.10.3. La communauté est active, les releases sortent régulièrement, et l’image Docker est mise à jour quotidiennement sur Docker Hub.

(Si tu débutes avec Docker, commence par mon guide Docker pour les débutants, il couvre les fondations.)

Pour les détails techniques, la documentation officielle de Netdata reste la référence.

Ce que Netdata détecte automatiquement

Lance le conteneur, ouvre le dashboard, et tu vois déjà :

Tu n’as rien à déclarer. Netdata inspecte /proc, /sys et le socket Docker. Chaque métrique est collectée toutes les secondes, ce qui change tout comparé aux outils qui agrègent par intervalles de 5 minutes.

Fiche Docker Compose

Crée un répertoire netdata et un docker-compose.yml (j’utilise ce compose exact en production depuis plusieurs mois) :

services:
  netdata:
    image: netdata/netdata:v2.10.3
    container_name: netdata
    restart: unless-stopped
    hostname: netdata.tondomaine.fr
    ports:
      - "19999:19999"
    volumes:
      - netdata_config:/etc/netdata
      - netdata_lib:/var/lib/netdata
      - netdata_cache:/var/cache/netdata
      - /etc/passwd:/host/etc/passwd:ro
      - /etc/group:/host/etc/group:ro
      - /proc:/host/proc:ro
      - /sys:/host/sys:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
    cap_add:
      - SYS_PTRACE
      - SYS_ADMIN
    security_opt:
      - apparmor:unconfined

Lance le conteneur :

docker compose up -d

Attends 10 secondes, puis ouvre http://IP-DU-SERVEUR:19999.

Les volumes à comprendre

Les caps à ne pas ignorer

Le dashboard : lecture rapide

L’interface web de Netdata est divisée en sections. Voici l’essentiel :

Chaque graphique est interactif : sélectionne une plage horaire, zoom, déplace la fenêtre. Le temps de rétention dépend de la RAM allouée. Avec 256 Mo de cache, tu gardes environ une heure de données à la seconde, puis l’agrégation descend à 1 minute, puis 1 heure.

Les alertes : pas de YAML interminable

Netdata embarque des alertes par défaut. Pas besoin d’éditer un fichier Prometheus Alertmanager.

Par exemple :

Tu peux configurer des notifications vers Discord, Slack, Telegram, email ou webhooks depuis l’interface web (onglet Alerts > Notifications) ou en éditant les fichiers dans /etc/netdata/health.d/.

Pour activer une notification Discord par exemple, tu copies le fichier de stock et tu renseignes ton webhook URL :

docker exec -it netdata bash
cp /etc/netdata/health.d/discord.conf /etc/netdata/health.d/discord.conf.bak
# Édite /etc/netdata/health.d/discord.conf avec ton webhook

Relance le health service sans redémarrer le conteneur :

docker exec netdata netdatacli reload-health

Monitoring des conteneurs Docker

C’est la partie qui fait toute la différence dans un homelab. Tu n’as pas un serveur à surveiller, tu en as 15 conteneurs qui tournent.

Avec le volume /var/run/docker.sock:/var/run/docker.sock:ro, Netdata affiche automatiquement :

Tu vois immédiatement quel conteneur bouffe toute la RAM ou sature le disque. Pas besoin d’entrer dans chaque conteneur pour faire un htop : une seule page web te montre tout.

Persistance des métriques

Par défaut, Netdata garde les métriques en mémoire. Quand tu redémarres le conteneur, l’historique est perdu.

Pour conserver les données entre les redémarrages, active le mode “dbengine” en montant un volume persistent. Le fichier de configuration est dans /etc/netdata/netdata.conf.

Tu peux aussi exposer le répertoire /var/lib/netdata en volume, comme dans le compose ci-dessus. L’historique reste alors persistant tant que le volume existe.

Sécuriser l’accès au dashboard

Le dashboard Netdata est puissant et montre des données sensibles. Ne l’expose pas sur Internet sans protection.

Via Traefik avec authentification basique

Si tu as déjà configuré Traefik, ajoute ces labels à ton conteneur Netdata :

    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.netdata.rule=Host(`netdata.tondomaine.fr`)"
      - "traefik.http.routers.netdata.entrypoints=websecure"
      - "traefik.http.routers.netdata.tls.certresolver=letsencrypt"
      - "traefik.http.services.netdata.loadbalancer.server.port=19999"
      - "traefik.http.routers.netdata.middlewares=auth@docker"

Et ajoute le conteneur au réseau proxy externe.

Via un tunnel WireGuard/Headscale

La méthode la plus sûre pour un homelab : ne pas exposer Netdata du tout. Tu accesses au dashboard via un tunnel VPN depuis ton réseau local ou depuis ton téléphone. Aucun port ouvert sur Internet, zéro risque de scan automatique.

Quand Netdata ne suffit plus

Netdata est excellent pour un serveur unique ou une petite infrastructure. Quand tu atteins 5+ machines, les alertes deviennent difficiles à centraliser et le dashboard web ne scale pas pour visualiser 50 serveurs.

À ce stade, tu bascules vers une stack centralisée :

Mais pour 95 % des homelabs, Netdata fait le job sans cette complexité.

Conclusion

L’essentiel : si tu passes plus de temps à configurer ton monitoring qu’à monitorer, tu as choisi le mauvais outil. Combine Netdata pour les métriques système avec Uptime Kuma pour la disponibilité des services : tu couvres 95 % des besoins homelab sans sortir la carte bleue.

Pour aller plus loin

Previous
n8n Docker : remplace Zapier par du self-hosted
Next
Nginx Proxy Manager : reverse proxy en 5 min avec Docker