Logstash 9.x : gestion centralisée des pipelines

Publié le 02/08/2025 à 01:00:00

« Voir toutes les conférences Contactez-nous
Logstash 9.x: Centralized Pipeline Management

Introduction

Nous configurerons les pipelines Logstash via Elasticsearch et Kibana.

Nous supposons que vous disposez déjà d'Elasticsearch et que vous l'avez créé conformément à ce tutoriel.

Ce guide est basé sur ces documentations :

Gestion centralisée des pipelines Logstash

Configuration des pipelines centralisés

Exigences

Dans la vidéo, nous avons utilisé une instance d'Ubuntu 24.04 exécutée sur une machine virtuelle (VM) dotée de 8 Go de mémoire. La VM fonctionnera sur un réseau privé local. Nous installerons Elastic et Kibana Logstash sur ce serveur.

Mesures

Étape 1 - Créer un utilisateur Logstash

Cliquez pour Kibana > Gestion de la pile > Utilisateurs > Sécurité > Créer un utilisateur > Créer un utilisateur.

Créez ensuite un nouvel utilisateur appelé logstash_admin_user et lui donner les rôles logstash_admin et logstash_system.

Étape 2 - Créer des pipelines

Cliquez pour Kibana > Gestion de la pile > Ingestion > Pipelines Logstash > Créer un pipeline.

Appelez le pipeline démo1 et insérez ce pipeline :

input { file { path => "/var/lib/logstash/data/customers.csv" start_position => "beginning" sincedb_path => "/dev/null" } } filter { csv { separator => "," skip_header => "true" columns => ["email", "first_name", "last_name", "city", "county", "state", "zip", "web"] } mutate { convert => { "zip" => "integer" } } } output { file { path => "/var/lib/logstash/testing/output.txt" } }

Et créer un deuxième pipeline appelé démo2:

input { file { path => "/var/lib/logstash/data/tasks.csv" start_position => "beginning" sincedb_path => "/dev/null" } } filter { csv { separator => "," skip_header => "true" columns => ["task_name", "task_description"] } } output { file { path => "/var/lib/logstash/testing/output.txt" } }

Nous allons ensuite créer le contenu du test.

Étape 3 - Configuration de Logstash

Logstash a besoin de ces dépendances, alors exécutez ces commandes sur les deux si vous ne l'avez pas encore fait (par exemple, elles sont également utilisées par elasticsearch et kibana) :

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/9.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-9.x.list apt-get update; apt-get install -y apt-transport-https;

Installez maintenant Logstash :

apt-get install -y logstash;

Obtenez une copie de l'autorité de certification Elasticsearch :

mkdir /etc/logstash/certs cp /etc/elasticsearch/certs/http_ca.crt /etc/logstash/certs chown -R logstash:logstash /etc/logstash

Ajoutez ces lignes (ou modifiez celles existantes) :

xpack.management.enabled: true xpack.management.pipeline.id: ["demo1", "demo2" ] xpack.management.elasticsearch.username: logstash_admin_user xpack.management.elasticsearch.password: ABCD1234 xpack.management.elasticsearch.hosts: ["https://192.168.88.7:9200"] xpack.management.elasticsearch.ssl.certificate_authority: "/etc/logstash/certs/http_ca.crt"

Étape 4 – Créer des données de test

mkdir -p /var/lib/logstash/testing
mkdir -p /var/lib/logstash/data

cat > /var/lib/logstash/data/customers.csv <<EOL
email,prénom,nom,ville,comté,état,code postal,web
carol.davis@example.net,Carol,Davis,Seattle,King,WA,98101,www.caroldavisexample.net
faizal@helloworldexample.com,Faizal,Gupta,Kingston,King,WA,93211,www.helloworldexample.com
EOL

cat > /var/lib/logstash/data/tasks.csv <<EOL
nom_tâche,description_tâche
faire ses devoirs,les enfants adorent faire leurs devoirs
faire la vaisselle,papa adore faire la vaisselle
EOL

chown -R logstash:logstash /var/lib/logstash

Étape 5 - Démarrer Logstash

systemctl start logstash.service

Si tout fonctionne, vous devriez voir un nouveau fichier /var/lib/logstash/testing/output.txt avec les résultats de sortie des deux demo1 et demo2.