ELK Stack ist die weltweit beliebteste Log-Management-Plattform. Es ist eine Sammlung von Open-Source-Produkten wie Elasticsearch, Logstash und Kibana. Alle diese 3 Produkte werden von Elastic entwickelt, verwaltet und gewartet.
ELK Stack ist eine leistungsstarke Open-Source-Plattform, die eine riesige Menge an protokollierten Daten verwalten kann. Das Eingabeprotokoll stammt im Allgemeinen von einer grafischen Weboberfläche (GUI).
- Elasticsearch ist eine JSON-basierte Such- und Analysemaschine für horizontale Skalierbarkeit und einfachere Verwaltung.
- Logstash ist eine serverseitige Datenverarbeitungsschnittstelle, die in der Lage ist, Daten aus mehreren Quellen gleichzeitig zu sammeln. Es transformiert es dann und sendet die Daten dann an den gewünschten Stash. Es ist eine Open-Source-Anwendung.
- Kibana wird verwendet, um Ihre Daten zu visualisieren und durch den Elastic Stack zu navigieren. Es ist auch ein Open-Source-Tool.
Installieren und konfigurieren Sie ELK Stack auf Ubuntu
In diesem Tutorial verwenden wir filebeat Logdaten an Logstash senden. Beats sind leichtgewichtige Datenversender und zunächst sollten wir den Agenten auf Servern installieren.
Schritt 1) Installieren von Java 8
ElasticSearch unterstützt Java 8 und 9, aber das Problem ist, dass Logstash nur mit Java 8 kompatibel ist. Java 9 wird noch nicht unterstützt. Daher werden wir Oracle Java 8 installieren.
Starten Sie das Terminal und fügen Sie das Oracle Java 8-Repository hinzu, gefolgt von einem Systemupdate und der tatsächlichen Installation.
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt install oracle-java8-set-default
Achten Sie auf das Terminal. Sie müssen den Lizenzvereinbarungsfenstern zustimmen und "Ja" auswählen, um fortzufahren. Nachdem die Installation abgeschlossen ist, können Sie die Java-Version mit den folgenden Befehlen überprüfen:
.sudo java -version
sudo echo $JAVA_HOME
Schritt 2) Elasticsearch installieren und konfigurieren
Lass uns beginnen mit wget Befehl zum Herunterladen von Elasticsearch gefolgt vom öffentlichen Signaturschlüssel:
sudo wget -qO - https://artefakte.elastisch.co/GPG-KEY-elasticsearch | sudo apt-key hinzufügen -
Zweitens installieren Sie das Paket apt-transport-https (Debian-basierte Distributionen benötigen dies).
sudo apt-get install apt-transport-https
Fügen Sie das Repository hinzu:
echo "deb https://artefakte.elastisch.Co/Pakete/6.x/apt stable main" | sudo tee -a /etc/apt/sources.aufführen.d/elastisch-6.x.aufführen
Aktualisieren Sie die Repo-Liste und installieren Sie das Paket:
sudo apt-get update
sudo apt-get install elasticsearch
Ändern wir „elasticsearch“.yml“-Datei:
sudo vim /etc/elasticsearch/elasticsearch.yml
Entkommentieren Sie „Netzwerk.host“ und „http.Hafen". Folgende Konfiguration sollte hinzugefügt werden:
Netzwerk.host: localhost http.Anschluss: 9200
Als nächstes speichern und schließen Sie die Datei.
Um sicherzustellen, dass ElasticSearch reibungslos funktioniert, aktivieren Sie es beim Booten und starten Sie ElasticSearch.
sudo systemctl aktivieren elasticsearch.Bedienung
sudo systemctl Elasticsearch starten.Bedienung
Installation prüfen:
sudo curl -XGET 'localhost:9200/?ziemlich'
Schritt 3) Kibana . installieren
Beginnen wir jetzt mit der Installation von Kibana und ändern Sie die Kibana-Einstellungen:
sudo apt-get installiere Kibana
sudo vim /etc/kibana/kibana.yml
Entkommentieren Sie folgende Zeilen:
Server.Port: 5601-Server.host: "localhost" elasticsearch.URL: "http://localhost:9200"
Speichern und beenden Sie die Datei.
Aktivieren Sie es beim Booten und starten Sie den Kibana-Dienst:
sudo systemctl aktivieren Kibana.Bedienung
sudo systemctl starte kibana.Bedienung
Schritt 4) Konfigurieren von Nginx als Reverse-Proxy für Kibana
In den ähnlichen Zeilen installieren wir Nginx, konfigurieren es und starten den Dienst. Verwenden Sie die folgenden Befehle nacheinander:
sudo apt-get install nginx apache2-utils
Virtuellen Host konfigurieren:
sudo vim /etc/nginx/sites-available/elk
Fügen Sie der Datei die folgende Konfiguration hinzu:
Server hören 80; server_name elch.fosslinux.com; auth_basic "Eingeschränkter Zugriff"; auth_basic_user_file /etc/nginx/.elkusergeheimnis; Standort / proxy_pass http://localhost:5601; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Verbindung 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade;
Benutzer- und Passwortdatei für die Webbrowser-Authentifizierung erstellen:
sudo htpasswd -c /etc/nginx/.elkusersecret elkusr
Passwort eingeben und wiederholen. Überprüfen Sie die Nginx-Konfigurationen:
sudo nginx -t
Aktivieren Sie Nginx beim Systemstart und starten Sie den Dienst neu:
sudo systemctl aktivieren nginx.Bedienung
sudo systemctl Neustart nginx.Bedienung
Schritt 5) Logstash installieren und konfigurieren
Logstash installieren:
sudo apt-get install logstash
Hier werden wir einen SSL-Zertifikatschlüssel generieren, um die Protokollübertragung vom File-Beat-Client zu sichern. Ändern Sie die Datei „hosts“, bevor Sie das SSL-Zertifikat erstellen.
sudo vim /etc/hosts
Fügen Sie der Datei die folgende Zeile hinzu. Stellen Sie sicher, dass Sie die IP und den Servernamen in Ihren ändern.
172.31.31.158 Elch-Server Elch-Server
Wenn Sie fertig sind, speichern und beenden Sie die Datei.
Wechseln Sie nun in das Verzeichnis zu Logstash.
sudo cd /etc/logstash/
Erstellen Sie einen Ordner für SSL:
sudo mkdir ssl
SSL-Zertifikat generieren. Ändern Sie mit dem folgenden Befehl elk-server in Ihren Servernamen.
sudo openssl req -subj '/CN=elk-server/' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout ssl/logstash-forwarder.key -out ssl/logstash-forwarder.crt
Erstellen Sie folgende Dateien in „/etc/logstash/conf.d”.
sudo cd /etc/logstash/conf.d/
Erstellen Sie eine Filebeat-Input-Datei mit vim.
sudo vim filebeat-eingabe.conf
Fügen Sie die folgenden Zeilen hinzu.
input beats port => 5443 type => syslog ssl => true ssl_certificate => "/etc/logstash/ssl/logstash-forwarder.crt" ssl_key => "/etc/logstash/ssl/logstash-forwarder.Schlüssel"
Speichern und schließen Sie die Datei und erstellen Sie eine neue Konfigurationsdatei.
sudo vim syslog-filter.conf
Fügen Sie die folgenden Inhalte hinzu.
filter if [type] == "syslog" grok match => "message" => "%SYSLOGTIMESTAMP:syslog_timestamp %SYSLOGHOST:syslog_hostname %DATA:syslog_program(?:\[%POSINT:syslog_pid\])?: %GREEDYDATA:syslog_message" add_field => [ "received_at", "%@timestamp" ] add_field => [ "received_from", "%host" ] date match => [ "syslog_timestamp" , "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
Datei speichern und beenden. Erstellen elastische Suche Ausgabedatei.
sudo vim Ausgabe-elasticsearch.conf
Fügen Sie die folgenden Zeilen hinzu.
output elasticsearch hosts => ["localhost:9200"] hosts => "localhost:9200" manage_template => false index => "%[@metadata][beat]-%+YYYY.MM.dd" document_type => "%[@metadata][type]"
Lassen Sie uns Logstash beim Booten aktivieren und den Dienst starten:
sudo systemctl aktivieren logstash.Bedienung
sudo systemctl starte logstash.Bedienung
Schritt 6) Filebeat auf Client-Servern installieren und konfigurieren
Beginnen Sie mit der Bearbeitung der Gastgeber Datei zum Hinzufügen von Elch-Host-Einträgen. Stellen Sie sicher, dass Sie die IP-Adresse und den Namen durch Ihre ersetzen.
sudo vim /etc/hosts
172.31.31.158 Elch-Server
Datei speichern und beenden.
Laden Sie den öffentlichen Signaturschlüssel herunter und installieren Sie ihn:
sudo wget -qO - https://artefakte.elastisch.co/GPG-KEY-elasticsearch | sudo apt-key hinzufügen -
Installieren Sie „apt-transport-https“ und fügen Sie Repository hinzu.
sudo apt-get install apt-transport-https
sudo echo "deb https://artifacts.elastisch.Co/Pakete/6.x/apt stable main" | sudo tee -a /etc/apt/sources.aufführen.d/elastisch-6.x.aufführen
Repository aktualisieren und Filebeat installieren.
sudo apt-get update
sudo apt-get install filebeat
Filebeat-Konfigurationen ändern.
sudo vim /etc/filebeat/filebeat.yml
Suchen Sie die folgende Zeile und ändern Sie den Wert auf „true“.
aktiviert: wahr
Hier ändern wir den Protokollpfad nicht und Dateibeat leitet alle Protokolle im Ordner „var/log“ weiter
Pfade: - /var/log/*.Log
Entkommentieren Sie die folgenden Zeilen:
Ausgabe.logstash: # Der Logstash hostet Hosts: ["elk-server:5443"] ssl.Certificate_authorities: ["/etc/filebeat/logstash-forwarder.crt"]
Kommentar Elasticsearch:
#Ausgabe.elasticsearch: # Array von Hosts, mit denen eine Verbindung hergestellt werden soll. # Hosts: ["localhost:9200"]
Datei speichern und beenden.
Gehen Sie nun zum ELK-Server und holen Sie sich „logstash-forwarder“.crt“ Inhalt
sudo cat /etc/logstash/ssl/logstash-forwarder.crt
kopiere die Ausgabe und gehe dann zum Elk-Client-Server.
Erstellen Sie eine Zertifikatsdatei
sudo vim /etc/filebeat/logstash-forwarder.crt
kopierte Ausgabe einfügen und speichern & beenden.
Aktivieren filebeat beim Systemstart Start filebeat Bedienung.
sudo systemctl aktivieren filebeat.Bedienung
sudo systemctl start filebeat.Bedienung
Schritt 7) Durchsuchen des Kibana-Dashboards
Starten Sie Ihren bevorzugten Webbrowser und geben Sie den Domainnamen gefolgt von Benutzername und Passwort ein.
http://elk.fosslinux.com
Geben Sie den erstellten Benutzernamen und das Passwort ein. Sie sollten die Kibana-Willkommensseite sehen. Klicken Sie auf die Schaltfläche „Meine eigenen entdecken“.
Sie sollten zur Kibana-Homepage weitergeleitet werden.
Klicken Sie auf der linken Seite auf „Entdecken“. Klicken Sie auf „Indexmuster erstellen“.
Definieren Sie dann das Indexmuster "filebeat-*".
Klicken Sie auf "Weiter", wählen Sie "@timestamp" und klicken Sie auf "Indexmuster erstellen".
Indexmuster sollte erstellt werden.
Klicken Sie auf das Menü „Entdecken“, um die Serverprotokolle anzuzeigen.
Protokolle werden gemäß Zeitstempel angezeigt. Klicken Sie auf einen beliebigen Zeitstempel, um ihn zu erweitern und den Inhalt der Protokolldatei und ihre Details anzuzeigen.
Wenn Sie hier angekommen sind, bedeutet dies, dass Sie den ELK-Stack mit filebeat erfolgreich installiert und konfiguriert haben. Habe irgendwelche Probleme? Lass es uns gerne in den Kommentaren unten wissen.