allons construire est un pipeline linéaire :
- **Rsyslog** (Client) : Collecte les logs Linux et les transmet à Logstash au format RFC 5424 enrichi en JSON.
- **Logstash** (Passerelle) : Reçoit les logs de Rsyslog, les filtre si nécessaire, et les transforme en objets JSON pour ElasticSearch.
- **ElasticSearch** (Base de Données) : Stocke, indexe et rend les logs accessibles pour l'analyse via un index dédié (
logstash-*
). - **Kibana** (Visualisation) : Fournit la plateforme d'exploration et de tableau de bord pour interpréter les données.
logstash-*
).logstash-*
4. Installation de la Pile ELK
Nous allons procéder à l'installation des composants de la pile ELK (version 7.x) sur une machine Ubuntu (les étapes sont similaires pour Debian).
4.1. Installation de Java (JRE)
Java est nécessaire pour faire fonctionner ElasticSearch et Logstash.
# Mettre à jour et installer l'environnement d'exécution Java par défaut
$ sudo apt-get update
$ sudo apt-get install default-jre -y
# Vérification (doit afficher une version comme OpenJDK 11)
$ java -version
# Mettre à jour et installer l'environnement d'exécution Java par défaut
$ sudo apt-get update
$ sudo apt-get install default-jre -y
# Vérification (doit afficher une version comme OpenJDK 11)
$ java -version
4.2. Configuration des Référentiels Elastic
Ajoutons la clé GPG et la source du dépôt Elastic à notre gestionnaire de paquets APT :
# Ajouter la clé GPG
$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
# Ajouter le dépôt Elastic 7.x à la liste des sources
$ echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
# Mettre à jour les listes de paquets
$ sudo apt-get update
# Ajouter la clé GPG
$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
# Ajouter le dépôt Elastic 7.x à la liste des sources
$ echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
# Mettre à jour les listes de paquets
$ sudo apt-get update
4.3. Installation et Démarrage d'ElasticSearch
ElasticSearch est notre moteur de recherche et de stockage.
# Installation
$ sudo apt-get install elasticsearch -y
# Démarrage du service
$ sudo systemctl start elasticsearch
# Vérification du statut (doit être 'active (running)')
$ sudo systemctl status elasticsearch
# Vérification du port 9200
$ sudo lsof -i -P -n | grep LISTEN | grep 9200
# Ou via une requête simple
$ curl -XGET 'http://localhost:9200'
# Installation
$ sudo apt-get install elasticsearch -y
# Démarrage du service
$ sudo systemctl start elasticsearch
# Vérification du statut (doit être 'active (running)')
$ sudo systemctl status elasticsearch
# Vérification du port 9200
$ sudo lsof -i -P -n | grep LISTEN | grep 9200
# Ou via une requête simple
$ curl -XGET 'http://localhost:9200'
4.4. Installation et Démarrage de Logstash
Logstash est notre outil d'ingestion et de transformation.
# Installation
$ sudo apt-get install logstash -y
# Démarrage du service
$ sudo systemctl start logstash
# Vérification du port par défaut de métriques (9600)
$ sudo lsof -i -P -n | grep LISTEN | grep 9600
# Installation
$ sudo apt-get install logstash -y
# Démarrage du service
$ sudo systemctl start logstash
# Vérification du port par défaut de métriques (9600)
$ sudo lsof -i -P -n | grep LISTEN | grep 9600
4.5. Installation et Démarrage de Kibana
Kibana est l'interface utilisateur pour la visualisation.
# Installation
$ sudo apt-get install kibana -y
# Démarrage du service
$ sudo systemctl start kibana
# Vérification du port par défaut (5601)
$ sudo lsof -i -P -n | grep LISTEN | grep 5601
# Installation
$ sudo apt-get install kibana -y
# Démarrage du service
$ sudo systemctl start kibana
# Vérification du port par défaut (5601)
$ sudo lsof -i -P -n | grep LISTEN | grep 5601
L'interface web de Kibana est maintenant disponible sur http://localhost:5601.
5. Mise en Place du Routage des Logs
Nous allons maintenant lier les trois outils : Rsyslog transfère à Logstash, qui transfère à ElasticSearch.
5.1. Configuration de Logstash (Entrée/Sortie)
Nous configurons Logstash pour écouter le flux Rsyslog et transférer le résultat à ElasticSearch.
# Créer le fichier de configuration Logstash
$ sudo nano /etc/logstash/conf.d/logstash.conf
# Créer le fichier de configuration Logstash
$ sudo nano /etc/logstash/conf.d/logstash.conf
Ajoutez le contenu suivant.