how-to-install-and-manage Help

Loki

Loki est un système de collecte, de stockage et de requêtage de logs, développé par Grafana Labs.
Pensé pour l’intégration avec Grafana, il permet une corrélation efficace entre logs et métriques (Prometheus), tout en restant économe en stockage grâce à son architecture indexée minimalement.

Architecture

Loki est déployé dans notre cluster Kubernetes via FluxCD et Helm.
Le déploiement est réalisé en mode SingleBinary (un seul pod Loki pour la simplicité), avec stockage persistant sur le disque du nœud.

  • Déploiement : HelmRelease géré via GitOps (namespace supervision)

  • Stockage : local (filesystem), monté en volume persistant Kubernetes

  • Exposition : Ingress Traefik sécurisé, accès via l’URL publique https://loki.innovalia.cc

  • Intégration : Grafana interroge Loki en datasource, et Alloy y pousse les logs

Déploiement

Le déploiement de Loki est entièrement automatisé par FluxCD via un objet HelmRelease :

apiVersion: helm.toolkit.fluxcd.io/v2 kind: HelmRelease metadata: name: loki namespace: supervision spec: releaseName: loki interval: 10m chart: spec: chart: loki version: "6.32.0" sourceRef: kind: HelmRepository name: grafana namespace: supervision values: deploymentMode: SingleBinary loki: auth_enabled: false commonConfig: replication_factor: 1 storage: type: filesystem bucketNames: chunks: chunks ruler: ruler admin: admin schemaConfig: configs: - from: "2024-04-01" store: tsdb object_store: filesystem schema: v13 index: prefix: loki_index_ period: 24h storage_config: filesystem: directory: /tmp/loki/chunks limits_config: allow_structured_metadata: true volume_enabled: true singleBinary: replicas: 1 persistence: enabled: true size: 10Gi accessModes: - ReadWriteOnce backend: replicas: 0 read: replicas: 0 write: replicas: 0 ingress: enabled: true ingressClassName: traefik annotations: traefik.ingress.kubernetes.io/router.entrypoints: websecure traefik.ingress.kubernetes.io/router.tls: "true" traefik.ingress.kubernetes.io/router.tls.certresolver: myresolver hosts: - loki.innovalia.cc tls: - hosts: - loki.innovalia.cc paths: singleBinary: - /

Points clés de la configuration :

  • Mode SingleBinary : déploiement simplifié pour clusters de taille modérée (1 seul pod Loki actif).

  • Stockage sur disque local : performance et simplicité, idéal pour un PoC ou usage avec réplication manuelle.

  • Persistance : volume Kubernetes de 10 Go, mode ReadWriteOnce.

  • Accès sécurisé via Traefik (TLS automatique).

  • Pas de réplication multi-rôle : backend, read, write sont désactivés (utilisés uniquement en mode distribué/HA).

Schéma de stockage et rétention

  • Schéma v13 (TSDB) : performant, compatible avec l’indexation moderne.

  • Rétention : paramétrée via les volumes et les configurations de policy (à adapter selon besoins d’archivage).

Accès et intégration

  • URL d’accès public : https://loki.innovalia.cc

  • Datasource Grafana : Loki est ajouté comme source de données principale pour l’exploration des logs, la corrélation avec Prometheus et l’alerting log-based.

  • Push des logs : réalisé par Alloy via HTTP.

Visualisation

  • Grafana offre l’exploration rapide des logs, la recherche par label (namespace, pod, app…), la création de dashboards et d’alertes basées sur des patterns ou l’apparition d’erreurs.

  • Query rapide : possibilité de croiser logs et métriques pour un debugging précis.

Schéma d’architecture

Logs

Datasource

Dashboard/Alertes

Alloy

Loki

Grafana

Utilisateurs

Résumé :
Loki permet une centralisation efficace, performante et moderne de tous les logs, au sein d’un cluster Kubernetes.
Il s’intègre nativement avec Grafana pour la visualisation et le troubleshooting, tout en restant léger et facile à administrer.

Last modified: 22 July 2025