GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So installieren Sie Elasticsearch, Logstash und Kibana 4 auf CentOS 7 / RHEL 7

Dieses Tutorial ist für eine alte Version von ELK Stack, einige Links sind defekt und funktionieren möglicherweise nicht wie erwartet. Eine neue Version ist hier verfügbar:Aktualisiert:ELK Stack auf CentOS 7 / RHEL 7 installieren.

In diesem Beitrag wird gezeigt, wie Elasticsearch, Logstash und Kibana 4 auf CentOS 7 / RHEL 7 installiert werden. Dieser ELK-Stack hilft uns, die Protokolle an einem zentralen Ort zu speichern und zu verwalten. Der ELK-Stapel besteht aus vier wichtigen Komponenten, die einen wunderbaren Stapel bilden, um die Probleme zu analysieren, indem die Ereignisse zu einem bestimmten Zeitpunkt korreliert werden.

Das Zentralisieren von Protokollen erleichtert Systemadministratoren das Analysieren von Problemen und Problemen, ohne zu jedem Computer nach Protokollen gehen zu müssen, und visualisiert diese Protokolle für das Management für geschäftliche Anforderungen.

Komponenten:

Logstash – Führt die Verarbeitung (Erfassen, Analysieren und Senden an Elasticsearch) eingehender Protokolle durch.

Elasticsearch – Speichert die Protokolle von Logstash.

Kibana 4 – Webinterface zur Visualisierung der Logs (hat ein eigenes Interface).

Die oben genannten drei sind auf dem Server installiert.

Logstash-Forwarder – Wird auf Client-Rechnern installiert und sendet Protokolle über das Lumberjack-Protokoll an Logstash.

Anwendungsversionen:

Dieser Artikel verwendet die unten stehende Version der Software für den ELK-Stack.

Elastisearch 1.5.0

logstash-1.4.2

Kibana 4

logstash-forwarder-0.4.0

Voraussetzungen:

1. Wir müssten entweder openJDK oder Oracle JDK installieren. Es wird empfohlen, Oracle JDK zu installieren. Überprüfen Sie die Java-Version mit dem folgenden Befehl.

# java -version

java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)

2. Konfigurieren Sie das EPEL-Repository auf CentOS 7 / RHEL 7.

3. Installieren Sie wget.

# yum -y install wget

Elasticsearch installieren:

Elasticsearch ist ein Open-Source-Suchserver, der eine verteilte Suche und Analyse in Echtzeit mit einer RESTful-Webschnittstelle bietet. Elasticsearch speichert alle vom Logstash-Server gesendeten Protokolle und zeigt die Meldungen an, wenn kibana4 eine vollständige Benutzeranfrage über die Webschnittstelle anfordert. Dieses Thema behandelt Konfigurationseinstellungen, die für ELK erforderlich sind. Eine detaillierte Anleitung finden Sie auch unter Install Elasticsearch on CentOS 7 / Ubuntu 14.10 / Linux Mint 17.1.

Lassen Sie uns Elasticsearch installieren, es kann von der offiziellen Website heruntergeladen werden. Sie können den folgenden Befehl verwenden, um es über das Terminal herunterzuladen und zu installieren.

# wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.5.0.noarch.rpm

# rpm -Uvh elasticsearch-1.5.0.noarch.rpm

Konfigurieren Sie Elasticsearch so, dass es während des Systemstarts gestartet wird.

# systemctl daemon-reload
# systemctl enable elasticsearch.service
# systemctl start elasticsearch.service

Warten Sie mindestens eine Minute, bis Elasticsearch vollständig neu gestartet wurde, andernfalls schlägt der Test fehl. Elastisearch sollte jetzt auf 9200 für die Verarbeitung der HTTP-Anfrage lauschen, wir können CURL verwenden, um die Antwort zu erhalten.

# curl -X GET http://localhost:9200
{
"status" : 200,
"name" : "Delphi",
"cluster_name" : "elasticsearch",
"version" : {
"number" : "1.5.0",
"build_hash" : "544816042d40151d3ce4ba4f95399d7860dc2e92",
"build_timestamp" : "2015-03-23T14:30:58Z",
"build_snapshot" : false,
"lucene_version" : "4.10.4"
},
"tagline" : "You Know, for Search"
}

