So installieren Sie Elasticsearch 1.7, Logstash 1.5 und Kibana 4.1 (ELK Stack) unter CentOS 7

Einführung

In diesem Tutorial werden wir die Installation des Elasticsearch ELK-Stacks unter CentOS 7, Elasticsearch 1.7.3, Logstash 1.5.4 und Kibana 4.1.1, durchgehen. Wir zeigen Ihnen auch, wie Sie es konfigurieren, um die Syslogs Ihrer Systeme an einem zentralen Ort zu erfassen und zu visualisieren. Logstash ist ein Open Source-Tool zum Sammeln, Parsen und Speichern von Protokollen für die zukünftige Verwendung. Kibana ist eine Webschnittstelle, mit der die von Logstash indizierten Protokolle durchsucht und angezeigt werden können. Beide Tools basieren auf Elasticsearch.

Die zentrale Protokollierung kann sehr nützlich sein, wenn Sie versuchen, Probleme mit Ihren Servern oder Anwendungen zu identifizieren, da Sie alle Ihre Protokolle an einem einzigen Ort durchsuchen können. Dies ist auch nützlich, da Sie Probleme identifizieren können, die sich über mehrere Server erstrecken, indem Sie deren Protokolle während eines bestimmten Zeitraums korrelieren.

Es ist möglich, Logstash zum Sammeln von Protokollen aller Art zu verwenden. Wir beschränken den Umfang dieses Lernprogramms jedoch auf das Sammeln von Syslogs.

Unser Ziel

Das Lernprogramm hat zum Ziel, Logstash so einzurichten, dass Syslogs mehrerer Server erfasst werden, und Kibana so einzurichten, dass die erfassten Protokolle angezeigt werden.

Unser Logstash / Kibana-Setup besteht aus vier Hauptkomponenten:

  • * Logstash *: Die Serverkomponente von Logstash, die eingehende Protokolle verarbeitet

  • * Elasticsearch *: Speichert alle Protokolle

  • * Kibana *: Weboberfläche zum Durchsuchen und Visualisieren von Protokollen, die über Nginx weitergeleitet werden

  • * Logstash Forwarder *: Auf Servern installiert, die ihre Protokolle an Logstash senden, dient Logstash Forwarder als Protokollweiterleitungs-Agent, der das Netzwerkprotokoll lumberjack für die Kommunikation mit Logstash verwendet

Wir werden die ersten drei Komponenten auf einem einzigen Server installieren, den wir als unseren * Logstash-Server * bezeichnen. Der Logstash Forwarder wird auf allen Client-Servern installiert, für die wir Protokolle erfassen möchten, die wir zusammen als unsere * Client-Server * bezeichnen.

Voraussetzungen

Um dieses Tutorial abzuschließen, benötigen Sie Root-Zugriff auf ein CentOS 7 VPS. Anweisungen zum Einrichten finden Sie hier (Schritte 3 und 4): Initial Server Setup with CentOS 7.

Wenn Sie lieber Ubuntu verwenden möchten, lesen Sie dieses Tutorial: https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-4-on-ubuntu-14- 04 [So installieren Sie ELK unter Ubuntu 14.04].

Die Menge an CPU, RAM und Speicher, die Ihr Logstash-Server benötigt, hängt von der Menge an Protokollen ab, die Sie sammeln möchten. In diesem Tutorial verwenden wir einen VPS mit den folgenden Spezifikationen für unseren Logstash-Server:

  • Betriebssystem: CentOS 7

  • RAM: 4 GB

  • CPU: 2

Zusätzlich zu Ihrem Logstash-Server benötigen Sie einige andere Server, von denen Sie Protokolle erfassen.

Beginnen wir mit der Einrichtung unseres Logstash-Servers!

Installieren Sie Java 8

