So installieren Sie Elasticsearch, Logstash und Kibana (Elk Stack) auf CentOS/RHEL 7

So installieren Sie Elasticsearch, Logstash und Kibana (Elk Stack) auf CentOS/RHEL 7

Wenn Sie eine Person sind, die in der Vergangenheit für die Überprüfung und Analyse von Systemprotokollen in Linux zuständig ist, wissen Sie, was für ein Albtraum dieser Aufgabe werden kann, wenn gleichzeitig mehrere Dienste überwacht werden.

In den vergangenen Tagen musste diese Aufgabe meist manuell erledigt werden, wobei jeder Protokolltyp getrennt behandelt wurde. Zum Glück die Kombination von Elasticsarch, Logstash, Und Kibana Auf der Serverseite zusammen mit Dateibeat Auf der Kundenseite lässt diese einst schwierige Aufgabe heute wie ein Spaziergang im Park aussehen.

Die ersten drei Komponenten bilden das, was genannt wird ELCH Stack, dessen Hauptzweck darin besteht, gleichzeitig Protokolle von mehreren Servern zu sammeln (auch als zentralisierte Protokollierung bezeichnet).

Vorgeschlagene Lesen: 4 gute Open -Source -Protokoll -Überwachungs- und -management -Tools für Linux

Mit einer integrierten Java-basierten Weboberfläche können Sie die Protokolle schnell auf einen Blick auf einen Blick auf den Vergleich und Fehlerbehebung inspizieren. Diese Client -Protokolle werden von an einen zentralen Server gesendet Dateibeat, Dies kann als Protokollversandvertreter beschrieben werden.

Mal sehen, wie all diese Teile zusammenpassen. Unsere Testumgebung besteht aus den folgenden Maschinen:

Zentraler Server: Centos 7 (IP Adresse: 192.168.0.29). 2 GB von Ram. Kunde #1: Centos 7 (IP Adresse: 192.168.0.100). 1 GB von Ram. Kunde #2: Debian 8 (IP Adresse: 192.168.0.101). 1 GB von Ram. 

Bitte beachten Sie, dass die RAM Die hier bereitgestellten Werte sind keine strengen Voraussetzungen, sondern empfohlene Werte für eine erfolgreiche Umsetzung der ELCH Stapel auf dem zentralen Server. Weniger RAM Kunden werden gar nicht viel Unterschied machen.

Installieren Sie den Elch -Stack auf dem Server

Beginnen wir mit der Installation der ELCH Stapel auf dem Server, zusammen mit einer kurzen Erläuterung, was jede Komponente tut:

  1. Elasticsarch speichert die Protokolle, die von den Clients gesendet werden.
  2. Logstash verarbeitet diese Protokolle.
  3. Kibana Bietet die Weboberfläche, mit der wir die Protokolle inspizieren und analysieren können.

Installieren Sie die folgenden Pakete auf dem zentralen Server. Zunächst einmal werden wir installieren Java Jdk Ausführung 8 (aktualisieren 102, das neueste zum Zeitpunkt dieses Schreibens), was eine Abhängigkeit von der ist ELCH Komponenten.

Möglicherweise möchten Sie hier zuerst auf der Java -Download -Seite überprüfen, ob ein neueres Update verfügbar ist.

# yum update # cd /opt # WGet-NO-Cookies-No-Check-Certificate-Header "Cookie: GPW_E24 = http%3a%2f%2fwww.Orakel.com%2f; Oraclelicense = Accept-Securebackup-Cookie "" http: // download.Orakel.com/otn-pub/java/jdk/8u102-b14/jre-8u102-linux-x64.rpm " # rpm -uvh jre-8U102-linux-x64.Drehzahl 

Zeit zu überprüfen, ob die Installation erfolgreich abgeschlossen wurde:

# Java -Version 
Überprüfen Sie die Java -Version von Commandline

So installieren Sie die neuesten Versionen von Elasticsarch, Logstash, Und Kibana, Wir müssen Repositorys für Yum manuell wie folgt:

Aktivieren Sie Elasticsearch Repository

1. Importieren Sie den Elasticsearch Public GPG -Schlüssel in den RPM -Paketmanager:

# RPM -Import http: // Pakete.elastisch.Co/GPG-Key-E-Elasticsarch 

