Abstract teal and amber illustration representing Grafana, a self-hosted monitoring and dashboard visualization platform

Grafana

Grafana

Grafana est une plateforme open source qui transforme métriques, logs et traces en tableaux de bord réellement lisibles d’un coup d’œil. Pointez-la vers une base de données de séries temporelles, un agrégateur de logs ou même une simple table SQL : elle interroge directement cette source et affiche les résultats sous forme de graphiques, tableaux, heatmaps ou alertes, le tout sur un seul écran. Grafana ne collecte ni ne stocke aucune donnée elle-même. C’est la couche de visualisation et d’alerting posée au-dessus de ce qui collecte déjà vos métriques.

Licence : Grafana est distribué sous licence GNU Affero General Public License v3.0 (AGPL-3.0-only), confirmée directement depuis le fichier LICENSE du dépôt GitHub grafana/grafana, pas déduite d’un simple badge. Ce n’est pourtant pas la licence de départ : Grafana a tourné sous la licence permissive Apache License 2.0 jusqu’au 20 avril 2021, date à laquelle Grafana Labs a rebasculé Grafana, ainsi que les projets sœurs Loki et Tempo, vers l’AGPLv3. Le fichier LICENSING.md du dépôt prévoit aussi de vraies exceptions : des paquets comme grafana-ui et grafana-data restent en Apache-2.0, et une édition Grafana Enterprise séparée, non open source, vient se greffer sur le socle AGPL, un point qui compte dès qu’on aborde Docker.

En bref : Site officiel grafana.com · GitHub grafana/grafana, plus de 74 000 étoiles · Image Docker grafana/grafana sur Docker Hub, Verified Publisher, plus d’1 milliard de pulls.

Pourquoi Grafana est passé sous licence AGPL

Grafana Labs a invoqué la même pression que subissaient plusieurs éditeurs d’infrastructure open source : de grands fournisseurs cloud reconditionnaient leur propre logiciel en service managé concurrent, sans jamais reverser leurs contributions. Elastic et MongoDB avaient déjà réagi en basculant vers des licences source-available que l’Open Source Initiative ne reconnaît pas comme open source. Grafana Labs a préféré l’AGPLv3, une licence approuvée par l’OSI qui referme quand même la faille : quiconque exploite une version modifiée en tant que service réseau doit aussi partager ce code modifié. Pour une installation en homelab, cela ne change rien à l’usage quotidien, mais ça explique le décalage de licence qu’on retrouve encore dans d’anciens tutoriels.

Ce que fait vraiment Grafana

Dans la pratique, l’usage de Grafana se résume à trois choses. Les tableaux de bord sont la partie visible : un éditeur de panneaux en glisser-déposer avec des dizaines de types de visualisation (séries temporelles, heatmaps, tableaux, jauges, geomaps), plus des variables de modèle qui permettent à un seul dashboard de couvrir plusieurs hôtes ou services d’un simple changement dans une liste déroulante. Ce qui rend l’outil polyvalent plutôt que figé sur un seul usage, c’est la couche des sources de données : plus de 150 plugins natifs et communautaires couvrant Prometheus, InfluxDB, Elasticsearch, Loki, MySQL, PostgreSQL ou CloudWatch, un même tableau de bord pouvant en mélanger plusieurs à la fois. Vient enfin l’alerting, un moteur unifié qui évalue des requêtes selon un planning et route tout ce qui franchit un seuil vers Slack, un e-mail, PagerDuty ou un simple webhook.

Installer Grafana avec Docker

Grafana publie deux images Docker, et celle que vous finissez par lancer dépend souvent de si vous copiez la première commande venue. grafana/grafana-enterprise est le choix par défaut recommandé dans la documentation actuelle de Grafana, gratuite à exécuter et fonctionnellement proche du build open source tant qu’on n’ajoute pas de clé de licence payante, mais elle est publiée sous une licence séparée, non-AGPL. grafana/grafana est le build purement open source, et depuis la version 12.4.0, elle a purement et simplement remplacé l’ancien tag grafana/grafana-oss : les deux sont désormais la même image. Si faire tourner spécifiquement l’édition sous licence AGPL compte pour vous, utilisez grafana/grafana.

Surveillez le nom de l’image. La documentation d’installation de Grafana utilise par défaut grafana/grafana-enterprise dans tous ses exemples docker run et docker-compose, pas grafana/grafana. Copier-coller la page officielle sans y prêter attention installe donc l’image Enterprise. Elle ne coûte rien sans clé de licence, mais ce n’est pas le build purement open source.

services:
  grafana:
    image: grafana/grafana:latest
    container_name: grafana
    restart: unless-stopped
    ports:
      - "3000:3000"
    volumes:
      - grafana-storage:/var/lib/grafana

volumes:
  grafana-storage:
docker compose up -d

Une fois le conteneur lancé, Grafana répond sur le port 3000, avec un identifiant par défaut admin/admin qu’il vous oblige à changer dès la première connexion. Par défaut, il stocke tableaux de bord, utilisateurs et règles d’alerte dans une base SQLite embarquée à l’intérieur de ce volume, largement suffisant pour un usage expérimental en solo. La documentation de configuration de Grafana recommande elle-même une base PostgreSQL ou MySQL externe avant toute mise en production ou dès qu’il y a plusieurs instances.

  1. Ouvrez http://ip-de-votre-serveur:3000 et connectez-vous avec admin/admin, puis définissez un vrai mot de passe quand on vous le demande.
  2. Allez dans Connections → Data sources et ajoutez ce qui collecte vos métriques ; Prometheus et InfluxDB sont les points de départ les plus courants.
  3. Construisez un tableau de bord, ou importez-en un tout prêt depuis le catalogue de dashboards de Grafana.
  4. Configurez au moins une règle d’alerte et un point de contact avant de supposer que tout restera au vert.

