GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So installieren Sie den ELK-Stack unter Debian 8

Einführung

Der ELK-Stack ist ein beliebter Satz von Tools, der aus Elasticsearch, Logstash und Kibana besteht. Diese drei Tools bilden einen Software-Stack, der als äußerst leistungsfähiges zentralisiertes Netzwerkdatenanalyse- und Serverprotokoll-Visualisierungstool fungieren kann. Der ELK-Stack ist auch so konzipiert, dass er für den Lastausgleich sehr gut über mehrere Server skalieren kann. In dieser Anleitung werden wir alle Komponenten des ELK-Stacks auf einem einzelnen Server installieren.

Voraussetzungen

  • Ein Server mit Debian 8. Wenn Sie noch keinen Server haben, bietet Atlantic.net zuverlässige VPS-Hosting-Server, die Sie in weniger als 30 Sekunden hochfahren können.

Andere Betriebssysteme werden unterstützt, aber dieser Artikel konzentriert sich auf Debian 8.

Installation von ELK Stack auf Debian 8

Sudo

Aus Sicherheitsgründen wird im Allgemeinen davon abgeraten, als Root-Benutzer zu arbeiten. Mit sudo ermöglicht es Ihnen, Befehle auszuführen, die Root-Rechte von einem Nicht-Root-Benutzer erfordern. Standardmäßig enthält Debian das sudo nicht Paket, also werden wir es installieren.

apt-get install sudo

Sie müssen dann das Standardbenutzerkonto zu sudo hinzufügen Gruppe, die Root-Rechte-Befehle ausführen können soll. Ersetzen Sie <username> mit dem Benutzernamen des Kontos.

adduser  sudo

Melden Sie sich ab und wieder mit Ihrem neuen Benutzer an, und wir können fortfahren.

Wenn Sie sudo zum ersten Mal verwenden in einer Sitzung werden Sie nach dem Passwort des aktuellen Benutzers fragen.

Elasticsearch installieren

Beginnen wir den Prozess mit der Installation von Java auf unserem Server.

Elasticsearch, die Datenindizierungs- und Suchkomponente des ELK-Stacks, erfordert die Ausführung von Java. Wir installieren die OpenJDK 7-Version, Sie können jedoch jede JRE installieren, die in der Support-Matrix für Elasticsearch aufgeführt ist.

Zuerst müssen wir die Paketlisten auf unserem Server aktualisieren.

sudo apt-get update

Jetzt können wir die JRE installieren.

sudo apt-get install openjdk-7-jre

Diese Installation kann eine Weile dauern, da APT eine Menge Abhängigkeiten zu sortieren hat.

Sobald das erledigt ist, können wir Elasticsearch installieren. Die Version von Elasticsearch in den offiziellen Debian-Repositories ist sehr alt und wird von neueren Versionen von Kibana nicht unterstützt, daher werden wir das Elastic.co-Repository zu unserem Server hinzufügen und Elasticsearch von dort aus installieren.

Laden Sie den Repository-Signaturschlüssel für elastic.co herunter und installieren Sie ihn.

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

Als nächstes können wir das Repository zu /etc/apt/sources.list.d/ hinzufügen Verzeichnis.

echo "deb http://packages.elastic.co/elasticsearch/2.x/debian stable main" | sudo tee -a /etc/apt/sources.list.d/Elasticsearch-2.x.list

An dieser Stelle müssen wir die Paketlisten erneut aktualisieren, wodurch die neuere Version von Elasticsearch aus dem Elastic.co-Repository zu den Paketlisten hinzugefügt wird.

sudo apt-get update

Jetzt können wir Elasticsearch installieren.

sudo apt-get install elasticsearch

Außerdem müssen wir den Elasticsearch-Dienst so konfigurieren, dass er beim Systemstart gestartet wird.

sudo systemctl daemon-reloadsudo systemctl enable elasticsearch.service

Das ist es! Jetzt können Sie den Elasticsearch-Dienst starten.

sudo systemctl start elasticsearch.service

Und stellen Sie sicher, dass es aktiv ist.

systemctl status elasticsearch.service

Elasticsearch-Konfiguration

In unserem Fall ist dies nicht erforderlich, aber wenn Sie Kibana und Elasticsearch auf verschiedenen Servern ausführen (wie es bei vielen ELK-Bereitstellungen der Fall ist), müssen Sie die Elasticsearch-Konfigurationsdatei /etc/elasticsearch/elasticsearch.yml auf dem Elasticsearch-Server und fügen Sie die folgenden zwei Zeilen irgendwo in der Datei hinzu:

