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 #
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| Fichier | Rôle |
|---|---|
| /etc/logstash/logstash.yml | réglages du nœud (chemins, workers, API) |
| /etc/logstash/pipelines.yml | liste des pipelines |
| /etc/logstash/conf.d/*.conf | configuration des pipelines |
| /etc/logstash/jvm.options | mémoire de la JVM |
Bonne pratique : Testez la configuration avant chaque redémarrage : /usr/share/logstash/bin/logstash --path.settings /etc/logstash -t.