Installieren Sie Logstash:

Logstash ist ein Open-Source-Tool, das zum Sammeln, Analysieren und Speichern von Protokollen verwendet wird. Ja, logstash kommt mit einer Webschnittstelle (kibana3 ist eingebaut) zur Visualisierung von Protokollen, die wir hier nicht besprechen werden, stattdessen verwenden wir kibana4. Die Verarbeitung verschiedener Arten von Ereignissen kann durch Hinzufügen von Plugins erweitert werden, über 160 Plugins sind ab sofort verfügbar. Gehen wir direkt zur Installation.

# wget https://download.elasticsearch.org/logstash/logstash/packages/centos/logstash-1.4.2-1_2c0f5a1.noarch.rpm

# rpm -Uvh logstash-1.4.2-1_2c0f5a1.noarch.rpm

Sobald der Logstash-Server installiert ist, fahren wir mit dem nächsten Abschnitt fort

SSL-Zertifikat erstellen:

Logstash-Forwarder, der auf dem Client-Server installiert wird, um die Protokolle zu versenden, erfordert ein SSL-Zertifikat, um die Identität des Logstash-Servers zu validieren. Wir haben zwei Möglichkeiten, ein SSL-Zertifikat zu erstellen, und es hängt von der Logstash-Forwarder-Konfiguration ab; wenn der Hostname („servers“:[ „itzgeek:5050“ ]) verwendet wird, sollte der Subjektname von SSL mit „itzgeek“ übereinstimmen. Wenn Sie ( „Server“:[ „10.0.0.26:5050“ ]) eine IP-Adresse verwenden, müssen Sie ein SSL-Zertifikat mit IP SAN mit dem Wert 10.0.0.26 erstellen.

Befolgen Sie eine der Methoden zum Erstellen eines SSL-Zertifikats.

Option 1:(Hostname FQDN)

Stellen Sie vor dem Erstellen eines Zertifikats sicher, dass Sie einen A-Eintrag für den Logstash-Server haben; Stellen Sie sicher, dass Client-Server den Hostnamen des Logstash-Servers auflösen können. Wenn Sie kein DNS haben, fügen Sie bitte den Hosteintrag für den Logstash-Server hinzu; wobei 10.0.0.26 die IP-Adresse des Logstash-Servers und itzgeek der Hostname Ihres Logstash-Servers ist.

# vi /etc/hosts

10.0.0.26 itzgeek

Lassen Sie uns ein SSL-Zertifikat erstellen.

Wechseln Sie in das OpenSSL-Verzeichnis.

# cd /etc/pki/tls

Führen Sie den folgenden Befehl aus, um ein SSL-Zertifikat zu erstellen, ersetzen Sie das „rote“ durch Ihren echten Logstash-Server.

# openssl req -x509 -nodes -newkey rsa:2048 -days 365 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt -subj /CN=itzgeek

Option 2:(IP-Adresse)

Vor dem Erstellen eines SSL-Zertifikats müssten wir eine IP-Adresse des Logstash-Servers zu SubjectAltName in der OpenSSL-Konfigurationsdatei hinzufügen.

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

Gehen Sie zum Abschnitt „[ v3_ca ]“ und ersetzen Sie „rot“ durch Ihre Logstash-Server-IP.

subjectAltName = IP:10.0.0.26

Wechseln Sie in das OpenSSL-Verzeichnis.

# cd /etc/pki/tls

Führen Sie den folgenden Befehl aus, um ein SSL-Zertifikat zu erstellen.

# openssl req -x509 -days 365 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt

Diese logstash-forwarder.crt sollte auf alle Client-Server kopiert werden, die Protokolle an den Logstash-Server senden.

Logstash konfigurieren:

Die Logstash-Konfigurationsdateien befinden sich in /etc/logstash/conf.d/, nur einem leeren Ordner. Wir müssten eine Datei erstellen, Logstash-Konfigurationsdateien bestehen aus drei Abschnitten Eingabe, Filter und Ausgabe; Alle drei Abschnitte können entweder in einer einzigen Datei gefunden werden oder jeder Abschnitt hat separate Dateien, die mit .conf enden.