http.cors.allow-origin:"/.*/"http.cors.enabled:true

Fügen Sie derselben Datei eine Zeile hinzu, um den Elasticsearch-Cluster zu benennen. Der Standardname ist elasticsearch.

cluster.name:Elasticcluster

Bearbeiten der Elasticsearch-Konfigurationsdatei

Achten Sie darauf, der Konfigurationsdatei keine Leerzeilen oder Leerzeichen hinzuzufügen, da YAML-Dateien auf Leerzeichen achten.

Starten Sie dann den Elasticsearch-Daemon neu.

sudo systemctl restart elasticsearch.service

Stellen Sie erneut sicher, dass der Daemon erfolgreich ausgeführt wird.

systemctl status elasticsearch.service

Status des Elasticsearch-Dienstes

Logstash installieren

Wir können Logstash, die Protokollversand- und -transformationskomponente des ELK-Stacks, ganz ähnlich wie Elasticsearch installieren.

Wenn Sie diese Anleitung befolgt haben, haben Sie den Elastic.co-Paketsignaturschlüssel bereits hinzugefügt. Daher können wir diesen Teil überspringen und das Logstash-Repository von Elastic.co sofort zu unserem /etc/apt/sources.list.d/ hinzufügen .

echo "deb http://packages.elastic.co/logstash/2.0/debian stable main" | sudo tee -a /etc/apt/sources.list

Und aktualisieren Sie natürlich die Paketlisten.

sudo apt-get update

Als nächstes können wir Logstash installieren.

sudo apt-get install logstash

Wie bei Elasticsearch müssen wir Logstash beim Systemstart aktivieren.

sudo systemctl daemon-reloadsudo systemctl enable logstash.service

Jetzt können wir Logstash starten.

sudo systemctl start logstash.service

Und stellen Sie sicher, dass es läuft.

systemctl status logstash.service

Jetzt können wir mit der Konfiguration fortfahren!

Logstash-Konfiguration

Logstash verwendet Konfigurationsdateien in /etc/logstash/conf.d . Wir müssen drei neue Dateien in diesem Verzeichnis erstellen, da es keine Standardkonfiguration gibt.

cd /etc/logstash/conf.dsudo touch 01-input.conf 10-syslog.conf 30-lumberjack-output.conf

Wir verwenden die erste Datei, 01-input.conf , um anzugeben, wie Lumberjack auf eingehende Protokolle wartet.

Öffnen Sie die Datei zum Bearbeiten (ersetzen Sie den bevorzugten Texteditor, wenn Sie eine Präferenz haben).

sudo-Editor 01-input.conf

Fügen Sie den folgenden Block hinzu:

input { lumberjack { port => 5000 type => "logs" ssl_certificate => "/etc/ssl/certs/logstash-forwarder.crt" ssl_key => "/etc/ssl/logstash-forwarder.key" } }

Speichern und schließen Sie die Datei.

Machen Sie sich noch keine Gedanken über die SSL-Zertifikate. Wir werden sie in Kürze generieren.

Als nächstes müssen wir eine Filterkonfiguration zu 10-syslog.conf hinzufügen . Ein Filter kann eingehende Nachrichten (Protokolle) abgleichen und Transformationen auf die Daten anwenden, bevor sie in Elasticsearch indiziert werden.

Öffnen Sie die Datei in Ihrem Editor,

sudo-Editor 10-syslog.conf

und fügen Sie Folgendes 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}" ] } syslog_pri { } date { match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ] } }}

Dieser Filter fängt alle eingehenden Protokolle ab, die dem Standard-Syslog-Format entsprechen, und fügt dann jeder Nachricht einen Zeitstempel und ein Hostnamenfeld hinzu. Es extrahiert auch einige Informationen aus der Protokollnachricht, wie die Syslog-PID, das Programm, das die Nachricht generiert hat, und die Syslog-Nachricht selbst.

Für jeden neuen Protokolltyp, den Sie mit Logstash/Elasticsearch verwenden möchten, muss ein neuer Filter geschrieben werden.

Schließlich können wir zu unserer Ausgabekonfigurationsdatei 30-lumberjack-output.conf gehen . Diese Datei enthält einen einfachen Ausgabeblock, der angibt, dass indizierte Nachrichten an Elasticsearch gesendet werden sollen, sowie den Clusternamen.

