Niveau 🔴 avancé
Durée estimée : 20 min · Prérequis : Exploiter sa supervision au quotidien
Si les métriques (vues en page précédente) sont les relevés
chiffrés d'un tableau de bord de voiture (vitesse, niveau d'essence), les logs sont le journal de
bord écrit du conducteur — des événements datés, en texte libre, qui racontent ce qui s'est
passé, pas seulement combien. Les deux se complètent : une métrique signale qu'une panne a eu
lieu Ă telle heure, un log en explique souvent le pourquoi.
Un log est un message texte, horodaté, produit par un service pour tracer son activité —
une requête reçue, une erreur rencontrée, un démarrage effectué. Sans centralisation, consulter
les logs d'un homelab avec plusieurs services signifie se connecter Ă chaque conteneur un par un
(docker logs <service>) — praticable avec deux ou trois services, laborieux au-delà .
Promtail collecte les logs de chaque conteneur (ou fichier de log) et les envoie vers un
point central. Loki stocke ces logs collectés et permet de les interroger — le même principe
que Prometheus pour les métriques (collecte par un agent, stockage et requêtage central), mais
appliqué aux messages texte plutôt qu'aux valeurs numériques. Grafana, déjà croisé pour les
métriques, sait aussi afficher et interroger les logs stockés dans Loki, dans la même interface.
LogQL, le langage de requête de Loki, permet de filtrer les logs par étiquette (le nom du
conteneur source, par exemple) puis par motif de texte :
{container="reverse-proxy"} |= "error"
Cette requête sélectionne les logs du conteneur reverse-proxy, puis ne garde que les lignes
contenant le mot error — bien plus rapide qu'un grep manuel répété sur chaque conteneur pris
séparément.
⚠️ Honnêtement, un manque assumé : pas de stockage persistant pour Loki, à ce jour. Loki
est bien déployé et collecte activement les logs des services — mais sans volume persistant
configuré, son historique de logs disparaît à la suppression ou à la recréation de son
conteneur, contrairement Ă ce qui serait attendu d'un stockage de logs durable. Ce point est
identifié comme correctif à apporter dans un futur incrément, pas encore réalisé — signalé ici
honnêtement plutôt que présenté comme déjà réglé, dans le même esprit que l'absence de
sauvegarde vue en M5.
🧪 Concrètement, sur notre exemple : Promtail et Loki font partie de la même stack de
supervision que Prometheus et Grafana (déjà présentée en
M6), avec des versions figées comme le
reste des services de ce dépôt. Grafana sert d'interface unique pour consulter à la fois les
métriques et les logs, réduisant le nombre d'outils à connaître au quotidien.
Promtail joue, pour les logs, le rôle que node_exporter joue pour les métriques (vu en M6) : un
agent de collecte, séparé de l'outil qui stocke et de celui qui affiche.
docker logs reverse-proxy --tail 50
# Sans centralisation : consulte les 50 dernières lignes d'UN SEUL
# conteneur -- le réflexe de base, mais qui ne passe pas à l'échelle
# au-delĂ de deux ou trois services
# Dans l'explorateur de logs de Grafana, requête LogQL équivalente
# mais centralisée, sur tous les conteneurs à la fois :
# {container=~".+"} |= "error"
Dans Grafana, section « Explore », sélectionne la source de données Loki et exécute
{container=~".+"} (tous les conteneurs). Des lignes de logs récentes, horodatées, doivent
s'afficher — la preuve que la chaîne complète (Promtail → Loki → Grafana) fonctionne.
| SymptĂ´me | Cause probable | Solution |
|---|---|---|
| Logs disparus après un redémarrage ou une recréation du conteneur Loki | Absence de volume persistant pour le stockage de Loki | Configurer un bind mount vers le dossier de données de Loki, comme pour les autres services de ce dépôt |
| Requête LogQL qui ne retourne rien alors que le service produit bien des logs | Étiquette (container=...) mal orthographiée ou service pas encore rattaché à Promtail |
Vérifier la configuration de collecte de Promtail pour ce conteneur précis |
| Recherche de logs faite conteneur par conteneur, en boucle manuelle | Absence de centralisation, ou réflexe non encore acquis | Utiliser l'explorateur de logs Grafana/Loki pour une recherche transversale en une seule requête |
grep répétéUn log est un message texte horodaté qui raconte un événement ; une métrique est une valeur
numérique mesurée à intervalle régulier — les deux se complètent pour comprendre ce qui s'est
passé et combien.
Promtail collecte les logs Ă la source, Loki les stocke et les indexe, Grafana les affiche et
permet de les interroger — le même principe que la chaîne de métriques vue en M6.
Parce que l'historique des logs disparaît à la suppression ou la recréation du conteneur qui les
stocke — un incident survenu avant cette perte devient alors impossible à investiguer après
coup.
Sur une stack de supervision incluant Loki (la tienne, ou un déploiement de test), exécute une
requête LogQL filtrant sur un conteneur précis et un mot-clé, puis vérifie si un volume
persistant est configuré pour le stockage de Loki — sinon, propose la configuration qui
manquerait.
log ·
Promtail ·
Loki ·
LogQL
Cette formation est proposée par Deladev, studio web de Loïc D. — création de sites et d'applications, accompagnement et formation sur mesure.
Les projets réalisés · Prestations et tarifs · Le blog tech · Me contacter
Écrite par Loïc D. avec l'assistance de Claude (Anthropic) — un travail à deux.
© 2026 Deladev — publiée sous licence CC BY-NC-ND 4.0. Vous pouvez la lire, y renvoyer par un lien, la partager et la citer en créditant la source. La revendre, l'utiliser dans une prestation ou une formation payante, la republier même partiellement ailleurs, en diffuser une version modifiée ou l'exploiter pour entraîner un modèle d'IA nécessitent une autorisation écrite — pour un usage interne en entreprise, c'est souvent oui, il suffit de demander.