Logstash pour les devs - 00 - Pourquoi Logstash existe encore en 2026

Introduction a Logstash, son rôle dans l'Elastic Stack, pourquoi les devs doivent le comprendre, et ce que cette serie couvre en 31 articles.

  1. 01 Logstash pour les devs - 00 - Pourquoi Logstash existe encore en 2026
  2. 02 Logstash pour les devs - 01 - L'Elastic Stack de A a Z
  3. 03 Logstash pour les devs - 02 - Installer Logstash avec Docker en 5 minutes
  4. 04 Logstash pour les devs - 03 - Anatomie d'un pipeline Logstash
  5. 05 Logstash pour les devs - 04 - Inputs stdin et file : lire des donnees locales
  6. 06 Logstash pour les devs - 05 - Input Beats : recevoir des logs de Filebeat
  7. 07 Logstash pour les devs - 06 - Inputs HTTP, TCP et UDP : recevoir des donnees réseau
  8. 08 Logstash pour les devs - 07 - Inputs Kafka et JDBC : sources avancees
  9. 09 Logstash pour les devs - 08 - Les codecs : decoder et encoder les donnees
  10. 10 Logstash pour les devs - 09 - Le filtre Grok : parser n'importe quel log
  11. 11 Logstash pour les devs - 10 - Le filtre Dissect : parser sans regex
  12. 12 Logstash pour les devs - 11 - Le filtre Mutate : transformer les champs
  13. 13 Logstash pour les devs - 12 - Filtres Date et GeoIP : temps et geolocalisation
  14. 14 Logstash pour les devs - 13 - Filtres KV, JSON et XML : parser les formats structures
  15. 15 Logstash pour les devs - 14 - Le filtre Ruby : quand les autres ne suffisent pas
  16. 16 Logstash pour les devs - 15 - Filtres Aggregate et Metrics : correler les événements
  17. 17 Logstash pour les devs - 16 - Conditionnels et contrôle de flux
  18. 18 Logstash pour les devs - 17 - Output Elasticsearch : envoyer les donnees
  19. 19 Logstash pour les devs - 18 - Outputs file, stdout et les autres
  20. 20 Logstash pour les devs - 19 - Gerer le multiline : stack traces et logs multi-lignes
  21. 21 Logstash pour les devs - 20 - Pipelines multiples et pipeline-to-pipeline
  22. 22 Logstash pour les devs - 21 - Performance et tuning Logstash
  23. 23 Logstash pour les devs - 22 - Monitoring Logstash : metriques et alertes
  24. 24 Logstash pour les devs - 23 - Dead Letter Queue : ne plus perdre d'événements
  25. 25 Logstash pour les devs - 24 - Sécurité Logstash : SSL, auth et secrets
  26. 26 Logstash pour les devs - 25 - Debugger un pipeline Logstash
  27. 27 Logstash pour les devs - 26 - Tester ses pipelines avant la prod
  28. 28 Logstash pour les devs - 27 - Cas pratique : centraliser des logs applicatifs
  29. 29 Logstash pour les devs - 28 - Cas pratique : ETL avec Logstash et PostgreSQL
  30. 30 Logstash pour les devs - 29 - Cas pratique : enrichir des donnees en temps réel
  31. 31 Logstash pour les devs - 30 - Logstash en production : architecture et bonnes pratiques
  32. 32 Logstash pour les devs - 31 - Glossaire Logstash de A a Z

00 - Pourquoi Logstash existe encore en 2026

Ce que tu vas apprendre

  • Ce qu'est Logstash et quel problème il resout
  • Sa place dans l'Elastic Stack (et pourquoi il n'a pas ete remplace)
  • La différence entre Logstash, Filebeat et les ingest pipelines
  • Ce que cette serie couvre en 31 articles
  • A qui elle s'adresse

Prerequisites

Aucun. Si tu sais ce qu'est un fichier de log, tu peux suivre.


Le jour ou j'ai perdu 4 heures a chercher un bug en prod

Février 2023. Une API que j'avais déployée pour un client renvoie des 500 sporadiques. Pas tout le temps, juste assez pour que les utilisateurs ralent. Le monitoring remonte des erreurs, mais les messages sont vagues. Je me connecte au serveur, je grep dans les fichiers de log. Rien. Les logs ont rotate, et ceux de la nuit dernière sont partis.

J'ouvre un deuxieme serveur (l'app tourne sur deux instances). Memes logs, meme neant. Le bug se produit quand les deux instances ecrivent en meme temps dans la base. Pour le voir, il fallait correler les logs des deux serveurs, avec les timestamps alignes. Sur des fichiers texte bruts, a la main, c'est un cauchemar.

Ce jour-la, j'ai installe un Elastic Stack. Logstash au milieu. Tous les logs centralises, parsees, cherchables. Le bug est apparu en 10 minutes dans Kibana : un deadlock PostgreSQL quand deux requêtes UPDATE touchaient la meme ligne.

4 heures de grep remplacees par 10 minutes de recherche dans Kibana. C'est ca, le problème que Logstash resout.

Logstash, c'est quoi