2. Fügen Sie die folgenden Zeilen in die Repository -Konfigurationsdatei ein Elasticsarch.Repo:

/etc/yum.Repos.D/Elasticsarch.Repo
[Elasticsearch] name = Elasticsearch Repository BaseUrl = http: // Pakete.elastisch.co/elasticsearch/2.x/centos gpgcheck = 1 gpgkey = http: // pakete.elastisch.co/gpg-key-elasticsearch aktiviert = 1 

3. Installieren Sie das Elasticsearch -Paket.

# YUM Installieren Sie ElasticSearch 

Wenn die Installation abgeschlossen ist, werden Sie aufgefordert, Elasticsearch zu starten und zu aktivieren:

Installieren Sie Elasticsearch unter Linux

4. Starten Sie und aktivieren Sie den Service.

# SystemCTL Dämon-Reload # systemctl aktivieren elasticsearch # systemctl start elasticsarch 

5. Lassen Sie den Datenverkehr über den TCP -Port 9200 in Ihrer Firewall:

# Firewall-CMD --add-Port = 9200/TCP # Firewall-CMD --add-Port = 9200/TCP --Permanent 

6. Überprüfen Sie, ob Elasticsarch antwortet auf einfache Anfragen über Http:

# curl -x Holen Sie sich http: // localhost: 9200 

Die Ausgabe des obigen Befehls sollte ähnlich sein wie:

Überprüfen Sie die Installation der Elasticsearch

Stellen Sie sicher, dass Sie die oben genannten Schritte ausführen und dann mit fortfahren Logstash. Da beide Logstash Und Kibana Teile die Elasticsearch GPG Schlüssel, es ist nicht erforderlich, es vor der Installation der Pakete erneut zu importieren.

Vorgeschlagene Lesen: Systemprotokolle verwalten (konfigurieren, drehen und in die Datenbank importieren) in CentOS 7

Aktivieren Sie das Logstash -Repository

7. Fügen Sie die folgenden Zeilen in die Repository -Konfigurationsdatei ein Logstash.Repo:

/etc/yum.Repos.D/Logstash.Repo
[logstash] name = logstash baseUrl = http: // pakete.Elasticsarch.org/logstash/2.2/CentOS gpgcheck = 1 gpgkey = http: // pakete.Elasticsarch.org/gpg-key-elasticsearch aktiviert = 1 

8. Installiere das Logstash Paket:

# Yum Installation Logstash 

9. Füge hinzu ein SSL Zertifikat basierend auf der IP -Adresse des ELK -Servers in der folgenden Zeile unterhalb der [v3_ca] Abschnitt in /etc/pki/tls/openssl.CNF:

[v3_ca] SubjektALTNAME = IP: 192.168.0.29 
Fügen Sie Elasticsearch Server IP -Adresse hinzu

10. Generieren Sie ein selbstsigniertes Zertifikat für gültig für 365 Tage:

# CD/etc/pki/tls # openssl req -config/etc/pki/tls/openSSL.CNF -X509 -days 3650 -batch -nodes -newKey RSA: 2048 -keeout privat/logstash -Forwarder.Schlüssel -OUT -Zertifikate/Logstash -Forwarder.crt 

11. Konfigurieren Logstash Eingabe-, Ausgabe- und Filterdateien:

Eingang: Erstellen /etc/logstash/conf.D/Eingang.Conf und setzen Sie die folgenden Zeilen hinein. Dies ist für Logstash auf “erforderlichlernenWie man Beats von Kunden verarbeitet. Stellen Sie sicher, dass der Pfad zum Zertifikat und der Schlüssel den richtigen Pfaden entspricht, wie im vorherigen Schritt dargestellt:

/etc/logstash/conf.D/Eingang.Conf
Eingabe Beats Port => 5044 SSL => True SSL_Certificate => "/etc/pki/tls/certs/logstash-Forwarder.crt "ssl_key =>"/etc/pki/tls/privat/logstash-Forwarder.Taste"   

Ausgang (/etc/logstash/conf.D/Ausgang.Conf) Datei:

/etc/logstash/conf.D/Ausgang.Conf
Ausgabe ElasticSearch hosts => ["localhost: 9200"] sniffing => true verwaltet_template => false index => "%[@metadata] [Beat]-%+yyyy.Mm.dd "document_type =>"%[@metadata] [type] " 