Öffnen Sie die Datei in Ihrem Editor.

sudo editor 30-lumberjack-output.conf

Fügen Sie den folgenden Block hinzu:

output { elasticsearch { hosts => ["localhost"] }}

Jetzt werden wir die SSL-Zertifikate für Ihren ELK-Stack generieren.

SSL-Zertifikate generieren

Das Lumberjack-Protokoll, das Logstash zur Übermittlung von Protokollnachrichten verwendet, ist so konzipiert, dass es von Ende zu Ende sicher ist, und SSL ist eine zwingende Voraussetzung. Aber keine Sorge, es ist ganz einfach, die Zertifikate zu generieren.

Weil wir eine IP-Adresse anstelle eines Hostnamens für die servers verwenden Direktive in /etc/logstash-forwarder.conf , müssen wir dem generierten SSL-Zertifikat ein IP-SAN-Feld hinzufügen. Fügen Sie einen hinzu, indem Sie einen subjectAltName hinzufügen Zeile in die OpenSSL-Konfigurationsdatei /etc/ssl/openssl.cnf .

sudo-Editor /etc/ssl/openssl.cnf

Suchen Sie die Zeile mit [ v3_ca ] , und fügen Sie die folgende Zeile darunter ein. (Ersetzen Sie 127.0.0.1 mit der IP-Adresse Ihres Logstash-Servers, wenn Logstash auf einem separaten Server installiert ist.)

[ v3_ca ]subjectAltName =IP:127.0.0.1

Speichern und schließen Sie die Datei. Wir können jetzt das SSL-Zertifikat generieren.

sudo openssl req -x509 -batch -nodes -newkey rsa:2048 -keyout /etc/ssl/logstash-forwarder.key -out /etc/ssl/certs/logstash-forwarder.crtsudo chown logstash:logstash /etc/ ssl/logstash-forwarder.keysudo chmod 600 /etc/ssl/logstash-forwarder.key

Starten Sie nun Logstash neu und überprüfen Sie, ob es korrekt gestartet wurde.

sudo systemctl restart logstash.servicesystemctl status logstash.service

Status des Logstash-Dienstes

Überprüfen Sie auch nach dem Start die Protokolldateien unter /var/log/logstash/logstash.* und stellen Sie sicher, dass beim Start keine Fehler auftreten.

Logstash-Forwarder installieren

Nachdem wir die serverseitige Komponente von Logstash installiert haben, müssen wir den Logstash-Forwarder-Client auf jedem Server installieren, dessen Protokolle Sie überwachen möchten.

In diesem Tutorial werden wir Logstash-Forwarder auf demselben Server installieren, auf dem der Rest von ELK läuft, aber normalerweise würde Logstash-Forwarder auf anderen Servern laufen.

Zuerst müssen wir wieder ein neues Repository zum System hinzufügen.

echo "deb http://packages.elasticsearch.org/logstashforwarder/debian stable main" | sudo tee -a /etc/apt/sources.list.d/logstash-forwarder.list

Und aktualisieren Sie erneut die Paketlisten.

sudo apt-get update

Jetzt können wir Logstash-Forwarder installieren.

sudo apt-get install logstash-forwarder

Öffnen Sie nach Abschluss der Installation die Konfigurationsdatei für Logstash-Forwarder.

sudo-Editor /etc/logstash-forwarder.conf

Löschen Sie die vorhandene Standardkonfiguration und fügen Sie den folgenden Block hinzu:

{ "network":{ "servers":[ "127.0.0.1:5000" ], "timeout":15, "ssl ca":"/etc/ssl/certs/logstash-forwarder.crt" }, "files":[ { "paths":[ "/var/log/syslog", "/var/log/auth.log" ], "fields":{ "type":"syslog" } } ]} 

Diese Konfiguration überprüft /var/log/syslog und /var/log/auth.log für neue Einträge und markiert dann jede ausgehende Nachricht aus diesen Dateien mit syslog im type Feld.

Wenn Sie Logstash-Forwarder auf einem separaten Host installieren, stellen Sie sicher, dass Sie die servers ändern Direktive, um die IP-Adresse des Remote-Servers aufzunehmen. Stellen Sie außerdem sicher, dass Sie die SSL-Zertifikatsdatei an den richtigen Speicherort auf dem Remote-Server kopieren.

Jetzt aktivieren wir Logstash-Forwarder beim Booten.

