Installer Grafana avec Docker Compose : guide pas à pas

Bannière : installer Grafana avec Docker Compose

Grafana est l'outil de référence pour visualiser des métriques et construire des tableaux de bord de supervision. Avec Docker Compose, on peut le déployer proprement en quelques minutes, avec une configuration reproductible et facile à faire évoluer. C'est exactement le genre de socle que je mets en place chez mes clients avant d'y brancher leurs métriques (serveurs, réseau, applications).

Pré-requis : Docker et Docker Compose installés (docker --version et docker compose version), ainsi qu'un accès en ligne de commande à votre serveur (Linux, macOS ou WSL).

1. Créer le fichier docker-compose.yml

Créez un dossier dédié pour votre stack de supervision, puis un fichier docker-compose.yml à l'intérieur :

docker-compose.yml
version: "3.8"

services:
  grafana:
    image: grafana/grafana-oss:latest
    container_name: grafana
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      GF_SECURITY_ADMIN_USER: admin
      GF_SECURITY_ADMIN_PASSWORD: change-moi
      GF_SERVER_ROOT_URL: http://localhost:3000
    volumes:
      - grafana-data:/var/lib/grafana

# Volume nommé pour persister les dashboards et la configuration
volumes:
  grafana-data:

Ce fichier définit un unique service grafana, exposé sur le port 3000, avec un identifiant/mot de passe administrateur définis via variables d'environnement et un volume nommé pour que vos dashboards survivent aux redémarrages du conteneur.

2. Démarrer la stack

Depuis le dossier contenant votre docker-compose.yml, lancez :

terminal
$ docker compose up -d
# Vérifier que le conteneur tourne bien
$ docker compose ps

Docker télécharge l'image officielle puis démarre Grafana en arrière-plan. Rendez-vous ensuite sur http://localhost:3000 (ou l'adresse IP de votre serveur) et connectez-vous avec les identifiants définis dans le fichier.

3. Changer le mot de passe et sécuriser l'accès

Dès la première connexion, changez le mot de passe administrateur si vous ne l'avez pas déjà personnalisé dans le fichier. Quelques réflexes essentiels pour un déploiement exposé sur Internet :

  • Ne jamais laisser admin / admin en production.
  • Placer Grafana derrière un reverse proxy (Nginx, Traefik ou Caddy) avec HTTPS via Let's Encrypt.
  • Restreindre l'accès par IP ou VPN si l'outil n'a pas besoin d'être public.
  • Activer l'authentification via un fournisseur externe (OAuth, LDAP) pour une équipe.

4. Ajouter une source de données

Grafana ne stocke pas de métriques par lui-même : il les visualise depuis une source externe. Les plus courantes sont Prometheus, InfluxDB ou encore une base SQL classique. Pour ajouter Prometheus par exemple :

  1. Dans le menu, ouvrez Connections → Data sources.
  2. Cliquez sur Add data source et choisissez Prometheus.
  3. Renseignez l'URL de votre instance (ex. http://prometheus:9090 si elle tourne dans le même réseau Docker).
  4. Cliquez sur Save & test pour valider la connexion.
Astuce : pour superviser rapidement un serveur, la combinaison Prometheus + node_exporter + Grafana est un grand classique, facilement ajoutable au même docker-compose.yml sous forme de services supplémentaires.

5. Importer un premier dashboard

Plutôt que de tout construire à la main, la communauté Grafana met à disposition des milliers de dashboards prêts à l'emploi. Dans Dashboards → New → Import, il suffit de renseigner l'identifiant d'un dashboard public (visible sur grafana.com/dashboards) pour l'importer et le connecter à votre source de données.

Un dashboard bien construit vaut mieux que dix alertes ignorées : commencez simple, avec 4 ou 5 métriques réellement utiles, puis enrichissez progressivement.

6. Sauvegarder votre configuration

Le volume nommé grafana-data contient l'ensemble de vos dashboards, sources de données et utilisateurs. Pensez à l'inclure dans votre politique de sauvegarde habituelle, par exemple avec un export régulier du volume Docker vers un stockage externe.

Conclusion

En quelques minutes et un unique fichier docker-compose.yml, vous disposez d'une base de supervision solide et reproductible. C'est typiquement le genre de socle que je mets en place lors d'un audit d'infrastructure, avant de le connecter aux métriques spécifiques d'un client. Si vous souhaitez être accompagné sur la mise en place ou la sécurisation de votre supervision, n'hésitez pas à me contacter.

R
Raph — Chronoassistance 25 ans d'expérience en informatique, cybersécurité et infrastructure.