Netdata est un agent de surveillance open-source qui collecte des milliers de métriques par seconde avec une configuration quasi nulle et les visualise sur un tableau de bord web en direct (port par défaut 19999). Il détecte automatiquement les services (bases de données, serveurs web, conteneurs, Kubernetes) à travers plus de 800 collecteurs et est livré avec une détection d’anomalies et un moteur d’alertes intégré.
Installation
| Méthode | Commande |
|---|
| Kickstart universel | wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh |
| Variante curl | curl https://get.netdata.cloud/kickstart.sh > /tmp/k.sh && sh /tmp/k.sh |
| Paquet Debian/Ubuntu | sudo apt install netdata |
| Paquet Fedora/RHEL | sudo dnf install netdata |
| Docker | docker run -d --name=netdata -p 19999:19999 --cap-add SYS_PTRACE netdata/netdata |
| Helm (Kubernetes) | helm install netdata netdata/netdata |
Après l’installation, ouvrez http://localhost:19999 (ou l’IP du serveur).
Gestion des services
| Commande | Description |
|---|
sudo systemctl start netdata | Démarrer l’agent |
sudo systemctl enable netdata | Démarrer au boot |
sudo systemctl restart netdata | Redémarrer (appliquer les changements de config) |
sudo systemctl status netdata | Vérifier l’état |
sudo journalctl -u netdata -f | Afficher les logs de l’agent |
netdatacli reload-health | Recharger les alarmes sans redémarrage complet |
netdatacli reload-labels | Recharger les labels du host |
netdatacli shutdown-agent | Arrêter l’agent proprement |
Configuration
Éditez toujours la config avec le wrapper edit-config — il copie le fichier de base de /usr/lib/netdata/conf.d dans /etc/netdata pour que les mises à jour ne l’écrasent pas.
cd /etc/netdata
sudo ./edit-config netdata.conf # config principale de l'agent
sudo ./edit-config health_alarm_notify.conf # notifications
sudo ./edit-config go.d.conf # activer/désactiver les collecteurs Go
Paramètre (dans netdata.conf) | Objectif |
|---|
[global] update every = 1 | Intervalle de collecte en secondes |
[global] history / dbengine | Tailles des niveaux de base de données retenus / sur disque |
[web] bind to = * | Interfaces réseau sur lesquelles le tableau de bord écoute |
[web] default port = 19999 | Port du tableau de bord |
[plugins] | Activer/désactiver les groupes de plugins entiers |
Collecteurs (Plugins)
| Tâche | Comment |
|---|
| Lister les fichiers config par collecteur | cd /etc/netdata && sudo ./edit-config go.d/CONFIG.conf |
| Activer un module (par ex. nginx) | sudo ./edit-config go.d/nginx.conf puis pointez vers l’URL de statut |
| Déboguer un collecteur Go | sudo /usr/libexec/netdata/plugins.d/go.d.plugin -d -m nginx |
| Modules auto-détectés courants | nginx, apache, mysql, postgres, redis, docker, unités systemd, disques, réseau, capteurs |
Santé et alarmes
Les définitions d’alarmes vivent dans /etc/netdata/health.d/*.conf.
cd /etc/netdata
sudo ./edit-config health.d/cpu.conf # affiner une alarme intégrée
netdatacli reload-health # appliquer
| Commande | Description |
|---|
curl http://localhost:19999/api/v1/alarms?all | Lister toutes les alarmes et l’état actuel (JSON) |
curl http://localhost:19999/api/v1/info | Info de l’agent, version, collecteurs |
Éditer health_alarm_notify.conf | Brancher email, Slack, PagerDuty, Discord, etc. |
Endpoints API utiles
| Endpoint | Retourne |
|---|
/api/v1/charts | Tous les graphiques disponibles sur le nœud |
/api/v1/data?chart=system.cpu | Données de série temporelle pour un graphique |
/api/v1/allmetrics?format=prometheus | Cible de scrape pour Prometheus |
/api/v1/badge.svg?chart=system.cpu&value_color=green | Badge de statut embarquable |
Netdata Cloud (Optionnel)
# Connecter (réclamer) un nœud à Netdata Cloud pour les tableaux de bord multi-nœuds
sudo netdata-claim.sh -token=YOUR_TOKEN -rooms=ROOM_ID -url=https://app.netdata.cloud
L’agent continue de fonctionner complètement en standalone si vous ne le réclamez jamais — Cloud ajoute uniquement des vues inter-nœuds et des alertes centralisées.
Flux de travail courants
# Vérification rapide de la santé depuis le shell
curl -s http://localhost:19999/api/v1/alarms | jq '.alarms | keys'
# Exposer les métriques à une pile Prometheus existante
curl -s 'http://localhost:19999/api/v1/allmetrics?format=prometheus' | head
# Réduire l'empreinte CPU/disque sur une petite VM (netdata.conf)
# [global] update every = 2
# [db] mode = ram # garder les métriques en mémoire uniquement
# Réduire la rétention mais garder la granularité par seconde, puis recharger
sudo systemctl restart netdata
Netdata vs Prometheus + Grafana
| Aspect | Netdata | Prometheus + Grafana |
|---|
| Configuration | Minutes, auto-détection | Exportateurs + tableaux de bord manuels |
| Granularité | Par seconde par défaut | Typiquement scrape de 15s |
| Stockage | Base de données locale en niveaux (dbengine) | TSDB central |
| Meilleur pour | Profondeur single-node, triage rapide | Grandes flottes, requêtes à long terme |
| Interopérabilité | Exporte le format Prometheus | Peut scraper Netdata |
Ressources