Elasticsearch und Logstash benötigen Java, das werden wir jetzt installieren. Wir werden eine neuere Version von Oracle Java 8 installieren, da dies von Elasticsearch empfohlen wird. Es sollte jedoch gut mit OpenJDK funktionieren, wenn Sie sich für diesen Weg entscheiden. Das Befolgen der Schritte in diesem Abschnitt bedeutet, dass Sie die Oracle Binary License Agreement for Java SE akzeptieren.

Wechseln Sie in Ihr Ausgangsverzeichnis und laden Sie das Oracle Java 8 (Update 65) -JDK-RPM mit den folgenden Befehlen herunter:

cd ~
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u65-b17/jdk-8u65-linux-x64.rpm"

Installieren Sie dann das RPM mit diesem yum-Befehl (wenn Sie eine andere Version heruntergeladen haben, ersetzen Sie den Dateinamen hier):

sudo yum localinstall jdk-8u65-linux-x64.rpm

Jetzt sollte Java unter + / usr / java / jdk1.8.0_65 / jre / bin / java + installiert und über / usr / bin / java verlinkt werden.

Sie können die zuvor heruntergeladene Archivdatei löschen:

rm ~/jdk-8u65-linux-x64.rpm

Nachdem Java 8 installiert ist, installieren wir ElasticSearch.

Installieren Sie Elasticsearch

Elasticsearch kann mit einem Paket-Manager installiert werden, indem das Paket-Repository von Elastic hinzugefügt wird.

Führen Sie den folgenden Befehl aus, um den öffentlichen GPG-Schlüssel von Elasticsearch in rpm zu importieren:

sudo rpm --import http://packages.elastic.co/GPG-KEY-elasticsearch

Erstellen und bearbeiten Sie eine neue yum-Repository-Datei für Elasticsearch:

sudo vi /etc/yum.repos.d/elasticsearch.repo

Fügen Sie die folgende Repository-Konfiguration hinzu:

/etc/yum.repos.d/elasticsearch.repo

[elasticsearch-1.7]
name=Elasticsearch repository for 1.7.x packages
baseurl=http://packages.elastic.co/elasticsearch/1.7/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

Speichern und schließen.

Installieren Sie Elasticsearch mit diesem Befehl:

sudo yum -y install elasticsearch

Elasticsearch ist jetzt installiert. Bearbeiten wir die Konfiguration:

sudo vi /etc/elasticsearch/elasticsearch.yml

Sie möchten den externen Zugriff auf Ihre Elasticsearch-Instanz (Port 9200) einschränken, damit Außenstehende Ihre Daten nicht lesen oder Ihren Elasticsearch-Cluster über die HTTP-API herunterfahren können. Suchen Sie die Zeile, die "+ network.host +" angibt, entfernen Sie das Kommentarzeichen und ersetzen Sie den Wert durch "localhost".

elasticsearch.yml Auszug (aktualisiert)

network.host: localhost

Speichern und beenden Sie "+ elasticsearch.yml +".

Starten Sie jetzt Elasticsearch:

sudo systemctl start elasticsearch

Führen Sie dann den folgenden Befehl aus, um Elasticsearch beim Booten automatisch zu starten:

sudo systemctl enable elasticsearch

Nachdem Elasticsearch nun ausgeführt wird, können Sie Kibana installieren.

Installieren Sie Kibana

Das Kibana-Paket hat denselben GPG-Schlüssel wie Elasticsearch und wir haben diesen öffentlichen Schlüssel bereits installiert. Erstellen und bearbeiten wir daher eine neue Yum-Repository-Datei für Kibana:

Erstellen und bearbeiten Sie eine neue yum-Repository-Datei für Kibana:

sudo vi /etc/yum.repos.d/kibana.repo

Fügen Sie die folgende Repository-Konfiguration hinzu:

/etc/yum.repos.d/kibana.repo

[kibana-4.1]
name=Kibana repository for 4.1.x packages
baseurl=http://packages.elastic.co/kibana/4.1/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

Speichern und schließen.

Installieren Sie Kibana mit diesem Befehl:

