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

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

ELCH ist ein Datenanalyse-Stack mit vollem Funktionsumfang, bestehend aus Elasticsearch , Logstash und Kibana, die Ihnen helfen, die Protokolle zentral zu speichern und zu verwalten, und die Möglichkeit bieten, die Probleme zu analysieren, indem sie die Ereignisse zu einem bestimmten Zeitpunkt korrelieren.

Diese Anleitung hilft Ihnen bei der Installation des ELK-Stacks unter Ubuntu 16.04.

Komponenten

Logstash – Es führt die Verarbeitung (Sammeln, Anreichern und Senden an Elasticsearch) von eingehenden Protokollen durch, die von Beats (Forwarder) gesendet werden.

Elasticsearch – Es speichert eingehende Protokolle von Logstash und bietet die Möglichkeit, die Protokolle/Daten in Echtzeit zu durchsuchen

Kibana – Stellt die Visualisierung von Protokollen bereit.

Beats – Wird auf Client-Computern installiert und sendet Protokolle über das Beats-Protokoll an Logstash.

Voraussetzungen

Wechseln Sie zum Root-Benutzer.

su -

ODER

sudo su -

Da Elasticsearch auf Java basiert, benötigen Sie OpenJDK oder Oracle JDK, das auf Ihrem Computer installiert ist.

LESEN :So installieren Sie Oracle Java 8 auf Ubuntu 16.04 / LinuxMint 18

Hier entscheide ich mich für die Installation von OpenJ D K .

apt-get updateapt-get install -y openjdk-8-jdk wget

Überprüfen Sie die Version von JAVA.

Java-Version

Ausgabe:

openjdk-Version „1.8.0_131“OpenJDK-Laufzeitumgebung (Build 1.8.0_131-8u131-b11-2ubuntu1.16.04.3-b11)OpenJDK 64-Bit-Server-VM (Build 25.131-b11, gemischter Modus)

Elasticsearch installieren

Elasticsearch ist ein Open-Source-Suchserver, der eine verteilte Suche und Analyse in Echtzeit mit der RESTful-Webschnittstelle bietet.

Elasticsearch speichert alle Daten, die von Logstash gesendet und auf Benutzeranfrage über Kibana angezeigt werden.

Dieses Thema behandelt Konfigurationseinstellungen, die für ELK erforderlich sind. Sie können auch unter  Install Elasticsearch on CentOS 7 / Ubuntu 16.04 / Linux Mint 18 fortfahren für weitere Anweisungen.

Richten Sie das Elasticsearch-Repository ein.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elk.list

Installieren Sie Elasticsearch.

apt-get updateapt-get install -y elasticsearch

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

systemctl elastische Suche aktivierensystemctl elastische Suche starten

Elastisearch sollte jetzt auf 9200 lauschen, um die HTTP-Anfrage zu verarbeiten; wir können CURL verwenden, um die Antwort zu erhalten.

curl -X GET http://localhost:9200

Ausgabe:

