Comment installer Logstash sur Ubuntu 18.04

Logstash est un outil gratuit et open-source, et la plateforme d’analyse de logs la plus populaire au monde pour collecter, analyser et stocker les logs pour une utilisation ultérieure. Logstash est livré avec un riche ensemble de plugins et un langage de modèles très expressif qui permet de transformer facilement les flux de données. Logstash fait partie de la pile ELK, mais tu peux aussi l’utiliser indépendamment. Logstash a la capacité de tirer de n’importe quelle source de données à l’aide de plugins d’entrée, d’appliquer une grande variété de transformations de données et d’expédier les données vers un grand nombre de destinations à l’aide de plugins de sortie.

Dans ce tutoriel, nous allons te montrer comment installer et configurer Logstash sur le serveur Ubuntu 18.04.

Conditions préalables

  • Un serveur exécutant Ubuntu 18.04.
  • Un mot de passe root est configuré sur ton serveur.

Démarrage

Avant de commencer, mets à jour ton système avec la dernière version. Tu peux le faire en exécutant la commande suivante :

apt-get update -y
apt-get upgrade -y

Une fois que ton système est mis à jour, redémarre-le pour appliquer les modifications.

Installer Java

Avant d’installer Java, vérifie que tu as installé Java 8 ou Java 11. Tu peux installer Java 8 à l’aide de la commande suivante :

apt-get install openjdk-8-jdk -y

Après avoir installé Java, vérifie la version de Java à l’aide de la commande suivante :

java -version

Tu devrais voir la sortie suivante :

openjdk version "1.8.0_162"
OpenJDK Runtime Environment (build 1.8.0_162-8u162-b12-1-b12)
OpenJDK 64-Bit Server VM (build 25.162-b12, mixed mode)

Installer Logstash

Avant d’installer Logstash, tu dois installer Elasticsearch sur ton serveur. Par défaut, Elasticsearch n’est pas disponible sur le serveur Ubuntu 18.04. Tu devras donc ajouter le dépôt d’Elasticsearch.

Tout d’abord, installe le paquet requis avec la commande suivante :

apt-get install apt-transport-https -y

Ensuite, télécharge et ajoute la clé GPG d’Elasticsearch avec la commande suivante :

wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | apt-key add -

Ensuite, ajoute le référentiel avec la commande suivante :

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-7.x.list

Ensuite, installe Elasticsearch et Logstash avec la commande suivante :

apt-get install elasticsearch logstash -y

Une fois les deux paquets installés, démarre Logstash et Elasticsearch, et active-les pour qu’ils démarrent après le redémarrage du système avec la commande suivante :

systemctl start logstash
systemctl enable logstash
systemctl start elasticsearch
systemctl enable elasticsearch

Tu peux aussi vérifier le statut de Logstash avec la commande suivante :

systemctl status logstash

Tu devrais voir la sortie suivante :

? logstash.service - logstash
   Loaded: loaded (/etc/systemd/system/logstash.service; disabled; vendor preset: enabled)
   Active: active (running) since Wed 2019-11-20 10:13:22 UTC; 5s ago
 Main PID: 3790 (java)
    Tasks: 13 (limit: 1110)
   CGroup: /system.slice/logstash.service
           ??3790 /usr/bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly 

Nov 20 10:13:22 ubuntu systemd[1]: Started logstash.

Par défaut, Elasticsearch écoute sur le port 9200. Tu peux le vérifier avec la commande suivante :

netstat -ant | grep 9200

Tu devrais voir le résultat suivant :

tcp6       0      0 127.0.0.1:9200          :::*                    LISTEN     
tcp6       0      0 ::1:9200                :::*                    LISTEN  

Configurer Logstash

La configuration de Logstash est l’une des parties les plus difficiles pour tout administrateur système. La configuration de Logstash se compose de trois sections de configuration principales, Logstash Inputs, Logstash Filters et Logstash Outputs. Chaque section est responsable de différentes fonctions et utilise différents plugins Logstash.

Configurer l’entrée Logstash

Tout d’abord, tu dois créer un fichier de configuration d’entrée beats-input.conf pour recevoir les données de Beats sur le port TCP 5044 :

nano /etc/logstash/conf.d/beats-input.conf

Ajoute les lignes suivantes :

input {
  beats {
    port => 5044
  }
}

Sauvegarde et ferme le fichier lorsque tu as terminé.

Configurer les filtres Logstash

Ensuite, tu devras configurer un plugin de filtre pour traiter les événements reçus des beats. Ici, nous allons configurer les battements pour collecter les événements d’authentification SSH des systèmes Ubuntu. Pour ce faire, crée un nouveau fichier de configuration de filtre ssh-auth-filter.conf :

nano /etc/logstash/conf.d/ssh-auth-filter.conf

Ajoute les lignes suivantes :

filter {
  grok {
    match => { "message" => "%{SYSLOGTIMESTAMP:timestamp}\s+%{IPORHOST:dst_host}\s+%{WORD:syslog_program}\[\d+\]:\s+(?\w+\s+password)\s+for\s+%{USER:auth_user}\s+from\s+%{SYSLOGHOST:src_host}.*" }
    add_field => { "activity" => "SSH Logins" }
    add_tag => "linux_auth"
    }
}

Enregistre et ferme le fichier lorsque tu as terminé.

Configurer la sortie Logstash

Ensuite, tu devras configurer les plugins de sortie pour permettre à Logstash d’envoyer des données d’événements à des destinations spécifiques.

Ici, nous allons créer un fichier de configuration de sortie Logstash qui envoie les données à Elasticsearch fonctionnant sur un hôte local.

nano /etc/logstash/conf.d/elasticsearch-output.conf

Ajoute les lignes suivantes :

output {
   elasticsearch {
     hosts => ["localhost:9200"]
     manage_template => false
     index => "ssh_auth-%{+YYYY.MM}"
 }
  stdout { codec => rubydebug }
}

Sauvegarde et ferme le fichier lorsque tu as terminé. Ensuite, redémarre le service Logstash pour appliquer les modifications :

systemctl restart logstash

Teste Logstash

Logstash est maintenant installé et configuré. Il est temps de tester s’il fonctionne ou non.

Tu peux vérifier la configuration de Logstash avec la commande suivante :

sudo -u logstash /usr/share/logstash/bin/logstash --path.settings /etc/logstash -t

Si tout va bien, tu devrais voir la sortie suivante :

Sending Logstash logs to /var/log/logstash which is now configured via log4j2.properties
[2019-11-26T06:27:48,104][INFO ][logstash.setting.writabledirectory] Creating directory {:setting=>"path.queue", :path=>"/var/lib/logstash/queue"}
[2019-11-26T06:27:48,119][INFO ][logstash.setting.writabledirectory] Creating directory {:setting=>"path.dead_letter_queue", :path=>"/var/lib/logstash/dead_letter_queue"}
[2019-11-26T06:27:50,331][INFO ][org.reflections.Reflections] Reflections took 47 ms to scan 1 urls, producing 20 keys and 40 values 
Configuration OK
[2019-11-26T06:27:51,899][INFO ][logstash.runner          ] Using config.test_and_exit mode. Config Validation Result: OK. Exiting Logstash

Félicitations ! Tu as réussi à installer et à configurer Logstash sur le serveur Ubuntu 18.04.

Vous aimerez aussi...