RousselTMLEARNING

TP · Kibana et Elastic Observability : de la découverte à l'expertise

TP : Détecter des anomalies avec le machine learning avec correction

La correction est intégrée au TP (Voir les encadrés de couleur vert)

Ce que vous allez apprendre dans ce TP
  • Charger un jeu de données
  • Créer un job et son datafeed
  • Lire les anomalies
  • Prévoir et expliquer un pic

Introduction #

Ce que vous allez apprendre dans cette section
  • Charger un jeu de données
  • Créer un job et son datafeed
  • Lire les anomalies
  • Prévoir et expliquer un pic

Contexte. Le trafic du site varie selon l'heure et le jour : un seuil fixe sonne trop ou pas assez. Vous laissez le machine learning apprendre le rythme normal et signaler les écarts.

Prérequis : Docker, 4 Go de RAM libres, jq ; licence d'essai (fournie par start-local)  ·  Durée estimée : 40 min

Licence : ce TP utilise l'essai de 30 jours (fonctions Platinum) activé automatiquement par start-local. Sur un cluster existant, activez-le avec POST _license/start_trial?acknowledge=true (une seule fois par version majeure) ; à l'expiration, le cluster repasse en licence Basic et les jobs s'arrêtent. Le Data Visualizer reste gratuit.

Mise en place #

Étapes guidées, avec leur correction.

  1. 1. Le labo

    Pourquoi ? start-local démarre Elasticsearch et Kibana avec une licence d'essai de 30 jours, nécessaire au machine learning.

    Voir la correction
    curl -fsSL https://elastic.co/start-local | sh
    source elastic-start-local/.env && export PASS=$ES_LOCAL_PASSWORD
    curl -s -u elastic:$PASS localhost:9200/_license | jq -r .license.type   # trial
  2. 2. Les données

    Chargez le jeu de données d'exemple « web logs » de Kibana.

    Voir la correction
    curl -s -X POST localhost:5601/api/sample_data/logs -u elastic:$PASS -H 'kbn-xsrf: true'
    curl -s -u elastic:$PASS localhost:9200/kibana_sample_data_logs/_count | jq .count
  3. 3. Le job et le datafeed

    Pourquoi ? Le détecteur count modélise le volume de requêtes par tranche de 15 minutes ; geo.src sert d'influenceur pour expliquer les écarts.

    Voir la correction
    curl -s -X PUT localhost:9200/_ml/anomaly_detectors/web-requetes -u elastic:$PASS -H 'Content-Type: application/json' -d '{
      "analysis_config": { "bucket_span": "15m", "detectors": [ { "function": "count" } ], "influencers": ["geo.src"] },
      "data_description": { "time_field": "timestamp" }
    }' | jq .job_id
    curl -s -X PUT localhost:9200/_ml/datafeeds/datafeed-web-requetes -u elastic:$PASS -H 'Content-Type: application/json' \
      -d '{ "job_id": "web-requetes", "indices": ["kibana_sample_data_logs"] }' | jq .datafeed_id
    curl -s -X POST localhost:9200/_ml/anomaly_detectors/web-requetes/_open -u elastic:$PASS | jq .opened
    curl -s -X POST localhost:9200/_ml/datafeeds/datafeed-web-requetes/_start -u elastic:$PASS -H 'Content-Type: application/json' -d '{ "end": "now" }' | jq .started
  4. 4. Lire les anomalies

    Listez les anomalies les plus fortes, puis ouvrez Anomaly Explorer dans Kibana (Machine Learning › Anomaly Detection).

    Voir la correction
    sleep 30
    curl -s -u elastic:$PASS 'localhost:9200/_ml/anomaly_detectors/web-requetes/results/records?sort=record_score&desc=true&size=5' \
      | jq '.records[] | {timestamp: (.timestamp/1000 | todate), score: .record_score, reel: .actual, attendu: .typical}'
    À savoir : Les données d'exemple sont générées : selon la date d'installation, le modèle trouve plus ou moins d'anomalies. L'important est de savoir lire le score, la valeur réelle et la valeur attendue.
  5. 5. Prévoir et expliquer

    Lancez une prévision sur 24 heures, puis utilisez Log rate analysis (Machine Learning › AIOps Labs) sur un pic du jeu de données.

    Voir la correction
    curl -s -X POST localhost:9200/_ml/anomaly_detectors/web-requetes/_forecast -u elastic:$PASS -H 'Content-Type: application/json' -d '{ "duration": "1d" }' | jq .forecast_id
    # Kibana › Machine Learning › Single Metric Viewer : la prévision s'affiche à droite de la courbe
    # Nettoyage : curl -s -X POST localhost:9200/_ml/datafeeds/datafeed-web-requetes/_stop -u elastic:$PASS

Niveau de difficulté : ●●●○○ (3/5)

Mon suivi

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

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

💬 Questions sur cette leçon

Aucune question pour l'instant : soyez le premier à demander de l'aide ou à partager votre configuration.

Poser une question sur cette leçon →

Articles recommandés

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

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

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...

Davis AI avancé : détection d'anomalies, IA causale, prédictive et générative

Comprendre Davis AI : seuils statiques, baselines auto-adaptatives et saisonnières, analyse causa...

Grafana Assistant : L'IA au service de l'observabilité

Découvrez Grafana Assistant, l'intelligence artificielle intégrée à Grafana Cloud. Apprenez comme...

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

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

Explorer ses données dans Discover : KQL, Lucene et ES|QL

Rechercher et analyser des logs dans Kibana Discover : filtres, KQL, syntaxe Lucene, et le langag...

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...

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...

Bonnes pratiques Kibana et Elastic Observability

Check-list pour exploiter Kibana en production : versions, sécurité, espaces et rôles, dashboards...

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 !