sudo systemctl daemon-reloadsudo systemctl enable logstash-forwarder.service

Schließlich können wir den Logstash-Forwarder-Dienst neu starten, um die Konfigurationsänderungen zu übernehmen.

sudo systemctl restart logstash-forwarder.service

Wenn der Daemon gut startet, können wir mit der Einrichtung von Kibana fortfahren und den vollständigen ELK-Stack zum Laufen bringen.

systemctl status logstash-forwarder.service

Status des Logstash-Weiterleitungsdienstes

Um zu überprüfen, ob logstash-forwarder funktioniert, beobachten Sie die Protokolldatei auf verarbeitete Ereignisse.

tail -f /var/log/logstash-forwarder/*

Logstash-Forwarder-Logdateien

Kibana installieren

Leider bietet elastic.co zum Zeitpunkt des Schreibens dieses Artikels keine Paketversionen von Kibana an, sodass die Daemon-Verwaltung dem Benutzer überlassen wird. Wir müssen eine systemd-Dienstdatei erstellen und Kibana manuell installieren.

Navigieren Sie zu /opt Verzeichnis und laden Sie Kibana herunter.

cd /optwget -qO - https://download.elastic.co/kibana/kibana/kibana-4.3.0-linux-x64.tar.gz | sudo tar -xzf -

Wir müssen einen neuen Benutzer erstellen, unter dem Kibana ausgeführt werden soll, und den Besitz des Programmverzeichnisses festlegen.

sudo useradd kibanasudo chown kibana:kibana kibana-4.3.0-linux-x64/ -R

Nach diesem Schritt können wir die systemd-Dienstdatei erstellen.

sudo touch /usr/lib/systemd/system/kibana.service

Fügen Sie der Datei die Dienstdefinition hinzu.

sudo-Editor /usr/lib/systemd/system/kibana.service[Unit]Description=kibanaDocumentation=http://www.elastic.coWants=network-online.targetAfter=network-online.target[Service]User=kibanaGroup=kibanaExecStart=/opt/kibana-4.3.0-linux-x64/bin/kibanaRestart=alwaysStandardOutput=null# Verbindet Standardfehler mit journalStandardError=journal[Install]WantedBy=multi-user.target

Wir müssen jetzt alle systemd-Einheiten neu laden und dann den Kibana-Dienst aktivieren.

sudo systemctl daemon-reloadsudo systemctl enable kibana.service

Jetzt können wir Kibana starten.

sudo systemctl start kibana.service

Überprüfen Sie noch einmal, ob es läuft, und los geht's!

Systemctl-Status kibana.service

Kibana-Dienststatus

Kibana-Konfiguration

Die Hauptkonfigurationsdatei von Kibana befindet sich unter /opt/kibana-4.3.0-linux-x64/config/kibana.yml . Die Standardoptionen sollten für diese Anleitung ausreichen, aber Sie können die Einstellungen nach Bedarf für Ihre Konfiguration ändern.

Navigieren Sie in einem Webbrowser zur IP-Adresse Ihres Servers an Port 5601, um auf die Kibana-Initialisierungsseite zuzugreifen. Kibana fordert Sie auf, ein Indexmuster zu konfigurieren; wählen Sie received_at für den Zeitfeldnamen und drücken Sie Create .

Erstellen Sie ein Indexmuster in Kibana

Das ist es! Ihre ELK-Stack-Komponenten – Elasticsearch, Logstash und Kibana – sind installiert und betriebsbereit.

Wohin als nächstes?

Vielen Dank, dass Sie dieses Tutorial zur Installation des ELK-Stacks unter Debian 8 mitverfolgt haben. Bitte besuchen Sie uns erneut für verwandte Artikel und testen Sie einen unserer blitzschnellen VPS-Server.


Linux
  1. So installieren Sie Elasticsearch auf Debian 9

  2. So installieren Sie Elasticsearch unter Debian 10

  3. So installieren Sie den ELK-Stack auf RHEL 8

  4. So installieren Sie den ELK-Stack unter Ubuntu 16.04

  5. So installieren Sie MongoDB unter Debian 11

So installieren Sie den LEMP-Stack unter Debian 11

So installieren Sie den LAMP-Stack unter Debian 11

So installieren Sie Go unter Debian 11

So installieren Sie den ELK-Stack unter CentOS 7

So installieren Sie den ELK-Stack unter CentOS 8

So installieren Sie den ELK-Stack unter Ubuntu 20.04