Aller au contenu principal

Non classé

[NOC] Module 3/10 — Grafana : transformer vos métriques en tableaux de bord visuels

34 objets en collection 10 articles maj il y a 2 jours
f X in

Grafana Raspberry Pi : tableau de bord de supervision réseau avec graphiques CPU, RAM et trafic

Grafana Raspberry Pi : c’est l’étape qui transforme mes métriques brutes en vrais tableaux de bord visuels.

Deux articles, deux briques posées : Prometheus collecte les métriques (article 1), Uptime Kuma surveille la disponibilité (article 2). Il ne manque plus qu’une chose : un moyen de visualiser tout ça sans avoir à écrire des requêtes PromQL à la main dans l’interface brute de Prometheus. C’est le rôle de Grafana, la troisième brique de mon NOC (Network Operation Center) maison.

Grafana Raspberry Pi, c’est quoi exactement ?

Grafana est un outil open source de visualisation de données. Il ne collecte rien lui-même : il se branche sur une ou plusieurs « sources de données » (Prometheus, dans notre cas) et transforme les métriques stockées en graphiques, jauges, tableaux, cartes de statut… Le tout dans des « dashboards » (tableaux de bord) entièrement personnalisables, organisés en panneaux (« panels ») que vous disposez comme vous le souhaitez.

Dans mon projet NOC, Grafana tourne sur mon Raspberry Pi principal (celui qui héberge aussi mon dashboard maison), branché sur le Prometheus installé dans l’article 1. C’est l’écran final que je regarde pour avoir une vue d’ensemble visuelle de tout mon réseau.

Prérequis

  • Un Raspberry Pi (ou toute machine Linux) avec Prometheus déjà installé et fonctionnel (voir l’article 1 de cette série si ce n’est pas encore fait).
  • Un accès SSH ou un clavier/écran sur cette machine.
  • Comme toujours : les adresses IP de cet article sont généralisées en 192.168.1.X.

Étape 1 : installer Grafana

Installer Grafana Raspberry Pi commence par l’ajout de son dépôt APT officiel, ce qui permet une installation propre et des mises à jour faciles. On commence par ajouter sa clé et son dépôt :

sudo apt install -y apt-transport-https software-properties-common wget
sudo mkdir -p /etc/apt/keyrings/
wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null
echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee /etc/apt/sources.list.d/grafana.list

On met à jour la liste des paquets et on installe Grafana :

sudo apt update
sudo apt install -y grafana

On active et démarre le service :

sudo systemctl enable --now grafana-server

On vérifie que tout tourne bien :

sudo systemctl status grafana-server

Vous devriez voir un statut active (running) en vert. Grafana écoute par défaut sur le port 3000.

Étape 2 : première connexion

Rendez-vous dans un navigateur sur :

http://192.168.1.X:3000

Les identifiants par défaut sont admin / admin. Grafana vous demandera immédiatement de changer ce mot de passe : faites-le, c’est important, cette interface donne accès à toutes vos données de supervision.

Étape 3 : connecter Prometheus comme source de données

Direction le menu Connections → Data sources → Add data source, puis choisissez Prometheus. Dans le champ URL, indiquez l’adresse de votre Prometheus :

http://192.168.1.X:9090

(remplacez par l’adresse réelle du Raspberry Pi qui héberge Prometheus — si Grafana et Prometheus tournent sur la même machine, vous pouvez aussi utiliser http://localhost:9090). Cliquez ensuite sur « Save & Test » en bas de page : un message vert doit confirmer que la connexion fonctionne.

Étape 4 : créer votre premier dashboard

Direction Dashboards → New → New Dashboard, puis « Add visualization ». Choisissez votre source de données Prometheus, puis dans le champ de requête, entrez par exemple :

100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)

Cette requête PromQL calcule le pourcentage d’utilisation CPU (l’inverse du temps « idle », c’est-à-dire inactif) pour chaque machine surveillée. Choisissez un type de visualisation à droite (par exemple « Time series » pour un graphique dans le temps, ou « Gauge » pour une jauge), donnez un titre au panel, puis cliquez sur « Save » pour l’ajouter à votre dashboard. Vous pouvez répéter l’opération pour la RAM, la température, l’espace disque, etc., en ajustant la requête PromQL à chaque fois.

