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

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

In diesem Beitrag erfahren Sie, wie Sie Elasticsearch, Logstash und Kibana 4 auf Ubuntu 14.04 / 15.04 installieren. 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.7.0

logstash-1.5.3

Kibana 4.1.1

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 -versionjava 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. Installieren Sie wget.

$ sudo su -# apt-get update# apt-get 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. Richten Sie das Repository ein und installieren Sie die neueste Version von Elasticsearch.

# wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -# echo "deb http://packages.elastic.co/elasticsearch/1.7/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-1.7.list# apt-get update &&apt-get install elasticsearch

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" :"Thermo",  "cluster_name" :"elasticsearch",  "version" :{    "number" :"1.7. 0",    "build_hash" :"929b9739cae115e73c346cb5f9a6f24ba735a743",    "build_timestamp" :"2015-07-16T14:31:07Z",    "build_snapshot" :false,    "lucene_version" :"Youtag "4.10.4"  :   Wissen, für die Suche"}

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.

# echo "deb http://packages.elasticsearch.org/logstash/1.5/debian stable main" | sudo tee -a /etc/apt/sources.list# apt-get update &&apt-get install logstash

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 Sie einen Hostnamen verwenden („servers“:[ „server.itzgeek.local:5050“ ]), sollte der Betreffname von SSL mit „server.itzgeek.local“ übereinstimmen. Wenn Sie ( „Server“:[ „192.168.12.10:5050“ ]) eine IP-Adresse verwenden, müssen Sie ein SSL-Zertifikat mit IP SAN mit dem Wert 192.168.12.10 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 192.168.12.10 die IP-Adresse des Logstash-Servers und itzgeek der Hostname Ihres Logstash-Servers ist.

# vi /etc/hosts192.168.12.10 server.itzgeek.local

Lassen Sie uns ein SSL-Zertifikat erstellen. Gehen Sie zum OpenSSL-Verzeichnis.

# cd /etc/ssl/

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 logstash-forwarder.key -out logstash-forwarder.crt -subj /CN=server.itzgeek.local 

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:192.168.12.10

Wechseln Sie in das OpenSSL-Verzeichnis.

# cd /etc/ssl/

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

# openssl req -x509 -days 365 -batch -nodes -newkey rsa:2048 -keyout logstash-forwarder.key -out 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 Dateiendungen mit .conf.

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

# vi /etc/logstash/conf.d/logstash.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 => 5050type => "logs"ssl_certificate => "/etc/ssl/logstash-forwarder.crt"ssl_key => "/etc/ssl/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 tt 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 logstash.service starten

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.elastic.co/logstash-forwarder/binaries/logstash-forwarder_0.4.0_amd64.deb# dpkg -i logstash-forwarder_0.4.0_amd64.deb

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.

# scp -pr [email protected]://etc/ssl/logstash-forwarder.crt /etc/ssl

Ö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.

Dieser Abschnitt definiert den Logstash-Forwarder, um Protokolle an den Logstash-Server „server.itzgeek.local“ auf Port 5050 zu senden, und der Client validiert die Serveridentität mit Hilfe des SSL-Zertifikats. Hinweis:Ersetzen Sie „server.itzgeek.local“ durch die IP-Adresse, falls Sie IP SAN verwenden.

"servers":[ "server.itzgeek.local:5050" ],"ssl ca":"/etc/ssl/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/syslog) mit dem Typ „syslog“ an den Logstash-Server zu senden.

{"Pfade":["/var/log/syslog"],"fields":{ "type":"syslog" }}

Starten Sie den Dienst neu.

# systemctl logstash-forwarder.service starten

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.elastic.co/kibana/kibana/kibana-4.1.1-linux-x64.tar.gz

Extrahieren und verschieben Sie es nach /opt/

# tar -zxvf kibana-4.1.1-linux-x64.tar.gz# mv kibana-4.1.1-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 InterfaceAfter=elasticsearch.serviceAfter=logstash.service[Service]ExecStartPre=/bin/rm -rf /var/run/kibana. pidExecStart=/opt/kibana4/bin/kibanaExecReload=/bin/kill -9 $(cat /var/run/kibana.pid) &&/bin/rm -rf /var/run/kibana.pid &&/opt/kibana4/ bin/kibanaExecStop=/bin/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://Ihre-IP-Adresse:5601/

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

@Zeitstempel

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.


Ubuntu
  1. So installieren Sie Logstash unter Ubuntu 18.04

  2. So installieren und verwenden Sie Elasticsearch unter Ubuntu 20.04

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

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

  5. Installieren Sie Elasticsearch, Logstash und Kibana auf Ubuntu 20.04

So installieren Sie Elastic Stack (Elasticsearch, Logstash und Kibana) unter CentOS 8

So installieren Sie Graylog2 und Elasticsearch unter Ubuntu 15.10

ELK Stack auf Ubuntu 16.04 einrichten – Installieren Sie ElasticSearch, Logstash und Kibana auf Ubuntu 16.04

So installieren Sie Elasticsearch, Logstash und Kibana (ELK Stack) unter Ubuntu 18.04 / Ubuntu 16.04

So installieren Sie ELK Stack (Elasticsearch, Logstash und Kibana) unter Ubuntu 20.04

So installieren Sie Elasticsearch Logstash Kibana (Elastic Stack) unter Ubuntu 18.04