{ "name" :"gf5QYAn", "cluster_name" :"elasticsearch", "cluster_uuid" :"S6gZNkMERpSr-MGXqEFUJw", "version" :{ "number" :"5.5.2", "build_hash" :" b2f0c09“, „build_date“ :„2017-08-14T12:33:14.154Z“, „build_snapshot“ :false, „lucene_version“ :„6.6.0“ }, „tagline“ :„You Know, for Search“}

Logstash installieren

Logstash ist ein Open-Source-Tool, es sammelt die Protokolle, analysiert sie und speichert sie für die Suche auf Elasticsearch. Für Logstash sind mehr als 160 Plug-ins verfügbar, die die Möglichkeit bieten, eine andere Art von Ereignissen ohne zusätzliche Arbeit zu verarbeiten.

Installieren Sie Logstash mit dem Befehl apt-get.

apt-get install -y logstash

SSL-Zertifikat erstellen

Forwarder (filebeat), der auf Client-Servern installiert wird, verwendet ein SSL-Zertifikat, um die Identität des Logstash-Servers für eine sichere Kommunikation zu validieren.

Erstellen Sie ein SSL-Zertifikat entweder mit dem Hostnamen oder dem IP-SAN.

Option 1:(Hostname FQDN)

Wenn Sie den Hostnamen in der beats (Forwarder)-Konfiguration verwenden, stellen Sie sicher, dass Sie einen A-Eintrag für den Logstash-Server haben; Stellen Sie sicher, dass der Client-Computer den Hostnamen des Logstash-Servers auflösen kann.

Wenn Sie keinen Nameserver in Ihrer Umgebung haben; Stellen Sie sicher, dass Sie den Hosteintrag für den Logstash-Server sowohl auf Client-Computern als auch auf dem Logstash-Server hinzufügen.

sudo nano /etc/hosts192.168.12.10 server.itzgeek.local

Gehen Sie zum OpenSSL-Verzeichnis.

cd /etc/ssl/

Erstellen Sie nun das SSL-Zertifikat. Ersetzen Sie „grün ” Geben Sie den Hostnamen Ihres echten Logstash-Servers ein.

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)

Wenn Sie die IP-Adresse anstelle des Hostnamens verwenden möchten, befolgen Sie bitte die Schritte zum Erstellen eines SSL-Zertifikats für IP-SAN.

Als Voraussetzung müssten wir eine IP-Adresse des Logstash-Servers zu SubjectAltName in der OpenSSL-Konfigurationsdatei hinzufügen.

nano /etc/ssl/openssl.cnf

Suchen Sie nach dem Abschnitt „[ v3_ca ]“ und ersetzen Sie „grün ” eine mit der IP Ihres Logstash-Servers.

subjectAltName =IP:192.168.12.10 

Wechseln Sie in das OpenSSL-Verzeichnis.

cd /etc/ssl/

Erstellen Sie jetzt ein SSL-Zertifikat, indem Sie den folgenden Befehl ausführen.

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-Konfiguration finden Sie in /etc/logstash/conf.d/. Wenn die Dateien nicht vorhanden sind, erstellen Sie eine neue. Die Logstash-Konfigurationsdatei besteht aus drei Abschnitten:Eingabe, Filter und Ausgabe; Alle drei Abschnitte befinden sich entweder in einer einzigen Datei oder jeder Abschnitt hat separate Dateien, die auf .conf enden.

Ich empfehle Ihnen, eine einzelne Datei zum Platzieren von Eingabe-, Filter- und Ausgabeabschnitten zu verwenden.

nano /etc/logstash/conf.d/logstash.conf

Im ersten Abschnitt werden wir einen Eintrag für die Eingangskonfiguration einfügen. Die folgende Konfiguration legt Logstash so fest, dass es Port 5044 auf eingehende Protokolle von den Beats (Forwarder) überwacht, die sich auf Client-Computern befinden. Fügen Sie außerdem die Details des SSL-Zertifikats im Eingabebereich für eine sichere Kommunikation hinzu.

input { beats { port => 5044 ssl => true ssl_certificate => "/etc/ssl/logstash-forwarder.crt" ssl_key => "/etc/ssl/logstash-forwarder.key" congestion_threshold => "40 " }}

Im Filterbereich. Wir werden Grok verwenden, um die Protokolle zu parsen, bevor sie an Elasticsearch gesendet werden. Der folgende grok-Filter sucht nach den mit „syslog“ gekennzeichneten Protokollen 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" ]}  }}

Weitere Filtermuster finden Sie auf der Grokdebugger-Seite.

Im Ausgabeabschnitt definieren wir den Ort, an dem die Protokolle gespeichert werden sollen. offensichtlich sollte es Elasticsearch sein.

output { elasticsearch { hosts => localhost index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" }stdout { codec => rubydebug }}

Starten und aktivieren Sie nun den Logstash.

systemctl logstash startensystemctl logstash aktivieren

Sie können alle Probleme beheben, indem Sie sich das folgende Protokoll ansehen.

cat /var/log/logstash/logstash-plain.log

Als Nächstes werden wir Beats konfigurieren, um die Protokolle an den Logstash-Server zu senden.

Filebeat installieren

Es sind vier Beats-Clients verfügbar.

  1. Packetbeat – Netzwerkpaketdaten analysieren.
  2. Filebeat – Echtzeit-Einblick in Protokolldaten.
  3. Topbeat – Erhalten Sie Erkenntnisse aus Infrastrukturdaten.
  4. Metricbeat – Metriken an Elasticsearch senden.

Auf dem Client-Rechner:

Um die Systemprotokolle zu analysieren, verwenden wir hier filebeat. Sie können Filebeat von der offiziellen Website herunterladen , oder Sie können den folgenden Befehl verwenden, um es zu installieren.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/beats.list

Installieren Sie Filebeat.

apt-get update apt-get install -y filebeat

Filebeat (beats) verwendet ein SSL-Zertifikat zur Validierung der Identität des Logstash-Servers. Kopieren Sie daher die Datei „logstash-forwarder.crt“ vom Logstash-Server auf den Client.

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

Filebeat konfigurieren

Jetzt ist es an der Zeit, Filebeat mit Logstash zu verbinden; Führen Sie die folgenden Schritte aus, um Filebeat mit dem ELK-Stack zu konfigurieren.

Die Filebeat-Konfigurationsdatei ist im YAML-Format, was bedeutet, dass die Einrückung sehr wichtig ist. Stellen Sie sicher, dass Sie die gleiche Anzahl von Leerzeichen wie im Leitfaden verwenden.

Öffnen Sie die Filebeat-Konfigurationsdatei.

nano /etc/filebeat/filebeat.yml

Oben sehen Sie Filebeat-Prospektoren. Hier müssen Sie angeben, welche Dateien an Logstash gesendet werden sollen und wie sie behandelt werden sollen. Jeder Prospektor beginnt mit Zeichen.

Zu Testzwecken werden wir filebeat so konfigurieren, dass es /var/log/syslog sendet zum Logstash-Server. Ändern Sie dazu den vorhandenen Prospektor unter Pfade Sektion. Kommentieren Sie – /var/log/*.log aus um zu vermeiden, dass alle .log gesendet werden Datei in diesem Verzeichnis an Logstash.

. . . Pfade:        - /var/log/syslog # - /var/log/*.log. . .

Im Abschnitt "Ausgaben" , kommentieren Sie den Abschnitt output.elasticsearch: aus da wir Protokolle nicht direkt in Elasticsearch speichern werden.

Suchen Sie nun die Zeile „output.logstash: “ und ändern Sie die Einträge wie unten. Dieser Abschnitt definiert, dass Filebeat Protokolle an den Logstash-Server „server.itzgeek.local“ sendet “ auf Port „5044 ” und geben Sie den Pfad an, in dem das kopierte SSL-Zertifikat abgelegt wird.

Hinweis:Ersetzen Sie „server.itzgeek.local ” mit IP-Adresse, falls Sie IP SAN verwenden.

. . .output.logstash:# Die Logstash-Hosts hosts:["server.itzgeek.local:5044 "] # Optionales SSL. Standardmäßig deaktiviert. # Liste der Stammzertifikate für HTTPS-Serverüberprüfungen ssl.certificate_authorities:["/etc/ssl/logstash-forwarder.crt "].   .   .

Starten Sie den Dienst neu.

systemctl filebeat neu startensystemctl filebeat aktivieren

Beats-Protokolle befinden sich normalerweise in seiner Protokolldatei.

cat /var/log/filebeat/filebeat

Kibana installieren und konfigurieren

Kibana bietet eine Visualisierung der in Elasticsearch gespeicherten Protokolle. Laden Sie sie von der offiziellen Website herunter oder verwenden Sie den folgenden Befehl, um das Repository einzurichten.

apt-get install -y kibana

Bearbeiten Sie die Datei kibana.yml.

nano /etc/kibana/kibana.yml

Standardmäßig lauscht Kibana auf localhost, was bedeutet, dass Sie von externen Computern nicht auf die Kibana-Schnittstelle zugreifen können. Um es zu aktivieren, bearbeiten Sie die folgende Zeile mit Ihrer Maschinen-IP.

server.host:"192.168.12.10 "

Entkommentieren Sie die folgende Zeile und aktualisieren Sie sie mit der URL der Elasticsearch-Instanz. In meinem Fall ist es localhost.

elasticsearch.url:"http://localhost:9200"

Kibana beim Systemstart starten und aktivieren.

systemctl startet Kibanasystemctl aktiviert Kibana

Greifen Sie über die folgende URL auf Kibana zu.

http://deine-ip-adresse:5601/

ODER

http://Ihr-Server-Name:5601

Bei Ihrer ersten Anmeldung müssen Sie den Filebeat-Index zuordnen.

Geben Sie Folgendes in den Indexnamen oder -muster ein Feld.

filebeat-*

Wählen Sie  @timestamp aus und klicken Sie dann auf "Erstellen".

@Zeitstempel

Gehen Sie die Indexmuster und ihre Zuordnung durch.

Klicken Sie auf Entdecken in der linken Navigation, um die eingehenden Protokolle vom Client-Rechner anzuzeigen.

Das ist alles. Sie haben den ELK-Stack erfolgreich auf Ubuntu 16.04 eingerichtet


Ubuntu
  1. Installieren des ELK-Stacks unter Ubuntu 14.04

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

  3. Installation von Filebeat, Logstash, ElasticSearch und Kibana in Ubuntu 14.04

  4. So installieren und konfigurieren Sie Elasticsearch unter Ubuntu 20.04

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

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

So installieren Sie ELK Stack auf Ubuntu 18.04

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

So installieren Sie den ELK-Stack unter Ubuntu 18.04 LTS

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

So installieren Sie den ELK-Stack unter Ubuntu 20.04