Logstash est un pipeline de traitement de donnees. Il prend des donnees en entree (des logs, des événements, des lignes de base de donnees), les transforme, et les envoie quelque part (Elasticsearch, un fichier, Kafka, S3).

En une phrase : Logstash est un tuyau intelligent entre tes sources de donnees et tes destinations.

Le concept tient en trois blocs :

┌─────────┐     ┌──────────┐     ┌──────────┐
│  INPUT   │ ──> │  FILTER  │ ──> │  OUTPUT  │
│          │     │          │     │          │
│ fichiers │     │ parser   │     │ Elastic  │
│ beats    │     │ enrichir │     │ Kafka    │
│ kafka    │     │ nettoyer │     │ fichier  │
│ http     │     │ convertir│     │ S3       │
│ jdbc     │     │          │     │ stdout   │
└─────────┘     └──────────┘     └──────────┘

L'input lit les donnees. Le filter les transforme. L'output les envoie. C'est tout. Toute la puissance de Logstash vient de la quantité de plugins disponibles pour chaque bloc et de la facon dont tu peux les combiner.

Pourquoi Logstash n'a pas ete remplace

Question legitime. Elastic a sorti Filebeat en 2015, les ingest pipelines d'Elasticsearch en 2016. Pourquoi Logstash est toujours la ?

Parce que chaque outil a son perimetre.

┌──────────────────────────────────────────────────────────────┐
│                    Quand utiliser quoi                        │
├──────────────┬──────────────┬────────────────────────────────┤
│   Filebeat   │   Logstash   │    Ingest Pipelines            │
├──────────────┼──────────────┼────────────────────────────────┤
│ Collecter    │ Transformer  │ Transformations legeres         │
│ des fichiers │ des donnees  │ a l'indexation                  │
│ de logs      │ complexes    │                                 │
├──────────────┼──────────────┼────────────────────────────────┤
│ Leger        │ Lourd        │ Pas de process supplementaire  │
│ (~15 Mo RAM) │ (~1 Go RAM)  │ (tourne dans ES)               │
├──────────────┼──────────────┼────────────────────────────────┤
│ Pas de       │ Grok, Ruby,  │ Grok, convert, rename          │
│ parsing      │ JDBC, agreg. │ (limites)                       │
│ complexe     │ enrichment   │                                 │
├──────────────┼──────────────┼────────────────────────────────┤
│ Envoie vers  │ Envoie vers  │ Uniquement dans ES             │
│ ES ou        │ n'importe    │                                 │
│ Logstash     │ ou           │                                 │
└──────────────┴──────────────┴────────────────────────────────┘

Filebeat est un collecteur. Il lit des fichiers, il les envoie. Il ne sait pas parser une ligne Apache, il ne sait pas interroger une base PostgreSQL, il ne sait pas enrichir un événement avec des donnees GeoIP. Logstash fait tout ca.

Les ingest pipelines tournent dans Elasticsearch. Elles sont pratiques pour des transformations simples (renommer un champ, parser une date), mais elles n'ont pas d'inputs externes. Tu ne peux pas lire un topic Kafka ou poller une table SQL avec une ingest pipeline.

Logstash, c'est le couteau suisse. Tu en as besoin quand :

  • Tu dois parser des logs non structures (Grok, Dissect)
  • Tu dois lire depuis plusieurs sources (Kafka, JDBC, HTTP, Beats)
  • Tu dois enrichir les donnees (GeoIP, lookups en base, dictionnaires)
  • Tu dois envoyer vers plusieurs destinations (fan-out)
  • Tu as de la logique conditionnelle complexe (if/else sur les champs)

Sa place dans l'Elastic Stack

L'Elastic Stack, c'est quatre composants :

┌───────────────────────────────────────────────────────────────┐
│                      Elastic Stack                            │
│                                                               │
│  ┌──────────┐   ┌──────────┐   ┌──────────┐   ┌──────────┐  │
│  │          │   │          │   │          │   │          │  │
│  │  Beats   │──>│ Logstash │──>│ Elastic  │──>│  Kibana  │  │
│  │          │   │          │   │ search   │   │          │  │
│  │ collecte │   │ transfo  │   │ stockage │   │ visu     │  │
│  │          │   │          │   │ recherche│   │          │  │
│  └──────────┘   └──────────┘   └──────────┘   └──────────┘  │
│                                                               │
│  Filebeat        Input         Index           Dashboard     │
│  Metricbeat      Filter        Search          Discover      │
│  Heartbeat       Output        Aggregate       Alerting      │
└───────────────────────────────────────────────────────────────┘

Beats collecte les donnees sur les machines. Logstash les transforme. Elasticsearch les stocke et les rend cherchables. Kibana les affiche.

Tu n'es pas oblige d'utiliser les quatre. Filebeat peut envoyer directement a Elasticsearch. Mais des que tu as besoin de transformer les donnees entre la collecte et le stockage, Logstash entre en jeu.

Pour qui est cette serie

