Surveiller ses Raspberry Pi avec Grafana, Prometheus et Node Exporter

Facebook Twitter Instagram YouTube Twitch

Vous voulez garder un œil sur vos Raspberry Pi en temps réel ? Suivre la charge CPU, la mémoire, la température ou encore l’état du réseau ? Cette solution de monitoring basée sur Grafana, Prometheus et Node Exporter vous permet de visualiser les performances de vos appareils, de consulter un historique, et même de recevoir des alertes en cas de problème (surchauffe, panne, etc.). Voici un guide pratique pour tout mettre en place.

Prérequis

  • Matériel : Un Raspberry Pi 3, 4, ou 5.
  • Système : Une distribution à jour (Raspberry Pi OS, Debian ou Ubuntu).
  • Connexion : Réseau stable (Ethernet recommandé, Wi-Fi possible).
  • Accès : SSH configuré pour une gestion à distance.

Étape 1 : Installer Node Exporter sur chaque Raspberry Pi

Node Exporter est un outil léger qui collecte les métriques système (CPU, RAM, disque, etc.) et les rend accessibles à Prometheus.

  • Téléchargez la dernière version pour ARMv7 (architecture des Raspberry Pi) depuis la page GitHub de Node Exporter:

wget https://github.com/prometheus/node_exporter/releases/latest/download/node_exporter-<VERSION>.linux-armv7.tar.gz

tar -xvzf node_exporter-<VERSION>.linux-armv7.tar.gz

sudo cp node_exporter-<VERSION>.linux-armv7/node_exporter /usr/local/bin/

Remplacez <VERSION> par la version actuelle.

Créez un utilisateur dédié :

sudo useradd –no-create-home –shell /usr/sbin/nologin node_exporter

Configurez Node Exporter comme service systemd :

sudo tee /etc/systemd/system/node_exporter.service > /dev/null <<EOF

[Unit]

Description=Node Exporter

After=network.target

[Service]

User=node_exporter

ExecStart=/usr/local/bin/node_exporter

[Install]

WantedBy=default.target

EOF

Activez et démarrez le service :

sudo systemctl daemon-reload

sudo systemctl enable –now node_exporter

Vérifiez que Node Exporter fonctionne (port 9100) :

curl http://localhost:9100/metrics

Assurez-vous que ce port est accessible depuis le serveur Prometheus.

Étape 2 : Configurer Prometheus pour collecter les données

Prometheus est le serveur qui centralise les métriques collectées par Node Exporter. Installez-le sur un Raspberry Pi principal ou une machine dédiée.

Téléchargez la dernière version pour ARMv7 depuis GitHub Prometheus:

wget https://github.com/prometheus/prometheus/releases/latest/download/prometheus-<VERSION>.linux-armv7.tar.gz

tar -xvzf prometheus-<VERSION>.linux-armv7.tar.gz

cd prometheus-<VERSION>.linux-armv7

Créez un fichier de configuration prometheus.yml :

scrape_configs:

– job_name: ‘raspberrypi’

static_configs:

– targets: [‘localhost:9100’, ‘192.168.1.42:9100’, ‘192.168.1.43:9100’]

Remplacez les adresses IP par celles de vos Raspberry Pi équipés de Node Exporter.

Lancez Prometheus :

./prometheus –config.file=prometheus.yml

Accédez à l’interface web sur http://<IP_DU_SERVEUR>:9090 pour vérifier que les cibles sont bien collectées (onglet Status > Targets).

Conseil : Pour une utilisation permanente, configurez Prometheus comme service systemd, similaire à Node Exporter, avec Restart=always pour un redémarrage automatique.

Étape 3 : Installer Grafana pour visualiser les données

Grafana transforme les données brutes de Prometheus en tableaux de bord clairs et personnalisables.

Installez Grafana :

sudo apt update

sudo apt install -y apt-transport-https software-properties-common wget

wget -q -O – https://packages.grafana.com/gpg.key | sudo apt-key add –

echo « deb https://packages.grafana.com/oss/deb stable main » | sudo tee /etc/apt/sources.list.d/grafana.list

sudo apt update

sudo apt install grafana

Activez et démarrez le service :

sudo systemctl enable –now grafana-server

Accédez à l’interface sur http://<IP_DU_SERVEUR>:3000. Identifiants par défaut : admin/admin. Changez le mot de passe immédiatement.

Si vous utilisez un pare-feu (ex. : UFW), ouvrez le port 3000 :

sudo ufw allow 3000

Étape 4 : Configurer Grafana et importer un dashboard

Ajoutez Prometheus comme source de données :

  • Allez dans Configuration > Data Sources.
  • Sélectionnez Prometheus et entrez l’URL : http://<IP_DU_SERVEUR>:9090.
  • Sauvegardez.
  • Importez un dashboard prédéfini :
  • Allez dans Dashboards > Import.
  • Entrez l’ID 1860 (dashboard « Node Exporter Full », compatible avec Node Exporter).
  • Sélectionnez votre source Prometheus et validez.

