Einführung
Der ELK-Stack ist eine Reihe von Anwendungen zum Abrufen und Verwalten von Protokolldateien.
Es ist eine Sammlung von drei Open-Source-Tools, Elasticsearch , Kibana und Logstash . Der Stack kann mit Beats weiter ausgebaut werden , ein leichtgewichtiges Plugin zum Aggregieren von Daten aus verschiedenen Datenströmen.
In diesem Tutorial erfahren Sie, wie Sie den ELK-Software-Stack auf Ubuntu 18.04/20.04 installieren.
Voraussetzungen
- Ein Linux-System mit Ubuntu 20.04 oder 18.04
- Zugriff auf ein Terminalfenster/eine Befehlszeile (Suche > Terminal )
- Ein Benutzerkonto mit sudo oder root Privilegien
- Java-Version 8 oder 11 (erforderlich für Logstash)
Schritt 1:Abhängigkeiten installieren
Installieren Sie Java
Für den ELK-Stack muss Java 8 installiert sein. Einige Komponenten sind mit Java 9 kompatibel, aber nicht mit Logstash.
Wenn Sie Java 8 bereits installiert haben, fahren Sie mit Nginx installieren fort.
1. Wenn Sie Java 8 nicht installiert haben, installieren Sie es, indem Sie ein Terminalfenster öffnen und Folgendes eingeben:
sudo apt-get install openjdk-8-jdk
2. Wenn Sie dazu aufgefordert werden, geben Sie y
ein und drücken Sie Enter damit der Vorgang abgeschlossen werden kann.
Installieren Sie Nginx
Nginx fungiert als Webserver und Proxyserver. Es wird verwendet, um den passwortgeschützten Zugriff auf das Kibana-Dashboard zu konfigurieren.
1. Installieren Sie Nginx, indem Sie Folgendes eingeben:
sudo apt-get install nginx
2. Wenn Sie dazu aufgefordert werden, geben Sie y
ein und drücken Sie Enter damit der Vorgang abgeschlossen werden kann.
Schritt 2:Elastisches Repository hinzufügen
Elastische Repositorys ermöglichen den Zugriff auf die gesamte Open-Source-Software im ELK-Stack. Um sie hinzuzufügen, importieren Sie zunächst den GPG-Schlüssel.
1. Geben Sie Folgendes in ein Terminalfenster ein, um den PGP-Schlüssel für Elastic zu importieren:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
2. Das System sollte mit OK antworten , wie im Bild unten zu sehen.
3. Als nächstes installieren Sie apt-transport-https Paket:
sudo apt-get install apt-transport-https
4. Fügen Sie das Elastic-Repository zur Repository-Liste Ihres Systems hinzu:
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee –a /etc/apt/sources.list.d/elastic-7.x.list
Schritt 3:Elasticsearch installieren
1. Aktualisieren Sie vor der Installation von Elasticsearch die Repositories, indem Sie Folgendes eingeben:
sudo apt-get update
2. Installieren Sie Elasticsearch mit dem folgenden Befehl:
sudo apt-get install elasticsearch
Elasticsearch konfigurieren
1. Elasticsearch verwendet eine Konfigurationsdatei, um zu steuern, wie es sich verhält. Öffnen Sie die Konfigurationsdatei zur Bearbeitung in einem Texteditor Ihrer Wahl. Wir werden nano:
verwendensudo nano /etc/elasticsearch/elasticsearch.yml
2. Sie sollten eine Konfigurationsdatei mit mehreren verschiedenen Einträgen und Beschreibungen sehen. Scrollen Sie nach unten, um die folgenden Einträge zu finden:
#network.host: 192.168.0.1
#http.port: 9200
3. Kommentieren Sie die Zeilen aus, indem Sie den Hash löschen (#
) unterzeichnen am Anfang beider Zeilen und ersetzen Sie 192.168.0.1
mit localhost
.
Es sollte lauten:
network.host: localhost
http.port: 9200
4. Finden Sie direkt darunter die Discovery Sektion. Wir fügen eine weitere Zeile hinzu, da wir einen Single-Node-Cluster konfigurieren:
discovery.type: single-node
Weitere Einzelheiten finden Sie im Bild unten.
5. Standardmäßig JVM-Heap-Größe ist auf 1GB eingestellt. Wir empfehlen, ihn auf nicht mehr als die Hälfte Ihres Gesamtspeichers einzustellen. Öffnen Sie die folgende Datei zum Bearbeiten:
sudo nano /etc/elasticsearch/jvm.options
6. Suchen Sie die Zeilen, die mit -Xms
beginnen und -Xmx
. Im folgenden Beispiel ist das Maximum (-Xmx
) und Minimum (-Xms
) ist auf 512 MB festgelegt.
Elasticsearch starten
1. Starten Sie den Elasticsearch-Dienst, indem Sie systemctl
ausführen Befehl:
sudo systemctl start elasticsearch.service
Es kann einige Zeit dauern, bis das System den Dienst startet. Bei Erfolg erfolgt keine Ausgabe.
2. Aktivieren Sie Elasticsearch, um beim Booten zu starten:
sudo systemctl enable elasticsearch.service
Elasticsearch testen
Verwenden Sie den curl
Befehl, um Ihre Konfiguration zu testen. Geben Sie Folgendes ein:
curl -X GET "localhost:9200"
Der Name Ihres Systems sollte angezeigt werden, und ElasticSearch für den Clusternamen. Dies zeigt an, dass Elasticsearch funktionsfähig ist und auf Port 9200 lauscht .
Schritt 4:Kibana installieren
Es wird empfohlen, als nächstes Kibana zu installieren. Kibana ist eine grafische Benutzeroberfläche zum Analysieren und Interpretieren gesammelter Protokolldateien.
1. Führen Sie den folgenden Befehl aus, um Kibana zu installieren:
sudo apt-get install kibana
2. Warten Sie, bis der Vorgang abgeschlossen ist. Sobald Sie fertig sind, ist es an der Zeit, Kibana zu konfigurieren.
Kibana konfigurieren
1. Als nächstes öffnen Sie die kibana.yml Konfigurationsdatei zum Bearbeiten:
sudo nano /etc/kibana/kibana.yml
2. Löschen Sie #
Zeichen am Anfang der folgenden Zeilen, um sie zu aktivieren:
#server.port: 5601
#server.host: "your-hostname"
#elasticsearch.hosts: ["http://localhost:9200"]
Die oben genannten Zeilen sollten wie folgt aussehen:
server.port: 5601
server.host: "localhost"
elasticsearch.hosts: ["http://localhost:9200"]
3. Speichern Sie die Datei (Strg+o
) und beenden (Strg+ x
).
Kibana starten und aktivieren
1. Starten Sie den Kibana-Dienst:
sudo systemctl start kibana
Es erfolgt keine Ausgabe, wenn der Dienst erfolgreich gestartet wird.
2. Als nächstes konfigurieren Sie Kibana so, dass es beim Booten gestartet wird:
sudo systemctl enable kibana
Verkehr auf Port 5601 zulassen
Wenn die UFW-Firewall auf Ihrem Ubuntu-System aktiviert ist, müssen Sie Datenverkehr auf Port 5601 zulassen um auf das Kibana-Dashboard zuzugreifen.
Führen Sie in einem Terminalfenster den folgenden Befehl aus:
sudo ufw allow 5601/tcp
Die folgende Ausgabe sollte anzeigen:
Kibana testen
Um auf Kibana zuzugreifen, öffnen Sie einen Webbrowser und navigieren Sie zur folgenden Adresse:
http://localhost:5601
Das Kibana-Dashboard wird geladen.
Wenn Sie eine „Kibana-Server noch nicht bereit“ erhalten überprüfen Sie, ob die Elasticsearch- und Kibana-Dienste aktiv sind.
Schritt 5:Logstash installieren
Logstash ist ein Tool, das Daten aus verschiedenen Quellen sammelt. Die gesammelten Daten werden von Kibana geparst und in Elasticsearch gespeichert.
Installieren Sie Logstash, indem Sie den folgenden Befehl ausführen:
sudo apt-get install logstash
Logstash starten und aktivieren
1. Starten Sie den Logstash-Dienst:
sudo systemctl start logstash
2. Aktivieren Sie den Logstash-Dienst:
sudo systemctl enable logstash
3. Führen Sie den folgenden Befehl aus, um den Status des Dienstes zu überprüfen:
sudo systemctl status logstash
Logstash konfigurieren
Logstash ist ein hochgradig anpassbarer Teil des ELK-Stacks. Konfigurieren Sie nach der Installation dessen INPUT , FILTER und AUSGABE Pipelines nach Ihrem individuellen Anwendungsfall.
Alle benutzerdefinierten Logstash-Konfigurationsdateien werden in /etc/logstash/conf.d/ gespeichert .
Schritt 6:Filebeat installieren
Dateischlag ist ein leichtgewichtiges Plugin zum Sammeln und Versenden von Protokolldateien. Es ist das am häufigsten verwendete Beats-Modul. Einer der Hauptvorteile von Filebeat ist, dass es langsamer wird, wenn der Logstash-Dienst mit Daten überlastet wird.
Installieren Sie Filebeat, indem Sie den folgenden Befehl ausführen:
sudo apt-get install filebeat
Warten Sie, bis die Installation abgeschlossen ist.
Filebeat konfigurieren
Filebeat sendet standardmäßig Daten an Elasticsearch. Filebeat kann auch so konfiguriert werden, dass Ereignisdaten an Logstash gesendet werden.
1. Um dies zu konfigurieren, bearbeiten Sie die filebeat.yml Konfigurationsdatei:
sudo nano /etc/filebeat/filebeat.yml
2. Unter der Elasticsearch o Ausgabe kommentieren Sie die folgenden Zeilen aus:
# output.elasticsearch:
# Array of hosts to connect to.
# hosts: ["localhost:9200"]
3. Unter der Logstash-Ausgabe Entfernen Sie das Hash-Zeichen (#
) in den folgenden zwei Zeilen:
# output.logstash
# hosts: ["localhost:5044"]
Es sollte so aussehen:
output.logstash
hosts: ["localhost:5044"]
Weitere Einzelheiten finden Sie im Bild unten.
4. Als nächstes aktivieren Sie das Filebeat-System Modul, das lokale Systemprotokolle untersucht:
sudo filebeat modules enable system
Die Ausgabe sollte Enabled system
lauten .
5. Laden Sie als nächstes die Indexvorlage:
sudo filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
Das System erledigt einige Aufgaben, scannt Ihr System und stellt eine Verbindung zu Ihrem Kibana-Dashboard her.
Filebeat starten und aktivieren
Starten und aktivieren Sie den Filebeat-Dienst:
sudo systemctl start filebeat
sudo systemctl enable filebeat
Empfang von Daten durch Elasticsearch überprüfen
Überprüfen Sie abschließend, ob Filebeat Protokolldateien zur Verarbeitung an Logstash sendet. Nach der Verarbeitung werden die Daten an Elasticsearch gesendet.
curl -XGET http://localhost:9200/_cat/indices?v