Filter (/etc/logstash/conf.D/Filter.Conf) Datei. Wir werden Syslog -Nachrichten für die Einfachheit protokollieren:

/etc/logstash/conf.D/Filter.Conf
filter if [type] == "syslog" grok match => "message" => "%sysLogline" Date match => ["timestamp", "mmm d hh: mm: ss" , "Mmm DD HH: MM: SS"] 

12. Überprüfen Sie die Logstash Konfigurationsdateien.

# Service Logstash configest 
Überprüfen Sie die Logstash -Konfiguration

13. Starten Sie und aktivieren Sie Logstash:

# SystemCTL Dämon-Reload # SystemCTL Start Logstash # systemctl aktivieren logstash aktivieren 

14. Konfigurieren Sie die Firewall so, dass Logstash die Protokolle von den Clients abrufen kann (TCP -Port 5044):

# Firewall-CMD --add-Port = 5044/TCP # Firewall-CMD --add-Port = 5044/TCP --Permanent 

Aktivieren Sie das Kibana -Repository

14. Fügen Sie die folgenden Zeilen in die Repository -Konfigurationsdatei ein Kibana.Repo:

/etc/yum.Repos.D/Kibana.Repo
[kibana] name = kibana repository baseUrl = http: // pakete.elastisch.co/kibana/4.4/CentOS gpgcheck = 1 gpgkey = http: // pakete.elastisch.co/gpg-key-elasticsearch aktiviert = 1 

15. Installiere das Kibana Paket:

# Yum Installieren Sie Kibana 

16. Starten Sie und aktivieren Sie Kibana.

# Systemctl Dämon-Reload # SystemCTL Start Kibana # systemctl aktivieren kibana 

17. Stellen Sie sicher, dass Sie von einem anderen Computer auf die Weboberfläche von Kibana zugreifen können 5601):

# Firewall-CMD --add-Port = 5601/TCP # Firewall-CMD --add-Port = 5601/TCP --Permanent 