Ce dashboard affiche les métriques essentielles : CPU, mémoire, disque, réseau, température, et uptime pour chaque Raspberry Pi.

Personnalisez si besoin :

  • Créez des panneaux pour suivre des métriques spécifiques (ex. : température CPU sur 24h, charge réseau).
  • Regroupez les dashboards par emplacement (ex. : « Salon », « Bureau ») si vous avez plusieurs Pi.

Étape 5 : Configurer des alertes

Pour être notifié en cas de problème (ex. : CPU > 80 %, température > 70°C), configurez des alertes dans Grafana :

Dans un panneau (ex. : température), cliquez sur l’onglet Alert.

Définissez :

  • Le seuil (ex. : température > 70°C).
  • La fréquence de vérification (ex. : toutes les 5 minutes).
  • Le canal de notification (email, Telegram, etc.).

Exemple avec Telegram :

Créez un bot via @BotFather sur Telegram et récupérez son token.

Ajoutez le bot à un groupe ou utilisez un chat ID personnel.

Configurez Grafana pour envoyer des notifications via l’API Telegram :

curl -s -X POST https://api.telegram.org/bot<VOTRE_TOKEN>/sendMessage \

-d chat_id=<VOTRE_CHAT_ID> \

-d text= »Température critique sur le Raspberry du salon ! »

Autres options : email via un relais SMTP, notifications via ntfy, ou intégration avec Home Assistant.

  • Côté client : Utiliser Grafana au quotidien

Une fois le monitoring configuré, voici comment les utilisateurs (administrateurs, passionnés, ou vous-même) interagissent avec Grafana :

Accès aux dashboards : Connectez-vous à http://<IP_DU_SERVEUR>:3000 depuis un navigateur sur votre PC, tablette, ou smartphone. Les dashboards sont accessibles en lecture seule pour les utilisateurs non-admin si configuré.

  • Consultation : Vérifiez les performances en temps réel ou explorez les données historiques (ex. : charge CPU sur une semaine). Aucun logiciel supplémentaire n’est requis, juste un navigateur.

Réception des alertes : Si configuré, vous recevrez des notifications (Telegram, email, etc.) en cas de problème. Assurez-vous que votre application de messagerie (ex. : Gmail, Telegram) est bien configurée pour afficher ces alertes rapidement.

Actions en cas d’alerte : Si un Raspberry Pi surchauffe ou redémarre, connectez-vous via SSH pour diagnostiquer (ex. : vérifier les processus avec top ou redémarrer avec sudo reboot).

  • Sécurisation : Pour éviter un accès non autorisé, désactivez la connexion anonyme dans Grafana (grafana.ini : anonymous = false) et utilisez un mot de passe fort.

Conseil pour les équipes : Si plusieurs personnes surveillent, créez des comptes utilisateur dans Grafana avec des rôles spécifiques (lecture seule ou édition).

Bonnes pratiques et optimisations

  • Sécurité :

Limitez l’accès à Grafana et Prometheus via un pare-feu (ex. : ufw allow from 192.168.1.0/24 to any port 3000).

Activez HTTPS avec un reverse proxy (NGINX ou Caddy) et un certificat Let’s Encrypt.

Si exposé sur Internet, utilisez un VPN ou une authentification forte.

  • Fiabilité :

Sauvegardez régulièrement la configuration de Grafana (dossier /var/lib/grafana).

Ajoutez des labels dans prometheus.yml (ex. : alias: salon) pour identifier facilement chaque Pi.

Surveillez l’espace disque des cartes SD, souvent limité sur les Raspberry Pi.

  • Tests :

Vérifiez la collecte des métriques : curl http://<IP_PI>:9100/metrics.

Consultez Status > Targets dans Prometheus pour confirmer que toutes les cibles sont actives.

  • Automatisation :

Configurez un watchdog système sur les Pi critiques pour détecter les blocages.

Utilisez un DNS local ou /etc/hosts pour simplifier la gestion des IP.

Conclusion

Avec Grafana, Prometheus, et Node Exporter, vous disposez d’une solution de monitoring puissante pour vos Raspberry Pi. Vous pouvez surveiller leurs performances, détecter les problèmes avant qu’ils ne s’aggravent, et optimiser vos projets auto-hébergés. Que vous gériez un seul Pi ou une flotte entière, ce système est fiable, flexible, et accessible depuis n’importe quel appareil via un simple navigateur.

Pour aller plus loin, explorez les dashboards personnalisés ou intégrez ce monitoring à d’autres outils comme Home Assistant.

Leave a Reply