Introduction
Netdata est l'outil de monitoring le plus rapide à mettre en place pour un VPS Linux. Contrairement à Prometheus/Grafana qui demandent plusieurs heures de configuration, Netdata fonctionne en moins de 2 minutes, détecte automatiquement tous vos services (Nginx, MySQL, Docker, etc.) et expose un dashboard accessible immédiatement.
Prérequis
- VPS Linux (Debian, Ubuntu, CentOS, Fedora, etc.)
- Accès root ou sudo
- 256 MB de RAM libre (très léger)
Étape 1 : Installation en une commande
Netdata fournit un kickstart officiel qui détecte la distribution :
wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh
sudo sh /tmp/netdata-kickstart.sh
Pendant l'installation, le script demande si vous souhaitez activer le télémétrie anonyme et la connexion à Netdata Cloud. Vous pouvez refuser et utiliser uniquement le dashboard local.
Étape 2 : Accéder au dashboard
Netdata expose son interface sur le port 19999 :
http://IP_DE_VOTRE_VPS:19999
Vous voyez immédiatement toutes les métriques en temps réel : CPU par core, RAM, swap, disque, réseau, processus top.
Étape 3 : Sécuriser l'accès au dashboard
Le port 19999 est ouvert publiquement par défaut, ce qui n'est pas idéal. Deux approches.
Option A : Restreindre par IP avec UFW
sudo ufw deny 19999/tcp
sudo ufw allow from VOTRE_IP_FIXE to any port 19999
Option B : Reverse proxy Nginx avec authentification
Installez apache2-utils pour créer un mot de passe :
sudo apt install -y apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd-netdata admin
Configurez Nginx :
sudo nano /etc/nginx/sites-available/netdata
Contenu :
server {
listen 80;
server_name netdata.votre-domaine.com;
auth_basic "Netdata Monitoring";
auth_basic_user_file /etc/nginx/.htpasswd-netdata;
location / {
proxy_pass http://127.0.0.1:19999;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Activez et ajoutez SSL :
sudo ln -s /etc/nginx/sites-available/netdata /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
sudo certbot --nginx -d netdata.votre-domaine.com
Bloquez le port 19999 public :
sudo ufw deny 19999/tcp
Étape 4 : Configurer les alertes
Netdata inclut plus de 200 alertes par défaut (CPU > 90%, disque plein, processus zombie, etc.). Pour recevoir les alertes par email, Discord ou Slack, éditez :
sudo nano /etc/netdata/health_alarm_notify.conf
Alertes Discord (recommandé)
SEND_DISCORD="YES"
DISCORD_WEBHOOK_URL="https://discord.com/api/webhooks/XXX/YYY"
DEFAULT_RECIPIENT_DISCORD="alerts"
Alertes email
SEND_EMAIL="YES"
DEFAULT_RECIPIENT_EMAIL="[email protected]"
Rechargez :
sudo systemctl restart netdata
Testez l'envoi :
sudo -u netdata /usr/libexec/netdata/plugins.d/alarm-notify.sh test
Étape 5 : Modules auto-détectés
Netdata détecte automatiquement et monitor :
- Nginx / Apache : connexions, requêtes/seconde, codes HTTP
- MySQL / MariaDB / PostgreSQL : requêtes, connexions, slow queries
- Redis / Memcached : hit/miss ratio, mémoire
- Docker : containers, CPU, RAM par container
- PHP-FPM : pools, requêtes actives
- systemd : services en échec
- fail2ban : IPs bannies en temps réel
Listez les modules actifs :
sudo systemctl status netdata
ls /etc/netdata/python.d/
Étape 6 : Réduire la rétention pour économiser le disque
Par défaut, Netdata garde 1 heure de données en mémoire et 1 jour sur disque. Pour augmenter :
sudo nano /etc/netdata/netdata.conf
Modifiez :
[db]
mode = dbengine
storage tiers = 3
# Tier 0 (haute résolution, 1s)
dbengine multihost disk space MB = 256
# Tier 1 (1m)
dbengine tier 1 multihost disk space MB = 128
# Tier 2 (1h, long terme)
dbengine tier 2 multihost disk space MB = 64
Redémarrez :
sudo systemctl restart netdata
Dépannage
Le dashboard ne se charge pas
Vérifiez le service :
sudo systemctl status netdata
sudo journalctl -u netdata -n 50 --no-pager
CPU élevé causé par Netdata
Netdata consomme normalement moins de 5% de CPU. Si plus :
sudo nano /etc/netdata/netdata.conf
Augmentez l'intervalle de collecte :
[global]
update every = 5
Module MySQL non détecté
Créez un user MySQL dédié au monitoring :
CREATE USER 'netdata'@'localhost' IDENTIFIED BY '';
GRANT USAGE, REPLICATION CLIENT, PROCESS ON *.* TO 'netdata'@'localhost';
FLUSH PRIVILEGES;
Commandes utiles
# Statut
sudo systemctl status netdata
# Logs
sudo journalctl -u netdata -f
# Liste des alertes actives
curl -s http://localhost:19999/api/v1/alarms | jq
# Désinstaller Netdata
sudo /usr/libexec/netdata/netdata-uninstaller.sh --yes
Conclusion
Netdata est la solution la plus simple et complète pour surveiller un VPS Linux. Pour aller plus loin, combinez-le avec :
- Uptime Kuma pour la supervision externe (tuto VeryCloud à venir)
- Netdata Cloud (gratuit) pour agréger plusieurs VPS dans un seul dashboard
- Prometheus / Grafana si vous avez besoin de stockage long terme et de dashboards customisés
Ressources
- Site officiel : https://www.netdata.cloud
- Documentation : https://learn.netdata.cloud
- GitHub : https://github.com/netdata/netdata


















