Publié le : 10/05/2026 à 10:00

Découvrez comment configurer Grafana Alloy pour lire des fichiers de logs, journald ou des flux réseau, traiter ces données et les expédier en toute sécurité vers Grafana Loki.

1. Sources de logs

Lecture de fichiers, journald et récepteurs réseau.

Capter l'information à la source

Alloy remplace avantageusement Promtail. Il peut collecter des logs depuis de multiples sources : lire des fichiers locaux avec loki.source.file, interroger les logs système via loki.source.journal, ou même agir comme un serveur Syslog ou un récepteur OTLP. Les composants de découverte (ex: discovery.kubernetes) peuvent être couplés aux sources pour cibler automatiquement les logs des conteneurs pertinents.

2. Pipelines de traitement

Filtrage, parsing (JSON, Regex) et réétiquetage (Relabeling).

Enrichir et filtrer les logs

Les logs bruts manquent souvent de contexte et consomment trop de stockage. Le composant loki.process permet de définir des pipelines de traitement sophistiqués. Vous pouvez y intégrer des étapes (stages) pour extraire des champs via du parsing JSON ou Regex, utiliser ces champs pour créer de nouveaux labels dynamiques, filtrer (dropper) les lignes non pertinentes (comme les healthchecks HTTP), ou réécrire le contenu même du log.


Bonne Pratique : Limitez drastiquement le nombre de labels extraits vers Loki. N'extrayez en label que les champs globaux et statiques (ex: env, app, level). Pour les autres champs (valeurs métier dynamiques), laissez-les dans la ligne de log et utilisez les filtres LogQL (ex: | json) à la requête.
Erreur Courante : Promouvoir un champ très variable (comme une adresse IP, un trace_id ou un uuid de transaction) en tant que label. Cette erreur fait s'effondrer les performances de votre instance Loki.
loki.process "filter_logs" {
  forward_to = [loki.write.default.receiver]

  // Parsing JSON
  stage.json {
    expressions = { level = "log_level", app = "app_name" }
  }
  // Création des labels sécurisés
  stage.labels {
    values = { level = null, app = null }
  }
  // Filtre pour ne pas envoyer les logs inutiles
  stage.drop {
    source = "level"
    value  = "debug"
  }
}

3. Expédition vers Loki

Envoi sécurisé vers Grafana Loki.

Le composant loki.write

Une fois les logs traités et correctement labellisés, le composant loki.write se charge de regrouper les lignes (batching) et de les expédier via HTTP(S) vers l'API de Grafana Loki (ou Grafana Cloud). Il prend en charge l'authentification, la configuration TLS et les stratégies de retry pour garantir la livraison des logs même en cas de perturbations transitoires du réseau.

Lien copié dans le presse-papiers !