Matériel : Grafana lui-même est léger, un simple binaire Go dans un seul conteneur, à l’aise sur un Raspberry Pi ou une petite VM même avec plusieurs tableaux de bord ouverts. Ce qui pèse réellement sur le besoin matériel, c’est la source de données en dessous : une instance Prometheus qui scrape des milliers de métriques a besoin de vrai disque et de vraie RAM, ce que Grafana, lui, n’exige pas pour simplement interroger ces données. Notre guide de configuration homelab pour débutants détaille le choix du matériel pour l’ensemble de la stack.

Cas d’usage en homelab

Le partenaire naturel de Grafana, c’est Prometheus : Prometheus scrape et stocke les métriques, Grafana les interroge et les affiche, et les deux apparaissent ensemble si souvent qu’on les croit parfois issus du même projet. Ce n’est pas le cas, et sans base de métriques derrière lui, Grafana n’a tout simplement rien à afficher. Home Assistant devient une source de données courante dès que les tableaux de bord dépassent l’infrastructure pour s’intéresser à la maison, en exportant un historique de capteurs pour des graphiques qui vont bien au-delà de la vue historique intégrée de Home Assistant. Uptime Kuma dit si un service est up en ce moment ; Grafana dit comment il a évolué dans le temps, et les homelabs font souvent tourner les deux. Les métriques de conteneurs arrivent généralement jusqu’à Grafana via un exporter Prometheus, Portainer se chargeant plutôt de gérer les conteneurs que leurs métriques.

Grafana : avantages et inconvénients

  • Gratuit et intégralement open source sous AGPL-3.0 pour le produit principal, sans limite de tableaux de bord ni d’utilisateurs
  • Écosystème de sources de données énorme, un même dashboard peut mélanger Prometheus, une base SQL et un système de logs
  • Outil de référence dans l’industrie, les compétences acquises en homelab se transfèrent directement à de vrais postes DevOps et SRE
  • Immense bibliothèque de dashboards communautaires prêts à l’emploi, à importer plutôt qu’à construire panneau par panneau
  • Ne collecte ni ne stocke aucune métrique par lui-même, Prometheus, InfluxDB ou équivalent doit quand même tourner à côté
  • L’exemple docker run officiel récupère par défaut l’image Enterprise, pas la version purement open source
  • Construire de vrais tableaux de bord demande de maîtriser un langage de requête, PromQL, Flux ou SQL selon la source connectée
  • La base SQLite embarquée par défaut n’est plus recommandée dès qu’il y a plusieurs utilisateurs ou plusieurs instances

Des alternatives à connaître

Prometheus embarque son propre navigateur d’expressions, suffisant pour tracer une requête isolée en phase de débogage, mais sans rien du dashboarding ni de l’alerting de Grafana. Netdata prend le chemin inverse : des tableaux de bord préconstruits en temps réel avec une configuration proche de zéro, au prix d’une flexibilité moindre contre une mise en route bien plus rapide. Kibana joue un rôle comparable pour la stack Elastic et OpenSearch, pensé logs d’abord plutôt que métriques d’abord. Pour les homelabs où la seule vraie question est de savoir si ça tourne, Uptime Kuma est l’outil plus léger et dédié à regarder en premier.

FAQ

Grafana est-il gratuit ?

Oui. Le produit principal est gratuit et intégralement open source sous AGPL-3.0, sans limite de tableaux de bord ni d’utilisateurs. Grafana Enterprise ajoute du support payant et des plugins propriétaires, mais l’image grafana/grafana fonctionne sans clé de licence, en tant que palier gratuit et open source.

Faut-il Prometheus pour utiliser Grafana ?

Non, mais il vous faut quelque chose d’équivalent. Grafana visualise les données et déclenche des alertes dessus ; il ne collecte ni ne stocke aucune métrique lui-même. Prometheus est l’association la plus courante, mais InfluxDB, Loki, Elasticsearch ou une simple base SQL fonctionnent tout aussi bien.

Quelle base de données utilise Grafana ?

Par défaut, une base SQLite embarquée dans son volume de données, largement suffisante pour un usage expérimental en solo. La documentation de Grafana recommande elle-même une base PostgreSQL ou MySQL externe avant toute mise en production ou dès qu’il y a plusieurs instances.

Faut-il utiliser grafana/grafana ou grafana/grafana-enterprise ?

Pour un déploiement purement open source sous licence AGPL, utilisez explicitement grafana/grafana. La documentation de Grafana fait pointer par défaut ses exemples copier-coller vers grafana/grafana-enterprise, gratuite à exécuter mais publiée sous une licence séparée, non-AGPL.

Grafana est-il difficile à mettre en place ?

Faire tourner un conteneur est simple : un fichier docker-compose et quelques minutes suffisent. Ce qui prend plus de temps, c’est de connecter de vraies sources de données, d’apprendre assez de langage de requête pour construire un dashboard utile, puis éventuellement de migrer hors de SQLite. C’est cet écart qui justifie notre note de difficulté Medium plutôt qu’Easy.

Grafana mérite sa place en homelab de la même façon que dans une stack de production : non pas en collectant quoi que ce soit lui-même, mais en rendant tout le reste digne d’être regardé. Notre guide de configuration homelab pour débutants couvre les bases Docker dont il dépend. Les catégories Monitoring et Docker & Containers complètent le reste de l’outillage présenté ici.