Netdata - Monitoring temps réel¶
Vue d'ensemble¶
Netdata est un système de monitoring temps réel déployé sur ProbatioVault-IA-Server pour surveiller : - Ressources système : CPU, RAM, disques, réseau - GPU NVIDIA : 2× RTX 5090 avec utilisation VRAM - Services : Systemd, Docker, processus - Métriques réseau : Bande passante, connexions, latence
URL d'accès : http://192.168.1.82:19999
Caractéristiques¶
Métriques temps réel¶
- Granularité : 1 seconde (mise à jour en direct)
- Rétention : 1 heure en RAM (haute résolution)
- Performance : ~1% CPU, ~100 MB RAM
Monitoring GPU NVIDIA¶
- Utilisation GPU (%)
- Température (°C)
- VRAM utilisée (64 GB total par RTX 5090)
- Puissance consommée (W)
- Fréquence GPU/Mémoire (MHz)
Alertes (désactivées par défaut)¶
- CPU > 90% pendant 5 min
- RAM > 95%
- Disque > 90%
- GPU température > 85°C
Installation¶
Déploiement automatique via GitLab CI/CD¶
Le playbook Ansible install-netdata.yml est exécuté automatiquement à chaque push sur main.
Job GitLab : ansible:install-netdata (stage apply)
Installation manuelle (si besoin)¶
cd /opt/probatiovault-ia-server/ansible
ansible-playbook -i inventory/hosts playbooks/install-netdata.yml
Vérification de l'installation¶
# Status du service
sudo systemctl status netdata
# Logs temps réel
sudo journalctl -u netdata -f
# Accès web
curl -I http://192.168.1.82:19999
Architecture¶
Composants installés¶
/opt/netdata/ # Installation Netdata
/etc/netdata/ # Configuration
├── netdata.conf # Config principale
└── python.d.conf # Plugins Python (nvidia_smi)
/var/cache/netdata/ # Base de données métriques
/var/log/netdata/ # Logs
Plugins activés¶
| Plugin | Description | Fichiers surveillés |
|---|---|---|
| proc | Système Linux (/proc) | CPU, RAM, réseau, disques |
| diskspace | Espace disque | Tous les points de montage |
| nvidia_smi | GPU NVIDIA | 2× RTX 5090 |
| systemd | Services systemd | plexmediaserver, ollama, etc. |
| python.d/nvidia_smi | Métriques GPU détaillées | Via nvidia-ml-py3 |
Configuration réseau¶
[web]
bind to = * # Écoute sur toutes les interfaces
default port = 19999 # Port HTTP
allow connections from = * # Pas de restriction IP
Sécurité : Netdata est exposé sur le réseau local uniquement (192.168.1.0/24). Pas d'accès Internet.
Utilisation¶
Interface web¶
- Ouvrir http://192.168.1.82:19999
- Navigation :
- Overview : Vue d'ensemble système
- CPU : Détails par cœur (8 cœurs Intel)
- GPU : Métriques NVIDIA (2× RTX 5090)
- Memory : RAM, Swap, Cache
- Network : Interfaces eth0, wg0
- Disk : I/O, latence, utilisation
Métriques GPU¶
Dashboard GPU : Section "nvidia_smi" dans le menu de gauche
Métriques disponibles :
GPU 0 (RTX 5090) :
- gpu_utilization : 45%
- memory_utilization : 12.3 GB / 64 GB
- temperature : 68°C
- power_usage : 250 W / 450 W
- fan_speed : 35%
GPU 1 (RTX 5090) :
- gpu_utilization : 78%
- memory_utilization : 45.8 GB / 64 GB
- temperature : 72°C
- power_usage : 380 W / 450 W
- fan_speed : 55%
API REST¶
Netdata expose une API REST pour récupérer les métriques.
# Liste des métriques disponibles
curl -s http://192.168.1.82:19999/api/v1/charts | jq '.charts | keys'
# Utilisation GPU (dernières 60 secondes)
curl -s "http://192.168.1.82:19999/api/v1/data?chart=nvidia_smi_0.gpu_utilization&after=-60" | jq
# RAM disponible
curl -s "http://192.168.1.82:19999/api/v1/data?chart=system.ram&after=-60" | jq
Intégration Homer¶
Netdata est référencé dans le dashboard Homer :
- name: "Monitoring & Logs"
items:
- name: "Netdata"
logo: "assets/tools/netdata.png"
subtitle: "Real-time monitoring (CPU, RAM, GPU)"
url: "http://192.168.1.82:19999"
Accès depuis Homer : http://192.168.1.82:8080
Configuration avancée¶
Activer les alertes¶
# Éditer la configuration des alertes
sudo nano /etc/netdata/health.d/cpu.conf
# Redémarrer Netdata
sudo systemctl restart netdata
Exemple d'alerte GPU :
alarm: gpu_temp_high
on: nvidia_smi_0.temperature
lookup: average -5m
units: °C
every: 30s
warn: $this > 80
crit: $this > 85
Augmenter la rétention des données¶
Par défaut, Netdata conserve 1 heure de données en RAM. Pour augmenter :
[db]
# Stockage sur disque (au lieu de RAM)
mode = dbengine
# Rétention : 7 jours
storage tiers = 3
dbengine multihost disk space MB = 2048
Désactiver la télémétrie (déjà fait)¶
L'installation via le playbook désactive automatiquement la télémétrie Netdata Cloud :
# Vérifier que la télémétrie est désactivée
grep -r "enabled = no" /etc/netdata/netdata.conf | grep cloud
Monitoring des services ProbatioVault¶
Services surveillés automatiquement¶
Netdata détecte et surveille tous les services systemd actifs :
- plexmediaserver.service
- ollama.service
- netdata.service
- nginx.service
- mkdocs.service (si configuré)
Dashboard : Section "Services" > "Systemd"
Métriques par service¶
Pour chaque service : - État (running/failed/stopped) - CPU utilisé - Mémoire utilisée - Nombre de processus - Temps de démarrage
Troubleshooting¶
Netdata ne démarre pas¶
# Vérifier les logs
sudo journalctl -u netdata -n 50
# Tester la configuration
sudo /usr/sbin/netdata -D
# Réinstaller si nécessaire
sudo /usr/libexec/netdata/netdata-uninstaller.sh --yes
cd /opt/probatiovault-ia-server/ansible
ansible-playbook -i inventory/hosts playbooks/install-netdata.yml
GPU non détecté¶
# Vérifier que nvidia-smi fonctionne
nvidia-smi
# Vérifier le plugin Python NVIDIA
sudo nano /etc/netdata/python.d.conf
# Doit contenir :
# nvidia_smi: yes
# Redémarrer Netdata
sudo systemctl restart netdata
Dashboard vide ou métriques manquantes¶
# Vérifier les permissions
ls -la /var/cache/netdata/
sudo chown -R netdata:netdata /var/cache/netdata/
# Vérifier les plugins actifs
curl -s http://192.168.1.82:19999/api/v1/info | jq '.collectors'
# Redémarrer Netdata
sudo systemctl restart netdata
Performances dégradées¶
Si Netdata consomme trop de ressources :
Maintenance¶
Mise à jour Netdata¶
Netdata se met à jour automatiquement tous les jours (si installé via kickstart.sh).
Pour forcer une mise à jour :
Pour désactiver les mises à jour automatiques :
Sauvegarde de la configuration¶
# Sauvegarder la config
sudo tar czf /tmp/netdata-config-backup.tar.gz /etc/netdata/
# Restaurer
sudo tar xzf /tmp/netdata-config-backup.tar.gz -C /
sudo systemctl restart netdata
Nettoyage des logs¶
# Netdata log rotation (automatique)
ls -lh /var/log/netdata/
# Forcer le nettoyage
sudo journalctl --vacuum-time=7d
Intégration avec d'autres outils¶
Prometheus (exportateur de métriques)¶
Netdata peut exporter ses métriques vers Prometheus :
Grafana (visualisation avancée)¶
Pour créer des dashboards Grafana à partir de Netdata :
- Ajouter Netdata comme source Prometheus dans Grafana
- Importer le dashboard Netdata officiel : https://grafana.com/grafana/dashboards/2701
Alerting (notifications)¶
Configurer les notifications Slack/Email :
# Slack
SEND_SLACK="YES"
SLACK_WEBHOOK_URL="https://hooks.slack.com/services/YOUR/WEBHOOK/URL"
DEFAULT_RECIPIENT_SLACK="#monitoring"
Ressources¶
- Documentation officielle : https://learn.netdata.cloud/
- GitHub : https://github.com/netdata/netdata
- API REST : https://learn.netdata.cloud/docs/rest-api
- Plugins : https://learn.netdata.cloud/docs/data-collection
Résumé des ports¶
| Service | Port | Protocole | Accès |
|---|---|---|---|
| Netdata Web | 19999 | HTTP | LAN uniquement |
| Netdata API | 19999 | HTTP | LAN uniquement |
Firewall : Aucune règle nécessaire (réseau local uniquement).