sudo yum -y install kibana

Öffnen Sie die Kibana-Konfigurationsdatei zum Bearbeiten:

sudo vi /opt/kibana/config/kibana.yml

Suchen Sie in der Kibana-Konfigurationsdatei die Zeile, die "+ host +" angibt, und ersetzen Sie die IP-Adresse (standardmäßig "0.0.0.0") durch "localhost":

kibana.yml Auszug (aktualisiert)

host: "localhost"

Speichern und schließen. Diese Einstellung macht es so, dass Kibana nur für den lokalen Host zugänglich ist. Dies ist in Ordnung, da wir einen Nginx-Reverseproxy auf demselben Server installieren, um den externen Zugriff zu ermöglichen.

Starten Sie nun den Kibana-Dienst und aktivieren Sie ihn:

sudo systemctl start kibana
sudo chkconfig kibana on

Bevor wir die Kibana-Weboberfläche verwenden können, müssen wir einen Reverse-Proxy einrichten. Machen wir das jetzt mit Nginx.

Installieren Sie Nginx

Da wir Kibana so konfiguriert haben, dass es auf "+ localhost +" lauscht, müssen wir einen Reverse-Proxy einrichten, um externen Zugriff darauf zu ermöglichen. Wir werden Nginx für diesen Zweck verwenden.

  • Hinweis: * Wenn Sie bereits eine Nginx-Instanz haben, die Sie verwenden möchten, können Sie diese auch verwenden. Stellen Sie einfach sicher, dass Kibana so konfiguriert ist, dass es von Ihrem Nginx-Server erreicht werden kann (Sie möchten wahrscheinlich den Wert "+ host " in " / opt / kibana / config / kibana.yml +" in die private IP-Adresse Ihres Kibana-Servers ändern). . Außerdem wird empfohlen, SSL / TLS zu aktivieren.

Fügen Sie das EPEL-Repository zu yum hinzu:

sudo yum -y install epel-release

Verwenden Sie nun yum, um Nginx und httpd-tools zu installieren:

sudo yum -y install nginx httpd-tools

Verwenden Sie htpasswd, um einen Administratorbenutzer mit dem Namen "kibanaadmin" (Sie sollten einen anderen Namen verwenden) zu erstellen, der auf die Kibana-Weboberfläche zugreifen kann:

sudo htpasswd -c /etc/nginx/htpasswd.users

Geben Sie an der Eingabeaufforderung ein Passwort ein. Merken Sie sich dieses Login, da Sie es benötigen, um auf die Kibana-Weboberfläche zuzugreifen.

Öffnen Sie nun die Nginx-Konfigurationsdatei in Ihrem bevorzugten Editor. Wir werden vi verwenden:

sudo vi /etc/nginx/nginx.conf

