Wie installiere ich Logstash unter Ubuntu 18.04

Logstash ist ein kostenloses und quelloffenes Tool und die weltweit beliebteste Protokollanalyseplattform zum Sammeln, Analysieren und Speichern von Protokollen für die spätere Verwendung. Logstash wird mit einem reichhaltigen Satz von Plugins und einer sehr ausdrucksstarken Vorlagensprache geliefert, die die Umwandlung von Datenströmen erleichtert. Logstash ist ein Teil des ELK-Stacks, aber Sie können es auch unabhängig davon verwenden. Logstash kann mit Hilfe von Eingabe-Plugins aus jeder Datenquelle ziehen, eine Vielzahl von Datentransformationen anwenden und die Daten mit Hilfe von Ausgabe-Plugins an eine große Anzahl von Zielen versenden.

In diesem Tutorial zeigen wir Ihnen, wie Sie Logstash auf einem Ubuntu 18.04-Server installieren und konfigurieren.

Voraussetzungen

  • Ein Server, auf dem Ubuntu 18.04 läuft.
  • Auf Ihrem Server ist ein Root-Passwort konfiguriert.

Erste Schritte

Bevor Sie beginnen, aktualisieren Sie Ihr System mit der neuesten Version. Sie können dies tun, indem Sie den folgenden Befehl ausführen:

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

Sobald Ihr System aktualisiert ist, starten Sie es neu, um die Änderungen zu übernehmen.

Java installieren

Bevor Sie Java installieren, stellen Sie sicher, dass Sie entweder Java 8 oder Java 11 installiert haben. Sie können Java 8 mit dem folgenden Befehl installieren:

apt-get install openjdk-8-jdk -y

Nach der Installation von Java überprüfen Sie die Version von Java mit dem folgenden Befehl:

java -version

Sie sollten die folgende Ausgabe sehen:

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)

Logstash installieren

Bevor Sie Logstash installieren, müssen Sie Elasticsearch auf Ihrem Server installieren. Standardmäßig ist Elasticsearch auf dem Ubuntu 18.04-Server nicht verfügbar. Daher müssen Sie das Repository für Elasticsearch hinzufügen.

Installieren Sie zunächst das erforderliche Paket mit folgendem Befehl:

apt-get install apt-transport-https -y

Als nächstes laden Sie den Elasticsearch GPG-Schlüssel herunter und fügen ihn mit folgendem Befehl hinzu:

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

Fügen Sie dann das Repository mit folgendem Befehl hinzu:

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

Installieren Sie anschließend Elasticsearch und Logstash mit folgendem Befehl:

apt-get install elasticsearch logstash -y

Wenn beide Pakete installiert sind, starten Sie Logstash und Elasticsearch und aktivieren Sie sie nach dem Systemneustart mit dem folgenden Befehl:

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

Sie können den Status von Logstash auch mit dem folgenden Befehl überprüfen:

systemctl status logstash

Sie sollten die folgende Ausgabe sehen:

? 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.

Standardmäßig lauscht Elasticsearch auf Port 9200. Sie können es mit dem folgenden Befehl überprüfen:

netstat -ant | grep 9200

Sie sollten die folgende Ausgabe sehen:

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

Konfigurieren von Logstash

Die Logstash-Konfiguration ist einer der anspruchsvollsten Teile eines jeden Systemadministrators. Die Logstash-Konfiguration besteht aus drei Hauptkonfigurationsabschnitten: Logstash-Eingänge, Logstash-Filter und Logstash-Ausgänge. Jeder Abschnitt ist für verschiedene Funktionen zuständig und verwendet verschiedene Logstash-Plugins.

Logstash-Eingabe konfigurieren

Zunächst müssen Sie eine Eingabe-Konfigurationsdatei beats-input.conf erstellen, um Daten von Beats auf TCP-Port 5044 zu empfangen:

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

Fügen Sie die folgenden Zeilen hinzu:

input {
  beats {
    port => 5044
  }
}

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Konfigurieren von Logstash-Filtern

Als nÃ?chstes mÃ?ssen Sie ein Filter-Plugin konfigurieren, das die von den Beats empfangenen Ereignisse verarbeitet. Hier werden wir die Beats so konfigurieren, dass sie SSH-Authentifizierungsereignisse von Ubuntu-Systemen sammeln. Dazu erstellen Sie eine neue Filter-Konfigurationsdatei ssh-auth-filter.conf:

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

Fügen Sie die folgenden Zeilen hinzu:

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"
    }
}

Speichern Sie die Datei und schließen Sie sie, wenn Sie fertig sind.

Logstash-Ausgabe konfigurieren

Als Nächstes müssen Sie Ausgabe-Plugins konfigurieren, damit Logstash Ereignisdaten an bestimmte Ziele senden kann.

Hier erstellen wir eine Logstash-Ausgabekonfigurationsdatei, die Daten an Elasticsearch sendet, das auf einem Localhost läuft.

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

Fügen Sie die folgenden Zeilen hinzu:

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

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann den Logstash-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart logstash

Test-Logstash

Logstash ist nun installiert und konfiguriert. Es ist an der Zeit zu testen, ob es funktioniert oder nicht.

Sie können die Logstash-Konfiguration mit dem folgenden Befehl überprüfen:

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

Wenn alles in Ordnung ist, sollten Sie die folgende Ausgabe sehen:

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

Herzlichen Glückwunsch! Sie haben Logstash erfolgreich auf einem Ubuntu 18.04-Server installiert und konfiguriert.

Das könnte dich auch interessieren …