Index du journalDockup / note de terrain
Note / self-host-grafana

Comment auto-héberger Grafana en 2026 : tableaux de bord, alertes et persistance des données

Déployez Grafana avec le port approprié, un stockage durable, TLS, une authentification et des sauvegardes. Résolvez les problèmes de disparition des tableaux de bord liés au fichier SQLite en production.

Il existe deux façons de « faire fonctionner Grafana » : un conteneur existe, ou le service remplit réellement sa mission. Seule la seconde compte. Ici, la preuve consiste à ajouter une data source en lecture seule, enregistrer un panneau, évaluer une règle d’alerte et envoyer une notification de test via un contact point.

Grafana sert précisément à cela : fournir des tableaux de bord et des alertes à partir de métriques, de logs et de traces. Le déploiement doit préserver les éléments qui permettent ce fonctionnement ; un port, un volume et un certificat sont des prérequis, pas le résultat.

Architecture de production de Grafana

Le processus HTTP de Grafana écoute sur le port 3000 ; conservez ce port sur le réseau applicatif et ne publiez que la route de la plateforme. Le contrat réseau de Grafana repose sur des data sources accessibles et sur SMTP si l’envoi d’alertes est requis. Conservez les endpoints privés sur un DNS interne, n’autorisez que les appels sortants nécessaires et fournissez à Grafana un identifiant de service aux privilèges limités.

Formalisez cette limite dans un court contrat : qui est responsable du besoin, quel identifiant est utilisé, quel délai d’expiration est acceptable et comment l’échec se manifeste. Exécutez ensuite cette transaction : ajouter une data source en lecture seule, enregistrer un panneau, évaluer une règle d’alerte et envoyer une notification de test via un contact point. Pendant l’exécution, observez la dispersion des requêtes, les intervalles d’actualisation des tableaux de bord, l’évaluation des alertes et la mémoire des plugins plutôt que les métriques stockées par Grafana lui-même, car cette charge fournit une base de dimensionnement plus utile qu’un conteneur inactif.

Démarrer Grafana sans masquer les éléments mobiles

Démarrez Grafana de manière à conserver la route privée jusqu’à la fin de l’initialisation.

docker run -d \
  --name grafana \
  --restart unless-stopped \
  -p 127.0.0.1:3000:3000 \
  -v grafana-data:/var/lib/grafana \
  -e GF_SECURITY_ADMIN_PASSWORD=replace-with-a-long-random-value \
  grafana/grafana:latest

Si le processus redémarre en boucle, comparez l’utilisateur attendu par l’image avec le propriétaire de chaque chemin monté. S’il reste actif, testez localement le port 3000, puis passez directement au workflow : ajouter une data source en lecture seule, enregistrer un panneau, évaluer une règle d’alerte et envoyer une notification de test via un contact point. Ne verrouillez la version de l’image qu’après la réussite de cette vérification de bout en bout, et consignez la configuration exacte à côté du service.

Attribuer une adresse canonique à Grafana

L’émission du certificat TLS ne représente que la moitié de la route Grafana. Définissez GF_SERVER_ROOT_URL sur l’URL HTTPS publique. Acheminez le trafic en interne vers le port 3000 et transmettez le schéma externe afin que les URL générées et les cookies sécurisés restent cohérents.

Utilisez le scénario Grafana complet depuis un réseau vierge, et pas uniquement la page racine. Une erreur 502 ou un problème de certificat peut être isolé grâce à la configuration automatique du domaine et de TLS. Si le trafic atteint le processus et que les tableaux de bord disparaissent avec le fichier SQLite, ou si les callbacks OAuth utilisent localhost, diagnostiquez la condition à l’endroit où elle se produit au lieu d’empiler les redirections.

Concevoir la restauration de Grafana avant le lancement

L’ensemble nécessaire à une récupération durable comprend la base de données Grafana, les plugins et la configuration provisionnée. Montez /var/lib/grafana avant l’initialisation, écrivez des données d’exemple inoffensives et remplacez le conteneur pour vérifier que ce chemin est réellement persistant. Un volume protège les données contre le remplacement du conteneur, mais pas contre la perte de l’hôte, une suppression accidentelle ou une corruption au niveau applicatif.

Effectuez des sauvegardes adaptées à la data source : utilisez des dumps logiques pour les bases de données actives lorsque cela est nécessaire et ne copiez les fichiers qu’à partir d’un état cohérent. Conservez une copie chiffrée en dehors de l’hôte Grafana. Le critère d’acceptation d’une restauration doit être précis : les utilisateurs, dossiers, tableaux de bord, règles d’alerte et métadonnées des data sources sont restaurés, et l’alerte de test est évaluée. Le guide des sauvegardes dont la restauration a été testée explique pourquoi la réussite d’un job ne suffit pas.

Fermer les accès temporaires de configuration

Un déploiement Grafana sécurisé commence par la suppression des privilèges superflus. Évitez de conserver admin/admin ou d’exposer involontairement un accès anonyme ; remplacez plutôt le mot de passe administrateur initial, limitez la modification des data sources et attribuez aux tokens de compte de service une portée restreinte.

Remplacez immédiatement la valeur d’exemple de GF_SECURITY_ADMIN_PASSWORD, stockez-la en dehors de l’image et faites-la tourner comme un identifiant administrateur si elle est exposée. Limitez l’accès aux routes d’administration, utilisez un DNS privé pour les dépendances et examinez chaque bind mount. Lorsque les logs sont envoyés vers un système central, filtrez les secrets et les contenus privés avant qu’ils ne quittent le serveur.

