RousselTMLEARNING

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

Transforms et enrich : résumer et enrichir les données

1. Les transforms #

Pivot et latest.

Pourquoi #

Les agrégations répondent à la volée, mais certaines questions portent sur des entités : le résumé de chaque client, la dernière position de chaque serveur. Une transform calcule ce résumé une fois, l'écrit dans un index de destination et le tient à jour.

Index source, transform, index de destination, tableaux de bord.

Pivot #

PUT _transform/web-par-hote
{
  "source": { "index": "logs-nginx.access-*" },
  "dest":   { "index": "web-par-hote" },
  "pivot": {
    "group_by": {
      "hote":  { "terms": { "field": "host.name" } },
      "heure": { "date_histogram": { "field": "@timestamp", "calendar_interval": "1h" } }
    },
    "aggregations": {
      "requetes": { "value_count": { "field": "@timestamp" } },
      "octets":   { "sum": { "field": "http.response.body.bytes" } }
    }
  },
  "sync": { "time": { "field": "@timestamp", "delay": "60s" } },
  "frequency": "5m"
}
POST _transform/web-par-hote/_start

Latest #

PUT _transform/dernier-etat-hote
{
  "source": { "index": "metrics-system.cpu-*" },
  "dest":   { "index": "dernier-etat-hote" },
  "latest": { "unique_key": ["host.name"], "sort": "@timestamp" },
  "sync": { "time": { "field": "@timestamp" } }
}
ModeFonctionnement
batchcalcul unique sur les données existantes
continuavec sync : mise à jour régulière selon frequency
Bonne pratique : Testez avec POST _transform/_preview avant de créer, et suivez GET _transform/<id>/_stats : documents traités, échecs, retard.

2. Enrichir à l'ingestion #

Enrich policies.

Politique et processeur #

PUT _enrich/policy/serveurs
{ "match": { "indices": "referentiel-serveurs", "match_field": "host.name", "enrich_fields": ["equipe", "environnement"] } }
POST _enrich/policy/serveurs/_execute

PUT _ingest/pipeline/logs-nginx.access@custom
{ "processors": [ { "enrich": { "policy_name": "serveurs", "field": "host.name", "target_field": "serveur" } } ] }
Erreur courante : Oublier de réexécuter la politique : l'index d'enrichissement est une copie figée du référentiel. Après une modification du référentiel, relancez _execute (par exemple chaque nuit).
TypeCorrespondance
matchvaleur exacte (identifiant, nom)
rangeintervalle (plage d'adresses IP)
geo_matchforme géographique

3. Enrichir à la requête #

ES|QL

ENRICH et LOOKUP JOIN #

FROM logs-nginx.access-*
| ENRICH serveurs ON host.name WITH equipe
| STATS erreurs = COUNT(*) BY equipe
Selon la version : LOOKUP JOIN (jointure avec un index en mode lookup) est disponible à partir des versions récentes (8.18 / 9.x) ; ENRICH s'appuie sur les mêmes enrich policies que l'ingestion.

📄 Transforms et enrich : résumer et enrichir les données 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

Ingestion Elasticsearch : Bulk API, ingest pipelines, enrich et reindex

Ingérer et transformer des données dans Elasticsearch : Bulk API, ingest pipelines et processeurs...

Logstash : enrichir, tester, superviser et déployer sur Kubernetes

Enrichir avec translate, geoip et elasticsearch, consommer Kafka, tester ses pipelines, supervise...

Elastic Security : SIEM, règles de détection et investigation

Utiliser Elastic Security comme SIEM : sources de données ECS, types de règles de détection (quer...

Logstash en production : files persistantes, DLQ et multi-pipelines

Rendre Logstash fiable en production : file persistante, dead letter queue, plusieurs pipelines e...

Machine learning dans Elastic : détection d'anomalies et AIOps

Détecter automatiquement les comportements anormaux : jobs de détection d'anomalies, datafeeds, d...

Projet de parcours Elastic : centraliser et exploiter les journaux

Le projet de validation du parcours « Maîtrise de la suite Elastic » : Elastic Agent et Fleet, Lo...

Traces OpenTelemetry dans Elasticsearch et Kibana APM

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

Logstash : gérer les plugins et adopter Elastic Common Schema (ECS)

Version écrite des leçons vidéo : lister, installer, mettre à jour et embarquer hors ligne les pl...

Elastic Common Schema (ECS) : le format standard des données Elastic et son rôle dans Elastic SIEM

Comprendre l'Elastic Common Schema (ECS) : format standard des champs dans Elasticsearch, convent...

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 !