18. Start Kibana (http: // 192.168.0.29: 5601) Um zu überprüfen, ob Sie auf die Weboberfläche zugreifen können:

Greifen Sie auf Kibana -Weboberfläche zu

Wir werden hierher zurückkehren, nachdem wir installiert und konfiguriert haben Dateibeat auf die Kunden.

Vorgeschlagene Lesen: Überwachen Sie Serverprotokolle in Echtzeit mit „Protokoll.IO ”Tool in Linux

Installieren Sie FileBeat auf den Client -Servern

Wir werden Ihnen zeigen, wie das geht Kunde #1 (Wiederholen Sie Kunde #2 Danach wechseln Sie bei Ihrer Verteilung, falls dies zutreffend ist.

1. Kopieren Sie das SSL -Zertifikat vom Server in die Clients:

# scp/etc/pki/tls/certs/logstash-Forwarder.CRT [E -Mail geschützt]:/etc/pki/tls/certs/certs/ 

2. Importieren Elasticsarch Public GPG -Schlüssel zum RPM -Paketmanager:

# RPM -Import http: // Pakete.elastisch.Co/GPG-Key-E-Elasticsarch 

3. Erstellen Sie ein Repository für Dateibeat (/etc/yum.Repos.D/Filebeat.Repo) In Centos basierte Verteilungen:

/etc/yum.Repos.D/Filebeat.Repo
[Dateibeat] name = fileBeat für ELK Clients BaseUrl = https: // Pakete.elastisch.co/Beats/yum/el/$ basearch enabled = 1 gpgkey = https: // pakete.elastisch.co/gpg-key-elasticsearch gpgcheck = 1 

4. Konfigurieren Sie die Quelle, um FileBeat auf zu installieren Debian und seine Derivate:

# APTitude Installation APT-transport-https # echo "Deb https: // pakete.elastisch.Co/Beats/APT Stable Main ">/etc/Apt/Quellen.Liste.D/Filebeat.Listen Sie # Aptitude Update auf 

5. Installiere das Dateibeat Paket:

# yum installieren Sie Filebeat [On Centos und basierte Distribut Debian und seine Derivate] 

6. Starten und aktivieren Sie FileBeat:

# SystemCTL Start FileBeat # SystemCTL aktivieren Sie FileBeat 

Dateibeat konfigurieren

Ein Wort der Vorsicht hier. Dateibeat Die Konfiguration wird in a gespeichert Yaml Datei, die eine strenge Einklingung erfordert. Seien Sie vorsichtig damit, während Sie bearbeiten /etc/filebeat/fileBeat.YML folgendermaßen:

  1. Unter Wege, Geben Sie an, welche Protokolldateien an den Elkserver „versendet“ werden sollen.
  2. Unter Prospektoren:
input_type: log document_type: syslog 
  1. Unter Ausgang:
    1. Die Linie, die mit beginnt, mit Logstash.
    2. Geben Sie die IP -Adresse Ihres ELK -Servers und Ports an, in dem sich Logstash anhört Gastgeber.
    3. Stellen Sie sicher Schritt i (Logstash Abschnitt) oben.

Die obigen Schritte sind im folgenden Bild dargestellt:

Konfigurieren Sie FileBeat auf Clientservern

Änderungen speichern und dann neu starten Dateibeat auf die Kunden:

# SystemCtl Neustart FileBeat 

Sobald wir die oben genannten Schritte für die Kunden ausgeführt haben, können Sie gerne fortfahren.

Testen von Dateibeat

Um zu überprüfen, ob die Protokolle der Clients erfolgreich gesendet und empfangen werden können, führen Sie den folgenden Befehl auf der ELCH Server:

# curl -xget 'http: // localhost: 9200/filebeat -*/_ Suche?hübsch' 

Die Ausgabe sollte ähnlich sein wie (Beachten Sie, wie Nachrichten von /var/log/messages Und /var/log/sicher werden von empfangen Client1 Und Client2):

Testen von Dateibeat

Ansonsten überprüfen Sie die Dateibeat Konfigurationsdatei für Fehler.

# Journalctl -xe 

Nach dem Versuch, FileBeat neu zu starten.

Kibana testen

Nachdem wir überprüft haben, dass Protokolle von den Clients versendet und erfolgreich auf dem Server empfangen werden. Das erste, was wir tun müssen Kibana Konfiguriert ein Indexmuster und setzen Sie es als Standardeinstellung ein.

Sie können einen Index als vollständige Datenbank in einem relationalen Datenbankkontext beschreiben. Wir werden mit gehen mit Dateibeat-* (Oder Sie können genauere Suchkriterien verwenden, wie in der offiziellen Dokumentation erläutert.).

Eingeben Dateibeat-* im Indexname oder Musterfeld Und dann klicken Sie Erstellen:

Kibana testen

Bitte beachten Sie, dass Sie später ein feinkörnigeres Suchkriterium eingeben dürfen. Klicken Sie anschließend auf den Stern im grünen Rechteck, um es als Standardindexmuster zu konfigurieren:

Konfigurieren Sie das Standard -Kibana -Indexmuster

Schließlich in der Entdecken Menü Sie finden mehrere Felder, die Sie zum Protokollvisualisierungsbericht hinzufügen können. Bewegen Sie sich einfach über sie und klicken Sie auf Hinzufügen:

Protokollvisualisierungsbericht hinzufügen

Die Ergebnisse werden im zentralen Bereich des Bildschirms angezeigt, wie oben gezeigt. Fühlen Sie sich frei zu spielen (fügen Sie Felder aus dem Protokollbericht hinzu), um sich kennenzulernen, um sich kennenzulernen Kibana.

Standardmäßig, Kibana Zeigt die Datensätze an, die während der letzten verarbeitet wurden 15 Minuten (siehe obere rechte Ecke), aber Sie können dieses Verhalten ändern, indem Sie einen anderen Zeitrahmen auswählen:

Kibana -Protokollberichte

Zusammenfassung

In diesem Artikel haben wir erklärt, wie Sie einen Elchstapel einrichten, um die Systemprotokolle zu sammeln, die von zwei Kunden, einer CentOS 7 und einer Debian 8 -Maschinen, gesendet wurden.

Jetzt können Sie sich auf die offizielle Elasticsearch -Dokumentation beziehen und weitere Details zur Verwendung dieses Setups finden, um Ihre Protokolle effizienter zu inspizieren und zu analysieren.

Wenn Sie Fragen haben, zögern Sie nicht zu stellen. Wir freuen uns von Ihnen zu hören.