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.
- Packetbeat – Netzwerkpaketdaten analysieren.
- Filebeat – Echtzeit-Einblick in Protokolldaten.
- Topbeat – Erhalten Sie Erkenntnisse aus Infrastrukturdaten.
- 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.
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.
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:5601Bei 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