RousselTMLEARNING

Observabilité

Logstash : rôle, concept de pipeline et installation

Version écrite des leçons vidéo : à quoi sert Logstash, comment fonctionne un pipeline (inputs, filtres, sorties, file, workers) et comment l'installer.

1. Introduction #

Le rôle de Logstash.

À quoi sert Logstash #

Logstash est le moteur de traitement de la suite Elastic : il reçoit des données de sources très variées, les transforme (analyse, nettoyage, enrichissement) et les envoie vers une ou plusieurs destinations. Il est écrit en Java et s'étend par plus de 200 plugins.

  • Centraliser des logs hétérogènes (syslog, fichiers, bases, files d'attente).
  • Structurer des messages bruts en champs ECS.
  • Router vers plusieurs destinations (Elasticsearch, S3, Kafka).

2. Le concept de pipeline #

Inputs, filtres, sorties.

Les trois étapes #

Inputs, file, filtres, sorties.
input  { beats { port => 5044 } }
filter {
  grok { match => { "message" => "%{COMBINEDAPACHELOG}" } }
  date { match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ] }
}
output { elasticsearch { hosts => ["https://es:9200"] data_stream => true } }

Chaque événement traverse l'input, attend dans la file (mémoire par défaut), puis un worker lui applique les filtres dans l'ordre et l'envoie aux sorties. Plusieurs workers travaillent en parallèle sur des lots d'événements.

À savoir : Les conditions (if [champ] == "valeur" { … }) permettent d'appliquer des filtres ou des sorties à une partie des événements seulement.

3. Installation #

Paquets, archive, Docker.

Installer #

# Debian / Ubuntu
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elastic.gpg
echo "deb [signed-by=/usr/share/keyrings/elastic.gpg] https://artifacts.elastic.co/packages/9.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-9.x.list
sudo apt update && sudo apt install logstash
sudo systemctl enable --now logstash

# Docker
docker run --rm -it -v $PWD/pipeline:/usr/share/logstash/pipeline docker.elastic.co/logstash/logstash:9.1.0
FichierRôle
/etc/logstash/logstash.ymlréglages du nœud (chemins, workers, API)
/etc/logstash/pipelines.ymlliste des pipelines
/etc/logstash/conf.d/*.confconfiguration des pipelines
/etc/logstash/jvm.optionsmémoire de la JVM
Bonne pratique : Testez la configuration avant chaque redémarrage : /usr/share/logstash/bin/logstash --path.settings /etc/logstash -t.

Articles liés

Logstash : les entrées (inputs) et les sorties (outputs)

Version écrite des leçons vidéo : les inputs courants (beats, file, tcp/udp, http, kafka, jdbc) et les sortie…

Logstash : les filtres, grok et dissect

Version écrite des leçons vidéo : les filtres essentiels (mutate, date, json, kv, drop), le plugin grok et se…

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 plugins Logsta…

Pour aller plus loin

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 !