Surveiller ses Raspberry Pi avec Grafana, Prometheus et Node Exporter

Facebook Twitter Google Plus 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