Astuce pour les débutants en PromQL : vous n’avez pas besoin de tout connaître par cœur. Le panneau d’édition de Grafana propose un explorateur de métriques (bouton « Metrics browser » ou équivalent selon la version) qui liste toutes les métriques disponibles et vous aide à construire la requête pas à pas.

Étape 5 : importer un dashboard tout fait (gain de temps)

Plutôt que de tout construire panel par panel pour votre Grafana Raspberry Pi, la communauté Grafana partage des milliers de dashboards prêts à l’emploi. Pour Node Exporter par exemple, direction Dashboards → New → Import, puis entrez l’ID 1860 (un dashboard « Node Exporter Full » très complet et populaire) dans le champ prévu, cliquez sur « Load », sélectionnez votre source de données Prometheus, puis « Import ». Vous obtenez instantanément un dashboard complet avec des dizaines de graphiques déjà configurés.

Dépannage

« No data » sur tous les panels de votre Grafana Raspberry Pi : vérifiez d’abord que la source de données Prometheus est bien testée avec succès (Connections → Data sources → votre source → « Save & Test »). Vérifiez ensuite que la plage de temps affichée en haut à droite du dashboard couvre une période où Prometheus collectait déjà des données.

Impossible d’accéder à l’interface sur le port 3000 : vérifiez que le service tourne (sudo systemctl status grafana-server) et qu’aucun pare-feu ne bloque ce port sur votre réseau local.

Mot de passe admin oublié : vous pouvez le réinitialiser en ligne de commande avec l’outil fourni par Grafana :

sudo grafana-cli admin reset-admin-password nouveau_mot_de_passe

Petit glossaire

  • Data source (source de données) : le système d’où Grafana va chercher les données à afficher (ici, Prometheus).
  • Dashboard (tableau de bord) : dans Grafana Raspberry Pi, une page regroupant plusieurs panels, organisée librement.
  • Panel : un graphique, une jauge, un tableau… un élément visuel individuel d’un dashboard.
  • PromQL : le langage de requête de Prometheus (voir l’article 1), utilisé par Grafana pour interroger les données à afficher. Pour aller plus loin, consultez la documentation officielle PromQL.

Et maintenant ?

Grafana Raspberry Pi est maintenant opérationnel : Prometheus collecte, Uptime Kuma surveille la disponibilité, Grafana visualise. Les trois piliers de mon NOC sont posés. Dans le prochain article de cette série, on va s’intéresser à Dashy, un tableau de bord de type « page d’accueil » pour centraliser les liens vers tous les services de mon réseau en un seul endroit. Rendez-vous très vite !

Grafana est-il gratuit ?

Oui, Grafana est open source et gratuit dans sa version self-hosted, celle utilisée dans ce guide. Il existe aussi une offre Grafana Cloud payante, mais elle n’est pas nécessaire pour un usage personnel sur Raspberry Pi.

Quelle est la différence entre Prometheus et Grafana ?

Prometheus collecte et stocke les métriques, tandis que Grafana se contente de les visualiser. Les deux outils sont complémentaires : Grafana a besoin d’une source de données comme Prometheus pour fonctionner.

Mon Raspberry Pi est-il assez puissant pour faire tourner Grafana ?

Oui, Grafana Raspberry Pi est une combinaison légère : elle fonctionne très bien sur un Raspberry Pi 3B+ ou 4B avec les ressources habituellement disponibles pour un usage de supervision domestique.

Comment accéder à Grafana depuis l’extérieur de mon réseau local ?

Par défaut, Grafana n’est accessible que sur votre réseau local (port 3000). Pour y accéder depuis l’extérieur, configurez un accès VPN vers votre réseau, ou exposez le service avec les précautions de sécurité adaptées (reverse proxy en HTTPS, authentification renforcée).

Puis-je visualiser plusieurs Raspberry Pi avec la même instance Grafana ?

Oui, une seule instance de Grafana peut afficher les métriques de plusieurs machines, à condition que chacune expose ses métriques (par exemple via Node Exporter) à une instance Prometheus centralisée que Grafana interroge.

Partager : fFacebook XX WhatsApp inLinkedIn

← Retour aux actualités

Laisser un commentaire