Suchen Sie den Standard-Serverblock (beginnt mit + server {+), den letzten Konfigurationsblock in der Datei, und löschen Sie ihn. Wenn Sie fertig sind, sollten die letzten beiden Zeilen in der Datei folgendermaßen aussehen:

nginx.conf Auszug

   include /etc/nginx/conf.d/*.conf;
}

Speichern und schließen.

Jetzt erstellen wir einen Nginx-Serverblock in einer neuen Datei:

sudo vi /etc/nginx/conf.d/kibana.conf

Fügen Sie den folgenden Codeblock in die Datei ein. Stellen Sie sicher, dass das "+ Servername +" mit dem Namen Ihres Servers übereinstimmt:

/etc/nginx/conf.d/kibana.conf

server {
   listen 80;

   server_name ;

   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. Dadurch wird Nginx so konfiguriert, dass der HTTP-Datenverkehr Ihres Servers an die Kibana-Anwendung geleitet wird, die + localhost: 5601 + abhört. Außerdem verwendet Nginx die Datei + htpasswd.users +, die wir zuvor erstellt haben, und erfordert eine grundlegende Authentifizierung.

Starten Sie nun Nginx und aktivieren Sie es, damit unsere Änderungen wirksam werden:

sudo systemctl start nginx
sudo systemctl enable nginx

Auf Kibana kann jetzt über Ihren FQDN oder die öffentliche IP-Adresse Ihres Logstash-Servers zugegriffen werden, d. H. http: // logstash% 5C_server% 5C_public% 5C_ip / [http: // logstash \ _server \ _public \ _ip /]. Wenn Sie in einem Webbrowser dorthin gehen, sollten Sie nach Eingabe der "kibanaadmin" -Anmeldeinformationen eine Kibana-Begrüßungsseite sehen, auf der Sie aufgefordert werden, ein Indexmuster zu konfigurieren. Lassen Sie uns später darauf zurückkommen, nachdem wir alle anderen Komponenten installiert haben.

Installieren Sie Logstash

Das Logstash-Paket verwendet denselben GPG-Schlüssel wie Elasticsearch. Wir haben diesen öffentlichen Schlüssel bereits installiert. Erstellen und bearbeiten Sie daher eine neue Yum-Repository-Datei für Logstash:

sudo vi /etc/yum.repos.d/logstash.repo

Fügen Sie die folgende Repository-Konfiguration hinzu:

/etc/yum.repos.d/logstash.repo

[logstash-1.5]
name=logstash repository for 1.5.x packages
baseurl=http://packages.elasticsearch.org/logstash/1.5/centos
gpgcheck=1
gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch
enabled=1

Speichern und schließen.

Installieren Sie Logstash 1.5 mit diesem Befehl:

sudo yum -y install logstash

Logstash ist installiert, aber noch nicht konfiguriert.

Generieren Sie SSL-Zertifikate

Da wir Logstash Forwarder verwenden, um Protokolle von unseren Servern an unseren Logstash-Server zu senden, müssen wir ein SSL-Zertifikat und ein Schlüsselpaar erstellen. Das Zertifikat wird vom Logstash Forwarder verwendet, um die Identität des Logstash-Servers zu überprüfen.

Jetzt haben Sie zwei Möglichkeiten, Ihre SSL-Zertifikate zu generieren. Wenn Sie über ein DNS-Setup verfügen, mit dem Ihre Client-Server die IP-Adresse des Logstash-Servers auflösen können, verwenden Sie * Option 2 *. Andernfalls können Sie mit * Option 1 * IP-Adressen verwenden.

Option 1: IP-Adresse

Wenn Sie kein DNS-Setup haben, das es Ihren Servern ermöglicht, Protokolle zu sammeln, um die IP-Adresse Ihres Logstash-Servers aufzulösen, müssen Sie die private IP-Adresse Ihres Logstash-Servers zum "+ subjectAltName +" hinzufügen (SAN) -Feld des zu generierenden SSL-Zertifikats. Öffnen Sie dazu die OpenSSL-Konfigurationsdatei:

sudo vi /etc/pki/tls/openssl.cnf

Suchen Sie den Abschnitt "+ [v3_ca] +" in der Datei und fügen Sie diese Zeile darunter ein (ersetzen Sie die private IP-Adresse des Logstash-Servers):

openssl.cnf Auszug

subjectAltName = IP:

Speichern und schließen.

Generieren Sie nun das SSL-Zertifikat und den privaten Schlüssel an den entsprechenden Speicherorten (/ etc / pki / tls /) mit den folgenden Befehlen:

cd /etc/pki/tls
sudo openssl req -config /etc/pki/tls/openssl.cnf -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt

Die Datei logstash-forwarder.crt wird auf alle Server kopiert, die Protokolle an Logstash senden. Dies erfolgt jedoch etwas später. Vervollständigen wir unsere Logstash-Konfiguration. Wenn Sie diese Option gewählt haben, überspringen Sie Option 2 und fahren Sie mit * Logstash konfigurieren * fort.

Option 2: FQDN (DNS)

Wenn Sie über ein DNS-Setup mit Ihrem privaten Netzwerk verfügen, sollten Sie einen A-Eintrag erstellen, der die private IP-Adresse des Logstash-Servers enthält. Dieser Domänenname wird im nächsten Befehl zum Generieren des SSL-Zertifikats verwendet. Alternativ können Sie einen Datensatz verwenden, der auf die öffentliche IP-Adresse des Servers verweist. Stellen Sie nur sicher, dass Ihre Server (die Server, von denen Sie Protokolle sammeln) den Domänennamen in Ihren Logstash-Server auflösen können.

Generieren Sie nun das SSL-Zertifikat und den privaten Schlüssel an den entsprechenden Speicherorten (/ etc / pki / tls /…) mit dem folgenden Befehl (Ersatz im FQDN des Logstash-Servers):

cd /etc/pki/tls
sudo openssl req -subj '/CN=/' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt

Die Datei logstash-forwarder.crt wird auf alle Server kopiert, die Protokolle an Logstash senden. Dies erfolgt jedoch etwas später. Vervollständigen wir unsere Logstash-Konfiguration.

Logstash konfigurieren

Logstash-Konfigurationsdateien haben das JSON-Format und befinden sich in /etc/logstash/conf.d. Die Konfiguration besteht aus drei Abschnitten: Eingaben, Filter und Ausgaben.

Erstellen Sie eine Konfigurationsdatei mit dem Namen "+ 01-lumberjack-input.conf +" und richten Sie unseren "lumberjack" -Eingang ein (das von Logstash Forwarder verwendete Protokoll):

sudo vi /etc/logstash/conf.d/01-lumberjack-input.conf

Fügen Sie die folgende Eingabekonfiguration ein:

/etc/logstash/conf.d/01-lumberjack-input.conf

input {
 lumberjack {
   port => 5043
   type => "logs"
   ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
   ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
 }
}

Speichern und Beenden. Dies gibt einen "+ Holzfäller " -Eingang an, der den TCP-Port " 5043 +" überwacht und das SSL-Zertifikat und den privaten Schlüssel verwendet, die wir zuvor erstellt haben.

Jetzt erstellen wir eine Konfigurationsdatei mit dem Namen "+ 10-syslog.conf +", in der wir einen Filter für Syslog-Nachrichten hinzufügen:

sudo vi /etc/logstash/conf.d/10-syslog.conf

Fügen Sie die folgende syslog filter Konfiguration ein:

/etc/logstash/conf.d/10-syslog.conf

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" ]
   }
 }
}

Speichern und Beenden. Dieser Filter sucht nach Protokollen, die vom Typ "syslog" (von einem Logstash Forwarder) als "syslog" bezeichnet werden, und verwendet "grok", um eingehende Syslog-Protokolle zu analysieren, um sie strukturiert und abfragbar zu machen.

Zuletzt erstellen wir eine Konfigurationsdatei mit dem Namen "+ 30-lumberjack-output.conf +":

sudo vi /etc/logstash/conf.d/30-lumberjack-output.conf

Fügen Sie die folgende output Konfiguration ein:

/etc/logstash/conf.d/30-lumberjack-output.conf

output {
 elasticsearch { host => localhost }
 stdout { codec => rubydebug }
}

Speichern und schließen. Diese Ausgabe konfiguriert Logstash grundsätzlich so, dass die Protokolle in Elasticsearch gespeichert werden.

Mit dieser Konfiguration akzeptiert Logstash auch Protokolle, die nicht mit dem Filter übereinstimmen, aber die Daten werden nicht strukturiert (z. ungefilterte Nginx- oder Apache-Protokolle werden als flache Nachrichten angezeigt, anstatt Nachrichten nach HTTP-Antwortcodes, Quell-IP-Adressen, bereitgestellten Dateien usw. zu kategorisieren.

Wenn Sie Filter für andere Anwendungen hinzufügen möchten, die die Logstash Forwarder-Eingabe verwenden, müssen Sie die Dateien so benennen, dass sie zwischen der Eingabe- und der Ausgabekonfiguration sortiert sind (d. H. zwischen 01- und 30-).

Starten Sie Logstash neu und aktivieren Sie es, damit die Konfigurationsänderungen wirksam werden:

sudo systemctl restart logstash

Nun, da unser Logstash-Server bereit ist, können Sie Logstash Forwarder einrichten.

Logstash Forwarder einrichten (Client-Server hinzufügen)

Führen Sie diese Schritte für jeden * CentOS- oder RHEL 7 * -Server aus, den Sie an Ihren Logstash-Server senden möchten. Anweisungen zum Installieren von Logstash Forwarder auf Debian-basierten Linux-Distributionen (z. Ubuntu, Debian usw.) finden Sie im https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-4-on-ubuntu-14-04#set -up-logstash-forwarder- (Add-Client-Server) [Abschnitt Build and Package Logstash Forwarder] der Ubuntu-Variante dieses Tutorials.

Kopieren Sie das SSL-Zertifikat und das Logstash Forwarder-Paket

Kopieren Sie auf * Logstash Server * das SSL-Zertifikat auf * Client Server * (ersetzen Sie die IP-Adresse des Client-Servers und Ihr eigenes Login):

scp /etc/pki/tls/certs/logstash-forwarder.crt @:/tmp

Stellen Sie nach der Eingabe der Anmeldeinformationen sicher, dass die Zertifikatkopie erfolgreich war. Es wird für die Kommunikation zwischen den Client-Servern und dem Logstash-Server benötigt.

Installieren Sie das Logstash Forwarder-Paket

Führen Sie auf * Client Server * den folgenden Befehl aus, um den öffentlichen GPG-Schlüssel von Elasticsearch in rpm zu importieren:

sudo rpm --import http://packages.elastic.co/GPG-KEY-elasticsearch

Erstellen und bearbeiten Sie eine neue yum-Repository-Datei für Logstash Forwarder:

sudo vi /etc/yum.repos.d/logstash-forwarder.repo

Fügen Sie die folgende Repository-Konfiguration hinzu:

/etc/yum.repos.d/logstash-forwarder.repo

[logstash-forwarder]
name=logstash-forwarder repository
baseurl=http://packages.elastic.co/logstashforwarder/centos
gpgcheck=1
gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch
enabled=1

Speichern und schließen.

Installieren Sie dann das Logstash Forwarder-Paket:

sudo yum -y install logstash-forwarder

Kopieren Sie nun das SSL-Zertifikat des Logstash-Servers an den entsprechenden Speicherort (/ etc / pki / tls / certs):

sudo cp /tmp/logstash-forwarder.crt /etc/pki/tls/certs/

Konfigurieren Sie Logstash Forwarder

Erstellen und bearbeiten Sie auf * Client Server * die Konfigurationsdatei von Logstash Forwarder im JSON-Format:

sudo vi /etc/logstash-forwarder.conf

Fügen Sie im Abschnitt "+ network " die folgenden Zeilen in die Datei ein und ersetzen Sie " logstash_server_private_IP +" durch die private IP-Adresse Ihres Logstash-Servers:

logstash-forwarder.conf Auszug 1 von 2

   "servers": [ ":5043" ],
   "ssl ca": "/etc/pki/tls/certs/logstash-forwarder.crt",
   "timeout": 15

Fügen Sie im Abschnitt "+ files +" (zwischen den eckigen Klammern) die folgenden Zeilen hinzu:

logstash-forwarder.conf Auszug 2 von 2

   {
     "paths": [
       "/var/log/messages",
       "/var/log/secure"
      ],
     "fields": { "type": "syslog" }
   }

Speichern und Beenden. Dadurch wird Logstash Forwarder so konfiguriert, dass eine Verbindung zu Ihrem Logstash-Server an Port 5043 (dem Port, für den wir zuvor eine Eingabe festgelegt haben) hergestellt wird, und das zuvor erstellte SSL-Zertifikat wird verwendet. Der Abschnitt paths gibt an, welche Protokolldateien gesendet werden sollen (hier geben wir "+ messages " und " secure +" an), und der Abschnitt type gibt an, dass diese Protokolle vom Typ "syslog *" sind (nach diesem Typ sucht unser Filter). .

Beachten Sie, dass Sie hier weitere Dateien / Typen hinzufügen, um Logstash Forwarder für andere Protokolldateien zu konfigurieren und Logstash an Port 5043 auszuführen.

Starten Sie nun Logstash Forwarder und aktivieren Sie es, damit unsere Änderungen übernommen werden:

sudo systemctl start logstash-forwarder
sudo chkconfig logstash-forwarder on

Jetzt sendet Logstash Forwarder Ihre Syslog-Dateien "+ messages " und " secure +" an Ihren Logstash-Server! Wiederholen Sie diesen Abschnitt für alle anderen Server, für die Sie Protokolle erfassen möchten.

Stellen Sie eine Verbindung zu Kibana her

Wenn Sie die Einrichtung von Logstash Forwarder auf allen Servern abgeschlossen haben, für die Sie Protokolle erfassen möchten, schauen wir uns Kibana an, die zuvor installierte Weboberfläche.

Wechseln Sie in einem Webbrowser zum FQDN oder zur öffentlichen IP-Adresse Ihres Logstash-Servers. Nach der Eingabe der Anmeldeinformationen "kibanaadmin" sollte eine Seite angezeigt werden, auf der Sie aufgefordert werden, ein Indexmuster zu konfigurieren:

Gehen Sie vor und wählen Sie * @ timestamp * aus dem Dropdown-Menü und klicken Sie dann auf die Schaltfläche * Create *, um den ersten Index zu erstellen.

Klicken Sie nun in der oberen Navigationsleiste auf den Link * Entdecken *. Standardmäßig werden Ihnen alle Protokolldaten der letzten 15 Minuten angezeigt. Sie sollten ein Histogramm mit Protokollereignissen und folgenden Protokollmeldungen sehen:

Im Moment ist nicht viel drin, da Sie nur Syslogs von Ihren Client-Servern sammeln. Hier können Sie Ihre Protokolle durchsuchen und durchsuchen. Sie können Ihr Dashboard auch anpassen.

Probieren Sie folgende Dinge aus:

  • Suchen Sie nach "root", um festzustellen, ob jemand versucht, sich als root bei Ihren Servern anzumelden

  • Suche nach einem bestimmten Hostnamen (suche nach + host:" "+)

  • Ändern Sie den Zeitrahmen, indem Sie einen Bereich im Histogramm oder im Menü oben auswählen

  • Klicken Sie auf Meldungen unter dem Histogramm, um zu sehen, wie die Daten gefiltert werden

Kibana hat viele andere Funktionen, wie z. B. Grafik und Filter.

Fazit

Nachdem Ihre Syslogs nun über Elasticsearch und Logstash zentralisiert sind und Sie sie mit Kibana visualisieren können, sollten Sie mit der Zentralisierung aller Ihrer wichtigen Logs gut beginnen. Denken Sie daran, dass Sie so ziemlich jede Art von Protokoll an Logstash senden können, aber die Daten werden noch nützlicher, wenn sie mit grok analysiert und strukturiert werden.

Um Ihren neuen ELK-Stack zu verbessern, sollten Sie Ihre anderen Protokolle mit Logstash sammeln und filtern und Kibana-Dashboards erstellen. Diese Themen werden im zweiten und dritten Lernprogramm dieser Reihe behandelt. Wenn Sie Probleme mit der Einrichtung haben, lesen Sie auch unser Tutorial How To Troubleshoot Common ELK Stack Issues .

Scrollen Sie nach unten, um mehr über die Verwendung Ihres ELK-Stacks zu erfahren!