RousselTMLEARNING

Article · Elasticsearch : de la découverte à l'expertise

Ingérer des logs OpenTelemetry

1. Le modèle de log OTel #

Corps, sévérité, attributs, contexte.

Les champs #

Champ OTelStocké dans Elasticsearch (mode otel)
Bodybody.text (body.structured)
SeverityText / SeverityNumberseverity_text / severity_number
Attributesattributes.*
Resourceresource.attributes.* (service.name, host.name, k8s.pod.name)
TraceId / SpanIdtrace_id / span_id : lien direct avec la trace
Receiver, analyse, enrichissement, Elasticsearch.

2. Collecter des fichiers #

Le receiver filelog.

Configuration #

receivers:
  filelog:
    include: [/var/log/monapp/*.log]
    start_at: end
    operators:
      - type: regex_parser
        regex: '^(?P<ts>\S+) (?P<level>[A-Z]+) (?P<msg>.*)$'
        timestamp: { parse_from: attributes.ts, layout_type: gotime, layout: '2006-01-02T15:04:05Z07:00' }
        severity: { parse_from: attributes.level }
      - type: move
        from: attributes.msg
        to: body
processors:
  resource:
    attributes:
      - { key: service.name, value: monapp, action: upsert }
service:
  pipelines:
    logs: { receivers: [filelog], processors: [resource, batch], exporters: [elasticsearch] }
Bonne pratique : Renseignez toujours service.name : c'est la clé qui relie logs, traces et métriques d'un même service dans Kibana.

Kubernetes #

Sur Kubernetes, le Collector en DaemonSet lit /var/log/pods ; le processeur k8sattributes ajoute namespace, pod, déploiement et labels, indispensables pour filtrer.

3. Interroger et maîtriser les volumes #

ES|QL et filtrage.

Requêtes #

FROM logs-*.otel-*
| WHERE severity_text == "ERROR" AND @timestamp > NOW() - 1 hour
| STATS erreurs = COUNT(*) BY resource.attributes.service.name
| SORT erreurs DESC

Filtrer à la source #

processors:
  filter/debug:
    error_mode: ignore
    logs:
      log_record:
        - severity_number < SEVERITY_NUMBER_INFO
Erreur courante : Envoyer les logs de debug de toute la production : le volume, donc le coût de stockage, explose. Filtrez dans le Collector ou réduisez le niveau dans l'application.

📄 Ingérer des logs OpenTelemetry dans Elasticsearch →

Mon suivi

  • ⏱ Durée estimée : ≈ 6 min

Connectez-vous pour suivre votre progression et prendre des notes. Se connecter

💬 Discussions récentes de la formation

Poser une question sur cette leçon →Voir toutes les discussions de la formation

Glossaire de la formation

Observabilité

La capacité à connaître l'état interne d'un système à partir des données qu'il émet.Ces données sont classées en 3 piliers : logsmétriquestracesprofil...

Elastic Common Schema (ECS)

Une spécification open source qui permet de structurer vos données de manière homogène dans l'écosystème Elastic.

RBAC (Role-Based Access Control)

Contrôle d'accès basé sur les rôles. Les permissions sont attribuées à des rôles spécifiques (ex: admin, lecteur) plutôt qu'directement aux utilisateu...

Authentification

Processus permettant de vérifier et valider l'identité d'un utilisateur ou d'un système (ex: login/mot de passe, jeton, biométrie).

Autorisation

Processus intervenant après l'authentification pour déterminer si l'entité a les droits et privilèges nécessaires pour accéder à une ressource.

API Key

Clé d'API. Code alphanumérique unique utilisé pour identifier, authentifier et autoriser l'accès à une interface de programmation (API).

Architecture

Conception globale et structurelle d'un système informatique, définissant ses différents composants, leurs relations et les principes guidant son évol...

Repository

Dépôt de stockage centralisé. Peut désigner un dépôt de code source (ex: Git) ou un dépôt d'artefacts et binaires (ex: Harbor, Nexus, Artifactory).

Articles recommandés

Traces OpenTelemetry dans Elasticsearch et Kibana APM

Instrumenter des applications avec les SDK OpenTelemetry ou EDOT, envoyer les traces à Elasticsea...

OpenTelemetry et Elasticsearch : compatibilité et architecture

Envoyer de l'OpenTelemetry vers Elasticsearch : Collector et exportateur elasticsearch, endpoint ...

Métriques OpenTelemetry dans Elasticsearch

Collecter des métriques d'hôte, de Kubernetes et d'applications avec OpenTelemetry, comprendre te...

Elastic Observability : logs, infrastructure, APM et synthétiques

Les fonctions d'Elastic Observability : exploration des logs, inventaire d'infrastructure avec El...

Elastic Agent autonome, sorties Logstash et Kafka, et OpenTelemetry (EDOT)

Écrire une configuration autonome, envoyer vers Logstash ou Kafka, et utiliser Elastic Agent comm...

Les logs avec OpenTelemetry : modèle de données, appenders, corrélation et collecte

Maîtriser le signal log : modèle de données LogRecord, Logs Bridge API et appenders (Logback, Log...

OpenTelemetry et Dynatrace : OTLP, collecteur et instrumentation

Intégrer OpenTelemetry à Dynatrace : endpoint OTLP et jetons, Dynatrace OTel Collector, traces, m...

Monitoring et troubleshooting Elasticsearch : santé, shards non assignés, JVM, hot threads et slow logs

Diagnostiquer un cluster Elasticsearch : cluster health et CAT APIs, shards non assignés et alloc...

Grafana Loki vs Elasticsearch : La bataille du stockage de logs

Comparatif entre Loki, le système de logs inspiré par Prometheus, et Elasticsearch, le moteur de ...

Soutenir

♥ SOUTENIR

Soutenez RousselTM Learning

Les formations, articles, TP et attestations restent gratuits et sans publicité intrusive. Une contribution libre, du montant de votre choix, finance l’hébergement, les environnements de TP et l’écriture de nouveaux contenus.

Contribuer avec PayPal Montant libre · carte bancaire ou compte PayPalEn savoir plus
QR code PayPal
Ou scannez ce QR code avec votre téléphone

Merci, chaque contribution compte !