Tu es dev backend et tes logs sont des fichiers texte que personne ne lit ? Cette serie est pour toi. Tu es devops et tu veux comprendre comment construire un pipeline de logs propre ? Aussi. Tu fais de l'ETL et tu cherches un outil pour synchroniser une base SQL vers Elasticsearch ? On couvre ca.

Sur paltemps.fr, Logstash est au coeur de la stack d'observabilité. Les logs applicatifs passent par Logstash avant d'arriver dans Elasticsearch. Cette serie explique comment on a monte ca, et comment tu peux faire pareil.

Cette serie ne suppose pas que tu connaisses deja Elasticsearch. On installe tout depuis zero avec Docker. Par contre, si tu as lu la serie Docker pour les devs, tu seras plus a l'aise avec les compose.yaml.

Ce qu'on va couvrir

# Article Sujet
00 Introduction Pourquoi Logstash, vue d'ensemble
01 L'Elastic Stack Composants, flux de donnees, architecture
02 Installation Docker Setup complet avec Docker Compose
03 Anatomie d'un pipeline Input, filter, output et le modèle d'événement
04 Inputs stdin et file Lire des donnees locales, sincedb
05 Input Beats Recevoir des logs de Filebeat
06 Inputs HTTP, TCP, UDP Recevoir des donnees réseau et webhooks
07 Inputs Kafka et JDBC Sources avancees : messages et bases de donnees
08 Les codecs Decoder et encoder les donnees
09 Filtre Grok Parser n'importe quel log avec des patterns
10 Filtre Dissect Parser sans regex, plus vite
11 Filtre Mutate Transformer, renommer, supprimer des champs
12 Filtres Date et GeoIP Parser les dates, geolocaliser les IPs
13 Filtres KV, JSON, XML Parser les formats structures
14 Filtre Ruby Code custom quand rien d'autre ne marche
15 Aggregate et Metrics Correler les événements, calculer des metriques
16 Conditionnels if/else et routage des événements
17 Output Elasticsearch Envoyer les donnees, index naming, ILM
18 Outputs file, stdout et autres Kafka, S3, HTTP, fan-out
19 Multiline Stack traces Java, logs multi-lignes
20 Pipelines multiples pipeline-to-pipeline, isolation
21 Performance Workers, batch size, JVM, persistent queue
22 Monitoring API de monitoring, Metricbeat, metriques
23 Dead Letter Queue Récupérer les événements rejetes
24 Sécurité SSL/TLS, authentification, secrets
25 Debugging Techniques pour debugger un pipeline
26 Testing Tester ses pipelines avant la prod
27 Cas pratique : logs applicatifs Stack complète Node.js + ELK
28 Cas pratique : ETL PostgreSQL Sync incrementale DB vers Elasticsearch
29 Cas pratique : enrichissement Enrichir des donnees en temps réel
30 Production Architecture HA, sizing, bonnes pratiques
31 Glossaire Tous les termes de la serie

Chaque article est independant, mais ils sont penses pour etre lus dans l'ordre si tu debutes.

Un premier contact

Si tu veux voir Logstash tourner tout de suite, sans rien configurer :

bashdocker run --rm -it docker.elastic.co/logstash/logstash:8.17.0 \
  -e 'input { stdin {} } output { stdout { codec => rubydebug } }'

Attends que Logstash démarré (ca prend 30 secondes, la JVM est gourmande). Tape un message et appuie sur Entree :

salut logstash

Tu verras quelque chose comme :

json{
    "@timestamp" => 2026-03-31T10:15:42.123456Z,
      "@version" => "1",
       "message" => "salut logstash",
          "host" => {
        "hostname" => "a1b2c3d4e5f6"
    }
}

Logstash a pris ta ligne de texte, l'a transformee en événement structure avec un timestamp, et l'a affichee. C'est le pipeline le plus simple possible : stdin en entree, rubydebug en sortie. Toute cette serie est une exploration de ce qu'on peut mettre entre les deux.

Ce que Logstash ne fait pas

Logstash ne stocke pas les donnees. Il ne les affiche pas. Il ne remplace pas un message broker (meme s'il peut lire et écrire dans Kafka). C'est un pipeline de transformation, pas une base de donnees et pas un outil de visualisation.

Il ne remplace pas non plus Filebeat pour la collecte de fichiers. Si tu veux juste envoyer des logs d'un serveur a Elasticsearch sans transformation, Filebeat suffit et consomme 50 fois moins de RAM.

Logstash est le bon choix quand tu as besoin de transformer, enrichir ou router les donnees entre la source et la destination.

Résumé

  • Logstash est un pipeline de traitement de donnees en trois blocs : input, filter, output
  • Il fait partie de l'Elastic Stack mais peut fonctionner seul
  • Filebeat collecte, Logstash transforme, Elasticsearch stocke, Kibana affiche
  • Logstash est nécessaire quand tu as du parsing complexe, des sources variees ou du routage conditionnel
  • Cette serie couvre Logstash de A a Z en 31 articles, de l'installation a la production

Suivant : 01 - L'Elastic Stack de A a Z

Sources

Réservez un audit gratuit de 30 minutes. Je vous montre concrètement ce qu'on peut automatiser.