Répéter le changement Grafana à risque

Un conteneur sain est nécessaire, mais pas suffisant. L’indicateur de niveau de service est la réussite de l’opération « ajouter une data source en lecture seule, enregistrer un panneau, évaluer une règle d’alerte et envoyer une notification de test via un contact point », tandis que les signaux de pression les plus probables sont la dispersion des requêtes, les intervalles d’actualisation des tableaux de bord, l’évaluation des alertes et la mémoire des plugins, plutôt que les métriques stockées par Grafana lui-même.

La gestion des changements est importante, car les migrations de la base de données Grafana et la compatibilité des plugins nécessitent une mise à niveau progressive avec les mêmes fichiers de provisioning. Conservez l’ancienne image, testez les migrations sur un état copié et documentez la prise en charge ou non d’un rollback après l’évolution du schéma. Si les tableaux de bord disparaissent avec le fichier SQLite ou si les callbacks OAuth utilisent localhost, diagnostiquez la première limite qui diffère de l’environnement fonctionnel.

Consigner un déploiement Grafana de référence

Pour Grafana, définissez une transaction de référence avant le lancement : ajouter une data source en lecture seule, enregistrer un panneau, évaluer une règle d’alerte et envoyer une notification de test via un contact point. Placez ses prérequis, la réponse attendue et les étapes de nettoyage dans le contrôle de version, sans les valeurs secrètes. Verrouillez la version de l’image utilisée pour établir cette référence.

Utilisez cette transaction pour valider un remplacement et une restauration indépendante. Le service restauré n’est acceptable que lorsque les utilisateurs, dossiers, tableaux de bord, règles d’alerte et métadonnées des data sources sont de retour et que l’alerte de test est évaluée. En parallèle, observez la dispersion des requêtes, les intervalles d’actualisation des tableaux de bord, l’évaluation des alertes et la mémoire des plugins plutôt que les métriques stockées par Grafana lui-même, puis transformez l’élément le plus lent ou le plus contraint en alerte de niveau de service.

La validation doit également inclure un cas négatif : refusez temporairement à l’identité de test l’accès aux data sources accessibles et à SMTP si l’envoi d’alertes est requis. Vérifiez que Grafana produit une erreur exploitable tout en préservant les données, rétablissez la condition valide et répétez la transaction de référence. La conservation des deux résultats empêche un endpoint de santé superficiel de devenir la seule preuve disponible en production.

Là où Dockup simplifie le travail avec Grafana

Le routage, les certificats, le remplacement des services et le stockage attaché sont de bonnes cibles pour l’automatisation. Dockup les prend en charge pour Grafana et peut provisionner la base de données managée associée ou se connecter à des services hébergés sur le serveur du client.

En revanche, il ne doit pas inventer la politique de confiance de Grafana. Après le déploiement, définissez GF_SERVER_ROOT_URL sur l’URL HTTPS publique, appliquez cette limite — remplacez le mot de passe administrateur initial, limitez la modification des data sources et attribuez aux tokens de compte de service une portée restreinte — puis vérifiez le résultat du scénario suivant : ajouter une data source en lecture seule, enregistrer un panneau, évaluer une règle d’alerte et envoyer une notification de test via un contact point. Le résultat est une infrastructure déployable en un clic, accompagnée d’un test d’acceptation spécifique à l’application.

Foire aux questions

De quoi Grafana a-t-il besoin pour un déploiement en production ?

Acheminez le conteneur Grafana sur le port 3000 via une seule origine HTTPS. Le prérequis réseau associé consiste à disposer de data sources accessibles et de SMTP si l’envoi d’alertes est requis. Ne considérez pas Grafana comme prêt tant que vous ne pouvez pas ajouter une data source en lecture seule, enregistrer un panneau, évaluer une règle d’alerte et envoyer une notification de test via un contact point.

Quelles données Grafana doivent figurer dans une sauvegarde ?

Rendez /var/lib/grafana persistant et incluez la base de données Grafana, les plugins et la configuration provisionnée dans le même manifeste de récupération. Une restauration Grafana propre n’est réussie que lorsque les utilisateurs, dossiers, tableaux de bord, règles d’alerte et métadonnées des data sources sont restaurés et que l’alerte de test est évaluée.

Grafana a-t-il besoin de HTTPS derrière un reverse proxy ?

Utilisez HTTPS pour l’origine Grafana publique et conservez le port 3000 sur la route interne. Appliquez correctement le paramètre Grafana : définissez GF_SERVER_ROOT_URL sur l’URL HTTPS publique. Pour Grafana, HTTPS protège les identifiants ou le contenu utilisateur pendant leur transit et garantit la cohérence du comportement client sensible à l’origine.

Comment tester une mise à niveau de Grafana ?

Restaurez l’état Grafana actuel dans un déploiement isolé, appliquez la version candidate et répétez sa transaction d’acceptation. Soyez particulièrement attentif, car les migrations de la base de données Grafana et la compatibilité des plugins nécessitent une mise à niveau progressive avec les mêmes fichiers de provisioning. Conservez l’ancienne image Grafana jusqu’à ce que les limites de migration des données et de rollback soient bien comprises.