ELK ist eine Kombination aus drei Open-Source-Produkten ElasticSearch, Logstash und Kibana. Es ist eine der beliebtesten Log-Management-Plattformen weltweit. Elasticsearch ist eine Such- und Analysemaschine. Logstash ist eine Protokollverarbeitungspipeline, die Protokolle aus mehreren Quellen gleichzeitig transportiert, transformiert und dann an einen „Stash“ wie Elasticsearch sendet. Kibana wird verwendet, um Ihre Daten zu visualisieren, die Logstash in den Elasticsearch-Index indiziert hat
In diesem Tutorial erklären wir, wie man Logstash auf Ubuntu 20.04 installiert.
Voraussetzungen
- Ein Server mit Ubuntu 20.04.
- Auf dem Server ist ein Root-Passwort konfiguriert.
Erforderliche Abhängigkeiten installieren
Um Elasticsearch zu installieren, müssen Sie Java auf Ihrem System installieren. Sie können das Java JDK mit dem folgenden Befehl installieren:
apt-get install openjdk-11-jdk -y
Überprüfen Sie nach der Installation die installierte Java-Version mit dem folgenden Befehl:
java -version
Sie sollten die folgende Ausgabe sehen:
openjdk 11.0.7 2020-04-14 OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1) OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)
Installieren Sie als Nächstes andere erforderliche Abhängigkeiten, indem Sie den folgenden Befehl ausführen:
apt-get install nginx curl gnupg2 wget -y
Sobald alle Abhängigkeiten installiert sind, können Sie mit dem nächsten Schritt fortfahren.
Installieren und konfigurieren Sie Elasticsearch
Bevor Sie beginnen, müssen Sie Elasticsearch in Ihrem System installieren. Es speichert Protokolle und Ereignisse von Logstash und bietet die Möglichkeit, die Protokolle in Echtzeit zu durchsuchen.
Fügen Sie zuerst das Elastic-Repository mit dem folgenden Befehl zu Ihrem System hinzu:
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-7.x.list
Aktualisieren Sie als Nächstes das Repository und installieren Sie Elasticsearch mit dem folgenden Befehl:
apt-get update -y
apt-get install elasticsearch -y
Bearbeiten Sie nach der Installation die Standardkonfigurationsdatei von Elasticsearch:
nano /etc/elasticsearch/elasticsearch.yml
Entkommentieren Sie und ändern Sie den Wert wie unten gezeigt:
network.host: localhost
Speichern und schließen Sie die Datei, starten Sie dann den Elasticsearch-Dienst und aktivieren Sie ihn beim Booten mit dem folgenden Befehl:
systemctl start elasticsearch
systemctl enable elasticsearch
An diesem Punkt ist Elasticsearch installiert und überwacht Port 9200. Sie können jetzt testen, ob Elasticsearch funktioniert oder nicht, indem Sie den folgenden Befehl ausführen:
curl -X GET "localhost:9200"
Wenn alles in Ordnung ist, sollten Sie die folgende Ausgabe sehen:
{ "name" : "ubuntu2004", "cluster_name" : "elasticsearch", "cluster_uuid" : "AVRzLjAbQTK-ayYQc0GaMA", "version" : { "number" : "7.8.0", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "757314695644ea9a1dc2fecd26d1a43856725e65", "build_date" : "2020-06-14T19:35:50.234439Z", "build_snapshot" : false, "lucene_version" : "8.5.1", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }
Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Kibana installieren und konfigurieren
Als nächstes müssen Sie Kibana in Ihrem System installieren. Mit Kibana können Sie auf Elasticsearch gespeicherte Daten analysieren. Sie können es installieren, indem Sie einfach den folgenden Befehl ausführen:
apt-get install kibana -y
Starten Sie nach der Installation von Kibana den Kibana-Dienst und aktivieren Sie ihn beim Booten mit dem folgenden Befehl:
systemctl start kibana
systemctl enable kibana
Als Nächstes müssen Sie einen administrativen Benutzer für Kibana erstellen, um auf die Kibana-Weboberfläche zuzugreifen. Führen Sie den folgenden Befehl aus, um den administrativen Kibana-Benutzer und das Kennwort zu erstellen, und speichern Sie sie in der Datei htpasswd.users.
echo "admin:`openssl passwd -apr1`" | tee -a /etc/nginx/htpasswd.users
Sie werden aufgefordert, das Passwort einzugeben, wie in der folgenden Ausgabe gezeigt:
Password: Verifying - Password: admin:$apr1$8d05.YO1$E0Q8QjfNxxxPtD.unmDs7/
Erstellen Sie als Nächstes eine Konfigurationsdatei für den virtuellen Nginx-Host, um Kibana zu bedienen:
nano /etc/nginx/sites-available/kibana
Fügen Sie die folgenden Zeilen hinzu:
server { listen 80; server_name kibana.example.com; auth_basic "Restricted Access"; auth_basic_user_file /etc/nginx/htpasswd.users; location / { proxy_pass http://localhost:5601; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
Speichern und schließen Sie die Datei und aktivieren Sie dann die virtuelle Nginx-Hostdatei mit dem folgenden Befehl:
ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/
Starten Sie als Nächstes den Nginx-Dienst neu, um die Änderungen zu übernehmen:
systemctl restart nginx
Öffnen Sie als Nächstes Ihren Webbrowser und überprüfen Sie den Status von Kibana mit der URL http://kibana.example.com/status. Sie werden aufgefordert, den Benutzernamen und das Passwort wie unten gezeigt einzugeben:
Geben Sie Ihren Kibana-Benutzernamen und Ihr Passwort ein und klicken Sie auf die Schaltfläche Anmelden. Sie sollten den folgenden Bildschirm sehen:
Zu diesem Zeitpunkt ist das Kibana-Dashboard in Ihrem System installiert. Sie können jetzt mit dem nächsten Schritt fortfahren.
Logstash installieren und konfigurieren
Logstash wird für die Verarbeitung von Protokollen verwendet, die von Beats gesendet werden. Sie können es installieren, indem Sie den folgenden Befehl ausführen:
apt-get install logstash -y
Erstellen Sie nach der Installation von Logstash eine neue Beat-Konfigurationsdatei mit dem folgenden Befehl:
nano /etc/logstash/conf.d/02-beats-input.conf
Fügen Sie die folgenden Zeilen hinzu:
input { beats { port => 5044 } }
Speichern und schließen Sie die Datei und erstellen Sie dann mit dem folgenden Befehl eine Elasticsearch-Konfigurationsdatei:
nano /etc/logstash/conf.d/30-elasticsearch-output.conf
Fügen Sie die folgenden Zeilen hinzu:
output { if [@metadata][pipeline] { elasticsearch { hosts => ["localhost:9200"] manage_template => false index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" pipeline => "%{[@metadata][pipeline]}" } } else { elasticsearch { hosts => ["localhost:9200"] manage_template => false index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" } } }
Speichern und schließen Sie die Datei und überprüfen Sie dann Ihre Logstash-Konfiguration mit diesem Befehl:
sudo -u logstash /usr/share/logstash/bin/logstash --path.settings /etc/logstash -t
Wenn alles in Ordnung ist, sollten Sie die folgende Ausgabe sehen:
Config Validation Result: OK. Exiting Logstash
Starten Sie als Nächstes den Logstash-Dienst und ermöglichen Sie ihm, beim Booten mit dem folgenden Befehl zu starten:
systemctl start logstash
systemctl enable logstash
An diesem Punkt ist Logstash in Ihrem System installiert. Sie können jetzt mit dem nächsten Schritt fortfahren.
Filebeat installieren und konfigurieren
Der ELK-Stack verwendet Filebeat, um Daten aus verschiedenen Quellen zu sammeln und sie zu Logstash zu transportieren.
Sie können Filebeat mit dem folgenden Befehl installieren:
apt-get install filebeat -y
Nach der Installation müssen Sie Filebeat konfigurieren, um eine Verbindung zu Logstash herzustellen. Sie können es mit dem folgenden Befehl konfigurieren:
nano /etc/filebeat/filebeat.yml
Kommentieren Sie die folgenden Zeilen aus:
#output.elasticsearch: # Array of hosts to connect to. # hosts: ["localhost:9200"]
Entkommentieren Sie dann die folgenden Zeilen:
output.logstash: # The Logstash hosts hosts: ["localhost:5044"]
Speichern und schließen Sie die Datei und aktivieren Sie dann das Systemmodul mit dem folgenden Befehl:
filebeat modules enable system
Standardmäßig ist Filebeat so konfiguriert, dass es Standardpfade für die Syslog- und Autorisierungsprotokolle verwendet.
Sie können die Ingest-Pipeline für das Systemmodul mit dem folgenden Befehl laden:
filebeat setup --pipelines --modules system
Als nächstes laden Sie die Vorlage mit dem folgenden Befehl:
filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
Sie sollten die folgende Ausgabe sehen:
Index setup finished.
Standardmäßig wird Filebeat mit Kibana-Beispiel-Dashboards geliefert, mit denen Sie Filebeat-Daten in Kibana visualisieren können. Sie müssen also die Logstash-Ausgabe deaktivieren und die Elasticsearch-Ausgabe aktivieren. Sie können dies mit dem folgenden Befehl tun:
filebeat setup -E output.logstash.enabled=false -E output.elasticsearch.hosts=['localhost:9200'] -E setup.kibana.host=localhost:5601
Sie sollten die folgende Ausgabe sehen:
Overwriting ILM policy is disabled. Set `setup.ilm.overwrite:true` for enabling. Index setup finished. Loading dashboards (Kibana must be running and reachable) Loaded dashboards Setting up ML using setup --machine-learning is going to be removed in 8.0.0. Please use the ML app instead. See more: https://www.elastic.co/guide/en/elastic-stack-overview/current/xpack-ml.html Loaded machine learning job configurations Loaded Ingest pipelines
Starten Sie nun den Filebeat-Dienst und ermöglichen Sie ihm, beim Booten mit dem folgenden Befehl zu starten:
systemctl start filebeat
systemctl enable filebeat
Zugriff auf das Kibana-Dashboard
An dieser Stelle sind alle Komponenten von ELK installiert und konfiguriert. Öffnen Sie nun Ihren Webbrowser und geben Sie die URL http://kibana.example.com ein. Sie sollten das Kibana-Dashboard auf dem folgenden Bildschirm sehen:
Klicken Sie im linken Bereich auf Entdecken und wählen Sie das vordefinierte Filebeat-*-Indexmuster aus, um Filebeat-Daten auf dem folgenden Bildschirm anzuzeigen:
Jetzt bietet Kibana viele Funktionen. Fühlen Sie sich frei, sie nach Belieben zu erkunden.
Schlussfolgerung
Herzliche Glückwünsche! Sie haben Logstash erfolgreich auf dem Ubuntu 20.04-Server installiert und konfiguriert. Sie können jetzt Systemprotokolle von einem zentralen Ort aus sammeln und analysieren. Fühlen Sie sich frei, mich zu fragen, wenn Sie irgendwelche Fragen haben.