Hier verwenden wir eine einzelne Datei, um Eingabe-, Filter- und Ausgabeabschnitte zu platzieren.

# vi /etc/logstash/conf.d/logstash_syslogs.conf

Im ersten Abschnitt werden wir einen Eintrag für die Eingangskonfiguration einfügen. Die folgende Konfiguration legt Lumberjack so fest, dass es auf Port 5050 auf eingehende Protokolle vom Logstash-Forwarder lauscht, der sich auf den Client-Servern befindet, und es verwendet auch das zuvor erstellte SSL-Zertifikat.

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

Im zweiten Abschnitt werden wir einen Eintrag für die Filterkonfiguration einfügen. Grok ist ein Filter in Logstash, der Protokolle analysiert, bevor sie zum Speichern an Elasticsearch gesendet werden. Der folgende grok-Filter sucht nach den Protokollen, die als „syslog“ gekennzeichnet sind, und versucht, sie zu parsen, um einen strukturierten Index zu erstellen.

filter {
if [type] == "syslog" {
    grok {
      match => { "message" => "%{SYSLOGLINE}" }
    }

    date {
match => [ "timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
  }

}

Erwägen Sie den Besuch von grokdebugger für Filtermuster.

Im dritten Abschnitt werden wir einen Eintrag für die Ausgangskonfiguration einfügen. Dieser Abschnitt definiert den Ort, an dem die Protokolle gespeichert werden; offensichtlich sollte es Elasticsearch sein.

output {
elasticsearch { host => localhost index => "logstash-%{+YYYY.MM.dd}" }
stdout { codec => rubydebug }
}

Starten Sie nun den Logstash-Dienst.

# systemctl start logstash.service

Logstash-Serverprotokolle werden in der folgenden Datei gespeichert und helfen uns bei der Fehlerbehebung.

# cat /var/log/logstash/logstash.log

Als Nächstes konfigurieren wir einen Logstash-Forwarder, um Protokolle an den Logstash-Server zu senden.

Logstash-Weiterleitung konfigurieren.

Logstash-Forwarder ist eine Client-Software, die Protokolle an einen Logstash-Server sendet. Sie sollte auf allen Client-Servern installiert werden. Logstash-Forwarder kann von der offiziellen Website heruntergeladen werden oder Sie können den folgenden Befehl verwenden, um ihn im Terminal herunterzuladen und zu installieren.

# wget https://download.elasticsearch.org/logstash-forwarder/binaries/logstash-forwarder-0.4.0-1.x86_64.rpm

# rpm -Uvh logstash-forwarder-0.4.0-1.x86_64.rpm

Logstash-Forwarder verwendet ein SSL-Zertifikat zur Validierung der Identität des Logstash-Servers. Kopieren Sie also die Datei „logstash-forwarder.crt“, die wir zuvor erstellt haben, vom Logstash-Server auf den Client. Öffnen Sie die Konfigurationsdatei.

# vi /etc/logstash-forwarder.conf

Geben Sie im Abschnitt „Netzwerk“ den Logstash-Server mit Portnummer und Pfad zum Logstash-Forwarder-Zertifikat an, das Sie vom Logstash-Server kopiert haben. In diesem Abschnitt wird der Logstash-Forwarder so definiert, dass er Protokolle an den Logstash-Server „itzgeek“ auf Port 5050 sendet und der Client die Serveridentität mit Hilfe des SSL-Zertifikats validiert.

Hinweis:Ersetzen Sie „itzgeek“ durch die IP-Adresse, falls Sie IP SAN verwenden.

"servers": [ "itzgeek:5050" ],

"ssl ca": "/etc/pki/tls/certs/logstash-forwarder.crt",

"timeout": 15

Konfigurieren Sie im Abschnitt „Dateien“, was alle zu versendenden Dateien sind. In diesem Artikel konfigurieren wir einen Logstash-Forwarder, um Protokolle (/var/log/messages) mit dem Typ „syslog“ an den Logstash-Server zu senden.

{
"paths": [
"/var/log/messages"
],

"fields": { "type": "syslog" }
}

Starten Sie den Dienst neu.

# systemctl start logstash-forwarder.service

Sie können sich bei Problemen eine Protokolldatei ansehen.

# cat /var/log/logstash-forwarder/logstash-forwarder.err

Kibana 4 konfigurieren:

Kidbana bietet Visualisierung von Protokollen, laden Sie es von der offiziellen Website herunter. Verwenden Sie den folgenden Befehl, um es im Terminal herunterzuladen.

wget https://download.elasticsearch.org/kibana/kibana/kibana-4.0.2-linux-x64.tar.gz

Extrahieren und verschieben Sie es nach /opt/

tar -zxvf kibana-4.0.2-linux-x64.tar.gz

mv kibana-4.0.2-linux-x64 /opt/kibana4

Aktivieren Sie die PID-Datei für Kibana, dies ist erforderlich, um eine systemd-Init-Datei zu erstellen.

# sed -i 's/#pid_file/pid_file/g' /opt/kibana4/config/kibana.yml

Kibana kann durch Ausführen von /opt/kibana4/bin/kibana gestartet werden. Um Kibana als Server auszuführen, erstellen wir eine systemd-Datei.

# vi /etc/systemd/system/kibana4.service

[Unit]
Description=Kibana 4 Web Interface
After=elasticsearch.service
After=logstash.service
[Service]
ExecStartPre=rm -rf /var/run/kibana.pid
ExecStart=/opt/kibana4/bin/kibana/
ExecReload=kill -9 $(cat /var/run/kibana.pid) && rm -rf /var/run/kibana.pid && /opt/kibana4/bin/kibana/
ExecStop=kill -9 $(cat /var/run/kibana.pid)
[Install]
WantedBy=multi-user.target

Kibana starten und aktivieren, damit es beim Systemstart automatisch gestartet wird.

# systemctl start kibana4.service

systemctl enable kibana4.service

Greifen Sie auf Ihr Kibana-Portal zu, indem Sie den folgenden Link besuchen

http://your-ip-address:5601/

Sie erhalten eine folgende Seite, auf der Sie den Logstash-Index zuordnen müssen, um Kibana zu verwenden. Scrollen Sie nach unten zum Zeitfeldnamen und wählen Sie

@timestamp

Nach der Auswahl werden Sie zur Kibana-Hauptseite weitergeleitet.

Kibana bietet keinen passwortgeschützten Zugang zum Portal. Mit Nginx können wir so konfigurieren, dass der Benutzer den Authentifizierungsmechanismus erfüllen sollte, bevor er das Portal betritt.

Das ist alles, Sie haben den ELK-Stack erfolgreich für die zentralisierte Protokollverwaltung konfiguriert.

Dieses Tutorial ist für eine alte Version von ELK Stack, einige Links sind defekt und funktionieren möglicherweise nicht wie erwartet. Eine neue Version ist hier verfügbar:How to Install ELK Stack on CentOS 7 / RHEL 7.
Cent OS
  1. So installieren Sie Graylog2 unter CentOS 7 / RHEL 7

  2. So installieren Sie Elasticsearch unter CentOS 8 / RHEL 8

  3. So installieren Sie Elasticsearch, Logstash und Kibana 4 auf Ubuntu 14.04 / 15.04

  4. So installieren Sie Python 3.5 unter CentOS/RHEL und Fedora

  5. So installieren Sie Elasticsearch auf CentOS/RHEL 8

So installieren Sie Elasticsearch, Logstash und Kibana (ELK Stack) unter CentOS 7 / RHEL 7

So installieren Sie Graylog 3.0 unter CentOS 7 / RHEL 7

So installieren und verwenden Sie Firewalld in CentOS / RHEL

So installieren Sie Samba auf RHEL und CentOS Stream

So installieren und konfigurieren Sie Jenkins unter CentOS 8 / RHEL 8

So installieren Sie Wine 5.0 auf CentOS, RHEL und Fedora