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.
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/_startLatest #
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" } }
}| Mode | Fonctionnement |
|---|---|
| batch | calcul unique sur les données existantes |
| continu | avec sync : mise à jour régulière selon frequency |
Bonne pratique : Testez avecPOST _transform/_previewavant de créer, et suivezGET _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).| Type | Correspondance |
|---|---|
| match | valeur exacte (identifiant, nom) |
| range | intervalle (plage d'adresses IP) |
| geo_match | forme 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 equipeSelon la version :LOOKUP JOIN(jointure avec un index en mode lookup) est disponible à partir des versions récentes (8.18 / 9.x) ;ENRICHs'appuie sur les mêmes enrich policies que l'ingestion.
Mon suivi
Connectez-vous pour suivre votre progression et prendre des notes. Se connecter
💬 Discussions récentes de la formation
- Elasticsearch : supprimer automatiquement les logs de plus de 30 jours✓ résolu · 1 réponse(s)
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...