Aller au contenu

Netdata - Surveillance des performances en temps réel

Netdata - Surveillance des performances en temps réel

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éthodeCommande
Kickstart universelwget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh
Variante curlcurl https://get.netdata.cloud/kickstart.sh > /tmp/k.sh && sh /tmp/k.sh
Paquet Debian/Ubuntusudo apt install netdata
Paquet Fedora/RHELsudo dnf install netdata
Dockerdocker 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

CommandeDescription
sudo systemctl start netdataDémarrer l’agent
sudo systemctl enable netdataDémarrer au boot
sudo systemctl restart netdataRedémarrer (appliquer les changements de config)
sudo systemctl status netdataVérifier l’état
sudo journalctl -u netdata -fAfficher les logs de l’agent
netdatacli reload-healthRecharger les alarmes sans redémarrage complet
netdatacli reload-labelsRecharger les labels du host
netdatacli shutdown-agentArrê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 = 1Intervalle de collecte en secondes
[global] history / dbengineTailles 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 = 19999Port du tableau de bord
[plugins]Activer/désactiver les groupes de plugins entiers

Collecteurs (Plugins)

TâcheComment
Lister les fichiers config par collecteurcd /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 Gosudo /usr/libexec/netdata/plugins.d/go.d.plugin -d -m nginx
Modules auto-détectés courantsnginx, 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
CommandeDescription
curl http://localhost:19999/api/v1/alarms?allLister toutes les alarmes et l’état actuel (JSON)
curl http://localhost:19999/api/v1/infoInfo de l’agent, version, collecteurs
Éditer health_alarm_notify.confBrancher email, Slack, PagerDuty, Discord, etc.

Endpoints API utiles

EndpointRetourne
/api/v1/chartsTous les graphiques disponibles sur le nœud
/api/v1/data?chart=system.cpuDonnées de série temporelle pour un graphique
/api/v1/allmetrics?format=prometheusCible de scrape pour Prometheus
/api/v1/badge.svg?chart=system.cpu&value_color=greenBadge 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

AspectNetdataPrometheus + Grafana
ConfigurationMinutes, auto-détectionExportateurs + tableaux de bord manuels
GranularitéPar seconde par défautTypiquement scrape de 15s
StockageBase de données locale en niveaux (dbengine)TSDB central
Meilleur pourProfondeur single-node, triage rapideGrandes flottes, requêtes à long terme
InteropérabilitéExporte le format PrometheusPeut scraper Netdata

Ressources