Einführung
Der ELK-Stack ist eine Gruppe von Open-Source-Softwarepaketen, die zum Verwalten von Protokollen verwendet werden. Es wird normalerweise für Serverprotokolle verwendet, ist aber auch flexibel (elastisch) für jedes Projekt, das große Datensätze generiert.
Diese Anleitung zeigt Ihnen, wie Sie den ELK-Stack (Elasticsearch, Logstash und Kibana) auf einem CentOS 8-Server installieren.
Voraussetzungen
- Ein System, auf dem CentOS 8 installiert ist
- Zugriff auf ein Terminalfenster/eine Befehlszeile (Suche > Terminal )
- Ein Benutzerkonto mit sudo oder root Privilegien
- Java-Version 8 oder 11 (erforderlich für Logstash)
Wofür steht der ELK-Stack?
ELK steht für Elasticsearch, Logstash und Kibana. Sie sind die drei Komponenten des ELK-Stacks.
Elasticsearch (indiziert Daten) – Dies ist der Kern der Elastic-Software. Elasticsearch ist eine Such- und Analysemaschine zum Sortieren von Daten.
Logstash (sammelt Daten) – Dieses Paket stellt eine Verbindung zu verschiedenen Datenquellen her, sammelt sie und leitet sie an den Speicher weiter. Wie der Name schon sagt, sammelt und „versteckt“ es Ihre Protokolldateien.
Kibana (visualisiert Daten) – Kibana ist ein grafisches Tool zur Visualisierung von Daten. Verwenden Sie es, um Diagramme und Grafiken zu erstellen, um die Rohdaten in Ihren Datenbanken zu verstehen.
Schritt 1:OpenJDK 8 Java installieren
Wenn Sie bereits Java 8 (oder 11) auf Ihrem System installiert haben, können Sie diesen Schritt überspringen.
Öffnen Sie andernfalls ein Terminalfenster und geben Sie Folgendes ein:
sudo yum install java-1.8.0-openjdk
Das System überprüft die Repositorys und fordert Sie dann auf, die Installation zu bestätigen. Geben Sie Y
ein dann Enter . Warten Sie, bis der Vorgang abgeschlossen ist.
Schritt 2:Elasticsearch-Repositorys hinzufügen
Der ELK-Stack kann mit dem YUM-Paketmanager heruntergeladen und installiert werden. Die Software ist jedoch nicht in den Standard-Repositories enthalten.
Importieren Sie den Elasticsearch-PGP-Schlüssel
Öffnen Sie ein Terminalfenster und geben Sie den folgenden Code ein:
sudo rpm ––import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Dadurch wird der öffentliche Elasticsearch-Signaturschlüssel zu Ihrem System hinzugefügt. Dieser Schlüssel validiert die Elasticsearch-Software, wenn Sie sie herunterladen.
Fügen Sie das Elasticsearch-RPM-Repository hinzu
Sie müssen die Repository-Konfigurationsdatei in /etc/yum.repos.d/ erstellen . Wechseln Sie zunächst in das Verzeichnis:
cd /etc/yum.repos.d/
Erstellen Sie als Nächstes die Konfigurationsdatei in einem Texteditor Ihrer Wahl (wir verwenden Vim):
sudo vim elasticsearch.repo
Geben oder kopieren Sie die folgenden Zeilen:
[elasticstack]
name=Elastic repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
Wenn Sie Vim verwenden, drücken Sie Esc Geben Sie dann :wq
ein und drücken Sie Enter .
Aktualisieren Sie abschließend die Paketlisten Ihrer Repositories:
dnf update
Schritt 3:Elasticsearch installieren und einrichten
Die Reihenfolge der Installation ist wichtig. Beginnen Sie mit der Installation von Elasticsearch.
Geben Sie in einem Terminalfenster den Befehl ein:
sudo dnf install elasticsearch
Dadurch werden alle Ihre Repositories nach dem Elasticsearch-Paket durchsucht.
Das System berechnet die Download-Größe und fordert Sie dann auf, die Installation zu bestätigen. Geben Sie Y
ein dann Enter .
Elasticsearch konfigurieren
Öffnen und bearbeiten Sie nach Abschluss der Installation die Datei /etc/elasticsearch/elasticsearch.yml
Konfigurationsdatei mit einem Texteditor:
sudo vim /etc/elasticsearch/elasticsearch.yml
Scrollen Sie nach unten zum Abschnitt mit der Bezeichnung NETWORK
. Unterhalb dieses Eintrags sollten Sie die folgenden Zeilen sehen:
# Set the bind address to a specific IP (IPv4 or IPv6):
#
#network.host: 192.168.0.1
#
# Set a custom port for HTTP:
#
#http.port: 9200
Passen Sie network.host
an auf die IP-Adresse Ihres Servers oder setzen Sie sie auf localhost, wenn Sie lokal einen einzelnen Knoten einrichten. Passen Sie http.port
an auch.
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: localhost
#
# Set a custom port for HTTP:
#
http.port: 9200
Weitere Einzelheiten siehe Bild unten:
Wenn Sie Vim verwenden, drücken Sie ESC
, geben Sie :wq
ein und drücken Sie Enter
um die Änderungen zu speichern und zu beenden.
Elasticsearch starten
Starten Sie das System neu, damit die Änderungen wirksam werden:
sudo reboot
Starten Sie nach dem Neustart des Systems die ElasticSearch Dienst:
sudo systemctl start elasticsearch
Bei korrekter Ausführung des Befehls erfolgt keine Ausgabe.
Stellen Sie nun den Dienst so ein, dass er beim Booten gestartet wird:
sudo systemctl enable elasticsearch
Elasticsearch testen
Testen Sie die Software, um sicherzustellen, dass sie auf eine Verbindung reagiert:
curl -X GET "localhost:9200"
Das System sollte eine ganze Liste von Informationen anzeigen. In der zweiten Zeile sollten Sie sehen, dass cluster_name
auf elasticsearch
eingestellt ist . Dies bestätigt, dass Elasticsearch ausgeführt wird und auf Port 9200 lauscht .
Schritt 4:Kibana installieren und einrichten
Kibana ist eine grafische Oberfläche zum Analysieren und Interpretieren von Protokolldateien.
Kibana verwendet denselben GPG-Schlüssel wie Elasticsearch, sodass Sie den Schlüssel nicht erneut importieren müssen. Darüber hinaus befindet sich das Kibana-Paket im selben ELK-Stack-Repository wie Elasticsearch. Daher ist es nicht erforderlich, eine weitere Repository-Konfigurationsdatei zu erstellen.
Um Kibanra zu installieren, öffnen Sie ein Terminalfenster und geben Sie Folgendes ein:
sudo dnf install kibana
Das System scannt die Repositorys und fordert dann zur Bestätigung auf. Geben Sie y
ein dann Enter und warten Sie, bis der Vorgang abgeschlossen ist.
Kibana konfigurieren
Wie bei Elasticsearch müssen Sie die .yml bearbeiten Konfigurationsdatei für Kibana.
Öffnen Sie die kibana.yml Datei zum Bearbeiten:
sudo vim /etc/kibana/kibana.yml
Suchen Sie die folgenden Zeilen und entfernen Sie das # Zeichen vom Anfang der Zeile:
#server.port: 5601
#server.host: "localhost"
#elasticsearch.hosts: ["http://localhost:9200"]
Die Zeilen sollten nun wie folgt aussehen:
server.port: 5601
server.host: "localhost"
elasticsearch.hosts: ["http://localhost:9200"]
Weitere Details siehe Bild unten.
Um einen benutzerdefinierten Namen zuzuweisen, bearbeiten Sie server.name
Linie.
Nehmen Sie nach Bedarf weitere Bearbeitungen vor. Speichern Sie die Datei und verlassen Sie sie (drücken Sie Esc , geben Sie :wq
ein und drücken Sie Enter ).
Kibana starten und aktivieren
Als nächstes starten und aktivieren Sie den Kibana-Dienst:
sudo systemctl start kibana
sudo systemctl enable kibana
Verkehr auf Port 5601 zulassen
Wenn firewalld auf Ihrem CentOS-System aktiviert ist, müssen Sie Datenverkehr auf Port 5601 zulassen . Führen Sie in einem Terminalfenster den folgenden Befehl aus:
firewall-cmd --add-port=5601/tcp --permanent
Als nächstes laden Sie den Firewalld-Dienst neu:
firewall-cmd --reload
Die obige Aktion ist eine Voraussetzung, wenn Sie beabsichtigen, von externen Computern aus auf das Kibana-Dashboard zuzugreifen.
Kibana testen
Öffnen Sie einen Webbrowser und geben Sie die folgende Adresse ein:
http://localhost:5601
Das System sollte mit dem Laden des Kibana-Dashboards beginnen.
Schritt 5:Logstash installieren und einrichten
Logstash ist ein Tool, das Daten aus verschiedenen Quellen sammelt. Die gesammelten Daten werden von Kibana geparst und in Elasticsearch gespeichert.
Wie andere Teile des ELK-Stacks verwendet Logstash denselben Elastic GPG-Schlüssel und dasselbe Repository.
Um Logstash unter CentOS 8 zu installieren, geben Sie in einem Terminalfenster den Befehl ein:
sudo dnf install logstash
Geben Sie Y
ein und drücken Sie Enter um die Installation zu bestätigen.
Logstash konfigurieren
Speichern Sie alle benutzerdefinierten Konfigurationsdateien in /etc/logstash/conf.d/ Verzeichnis. Die Konfiguration hängt weitgehend von Ihrem Anwendungsfall und den verwendeten Plugins ab.
Beispiele für benutzerdefinierte Konfigurationen finden Sie unter Logstash-Konfigurationsbeispiele.
Logstash starten
Starten und aktivieren Sie den Logstash-Dienst:
sudo systemctl start logstash
sudo systemctl enable logstash
Sie sollten jetzt eine funktionierende Installation von Elasticsearch zusammen mit dem Kibana-Dashboard und der Logstash-Datenerfassungspipeline haben.
Schritt 6:Filebeat installieren
Um die Protokollierung zu vereinfachen, installieren Sie ein leichtgewichtiges Modul namens Filebeat . Filebeat ist ein Versender für Protokolle, der das Datenstreaming zentralisiert.
Um Filebeat zu installieren, öffnen Sie ein Terminalfenster und führen Sie den folgenden Befehl aus:
sudo yum install filebeat
Fügen Sie als Nächstes das System hinzu Modul, das die lokalen Systemprotokolle untersucht:
sudo filebeat modules enable system
Führen Sie als Nächstes das Filebeat-Setup aus:
sudo filebeat setup
Das System erledigt einige Aufgaben, scannt Ihr System und stellt eine Verbindung zu Ihrem Kibana-Dashboard her.
Starten Sie den Filebeat-Dienst:
sudo service filebeat start
Starten Sie Ihr Kibana-Dashboard in einem Browser, indem Sie die folgende Adresse aufrufen:
http://localhost:5601
Klicken Sie in der linken Spalte auf Protokolle Tab. Suchen und klicken Sie auf Live streamen Verknüpfung. Sie sollten jetzt einen Live-Datenstrom für Ihre lokalen Protokolldateien sehen.