Elastische Suche

Visualisieren Sie Apache-Protokolle mit ELK Stack

Visualisieren Sie Apache-Protokolle mit ELK Stack

Die Überwachung und Analyse von Protokollen für verschiedene Infrastrukturen in Echtzeit kann eine sehr mühsame Aufgabe sein. Bei Diensten wie Webservern, die ständig Daten protokollieren, kann der Prozess sehr komplex und fast unmöglich sein.

Wenn Sie wissen, wie Sie Tools zur Überwachung, Visualisierung und Analyse von Protokollen in Echtzeit verwenden, können Sie Probleme nachverfolgen und beheben und verdächtige Systemaktivitäten überwachen.

In diesem Tutorial wird erläutert, wie Sie eine der besten Echtzeit-Protokollsammlungen und Analysetools verwenden können - ELK. Mit ELK, allgemein bekannt als Elasticsearch, Logstash und Kibana, können Sie Daten von einem Apache-Webserver in Echtzeit sammeln, protokollieren und analysieren.

Was ist ELK-Stack??

ELK ist ein Akronym für die drei wichtigsten Open-Source-Tools: Elasticsearch, Logstash und Kibana.

Elasticsearch ist ein Open-Source-Tool, das entwickelt wurde, um Übereinstimmungen in einer großen Sammlung von Datensätzen mithilfe einer Auswahl von Abfragesprachen und -typen zu finden. Es ist ein leichtes und schnelles Tool, das mit Leichtigkeit Terabyte an Daten verarbeiten kann.

Logstash Engine ist eine Verbindung zwischen der Serverseite und Elasticsearch, mit der Sie Daten aus einer Auswahl von Quellen für Elasticsearch sammeln können. Es bietet leistungsstarke APIs, die problemlos in Anwendungen integriert werden können, die in verschiedenen Programmiersprachen entwickelt wurden.

Kibana ist das letzte Stück des ELK-Stapels. Es ist ein Datenvisualisierungstool, mit dem Sie die Daten visuell analysieren und aufschlussreiche Berichte erstellen können. Es bietet auch Grafiken und Animationen, die Ihnen bei der Interaktion mit Ihren Daten helfen können.

ELK-Stack ist sehr mächtig und kann unglaubliche Datenanalyse-Dinge machen.

Obwohl die verschiedenen Konzepte, die wir in diesem Tutorial besprechen, Ihnen ein gutes Verständnis des ELK-Stacks vermitteln, lesen Sie die Dokumentation für weitere Informationen.

Elasticsearch: https://linkfy.to/Elasticsearch-Referenz

Logstash: https://linkfy.to/LogstashReferenz

Kibana: https://linkfy.nach/KibanaGuide

So installieren Sie Apache?

Bevor wir mit der Installation von Apache und allen Abhängigkeiten beginnen, sollten Sie einige Dinge beachten.

Wir haben dieses Tutorial auf Debian 10 getestet.6, funktioniert aber auch mit anderen Linux-Distributionen.

Abhängig von Ihrer Systemkonfiguration benötigen Sie sudo- oder root-Berechtigungen.

ELK-Stack-Kompatibilität und Benutzerfreundlichkeit können je nach Version variieren.

Der erste Schritt besteht darin, sicherzustellen, dass Ihr System vollständig aktualisiert ist:

sudo apt-get update
sudo apt-get upgrade

Der nächste Befehl ist die Installation des Apache2-Webservers. Wenn Sie einen minimalen Apache installieren möchten, entfernen Sie die Dokumentation und die Dienstprogramme aus dem folgenden Befehl.

sudo apt-get install apache2 apache2-utils apache2-doc -y
sudo service apache2 start

Inzwischen sollte ein Apache-Server auf Ihrem System laufen.

So installieren Sie Elasticsearch, Logstash und Kibana?

Wir müssen jetzt den ELK-Stack installieren. Wir werden jedes Werkzeug einzeln installieren.

Elasticsearch

Beginnen wir mit der Installation von Elasticsearch. Wir werden apt verwenden, um es zu installieren, aber Sie können hier eine stabile Version von der offiziellen Download-Seite erhalten:

https://www.elastisch.co/downloads/elasticsearch

Elasticsearch benötigt Java zur Ausführung. Glücklicherweise wird die neueste Version mit einem OpenJDK-Paket geliefert, wodurch die mühsame manuelle Installation entfällt. Wenn Sie eine manuelle Installation durchführen müssen, lesen Sie die folgende Ressource:

https://www.elastisch.co/guide/de/elasticsearch/reference/current/setup.html#jvm-Version

Im nächsten Schritt müssen wir den offiziellen Elastic APT-Signaturschlüssel mit dem folgenden Befehl herunterladen und installieren:

wget -qO - https://artefakte.elastisch.co/GPG-KEY-elasticsearch | sudo apt-key hinzufügen -

Bevor Sie fortfahren, benötigen Sie möglicherweise ein apt-transport-https-Paket (erforderlich für Pakete, die über https bereitgestellt werden), bevor Sie mit der Installation fortfahren.

sudo apt-get install apt-transport-https

Fügen Sie nun die apt-Repository-Informationen zu den Quellen hinzu.aufführen.d-Datei.

echo "deb https://artefakte".elastisch.Co/Pakete/7.x/apt stable main” | sudo tee /etc/apt/sources.aufführen.d/elastisch-7.x.aufführen

Aktualisieren Sie dann die Paketliste auf Ihrem System.

sudo apt-get update

Installieren Sie Elasticsearch mit dem folgenden Befehl:

sudo apt-get install elasticsearch

Nachdem Sie Elasticsearch installiert haben, starten und aktivieren Sie einen Start beim Booten mit den systemctl-Befehlen:

sudo systemctl daemon-reload
sudo systemctl aktivieren elasticsearch.Bedienung
sudo systemctl Elasticsearch starten

Es kann eine Weile dauern, bis der Dienst gestartet wird. Warten Sie einige Minuten und bestätigen Sie, dass der Dienst mit dem folgenden Befehl ausgeführt wird:

sudo systemctl status elasticsearch.Bedienung

Testen Sie mit cURL, ob die Elasticsearch API verfügbar ist, wie in der JSON-Ausgabe unten gezeigt:

curl -X GET "localhost:9200/?ziemlich"

"name" : "debian",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "VZHcuTUqSsKO1ryHqMDWsg",
"Ausführung" :
"Nummer 7.10.1",
"build_flavor" : "default",
"build_type" : "deb",
"build_hash" : "1c34507e66d7db1211f66f3513706fdf548736aa",
"build_date" : "2020-12-05T01:00:33.671820Z",
"build_snapshot" : false,
"lucene_version" : "8.7.0",
"minimum_wire_compatibility_version": "6.8.0",
"minimum_index_compatibility_version": "6.0.0-beta1"
,
„Slogan“: „Du weißt schon, für die Suche“

So installieren Sie Logstash?

Installieren Sie das Logstash-Paket mit dem Befehl:

sudo apt-get install logstash

So installieren Sie Kibana?

Geben Sie den folgenden Befehl ein, um Kibana zu installieren:

sudo apt-get installiere Kibana

So konfigurieren Sie Elasticsearch, Logstash und Kibana?

So konfigurieren Sie den ELK-Stack:

So konfigurieren Sie Elasticsearch?

In Elasticsearch werden Daten in Indizes geordnet. Jeder dieser Indizes hat einen oder mehrere Shards. Ein Shard ist eine eigenständige Suchmaschine, die verwendet wird, um Indizes und Abfragen für eine Teilmenge in einem Cluster innerhalb von Elasticsearch zu verarbeiten und zu verwalten. Ein Shard fungiert als Instanz eines Lucene-Index.

Die Standardinstallation von Elasticsearch erstellt fünf Shards und ein Replikat für jeden Index. Dies ist ein guter Mechanismus in der Produktion. In diesem Tutorial werden wir jedoch mit einem Shard und ohne Repliken arbeiten.

Erstellen Sie zunächst eine Indexvorlage im JSON-Format. In der Datei setzen wir die Anzahl der Shards auf eins und null Replikate für übereinstimmende Indexnamen (Entwicklungszwecke).

In Elasticsearch bezieht sich eine Indexvorlage darauf, wie Sie Elasticsearch anweisen, den Index während des Erstellungsprozesses einzurichten.

In der JSON-Vorlagendatei (index_template.json), geben Sie die folgenden Anweisungen ein:


"Vorlage":"*",
"die Einstellungen":
"Index":
"number_of_shards":1,
"number_of_replicas":0


Wenden Sie mit cURL die json-Konfiguration auf die Vorlage an, die auf alle erstellten Indizes angewendet wird.

curl -X PUT http://localhost:9200/_template/defaults -H 'Content-Type:application/json' -d @index_template.json
"bestätigt":true

Nach der Bewerbung antwortet Elasticsearch mit einer bestätigten: wahren Aussage.

So konfigurieren Sie Logstash?

Damit Logstash Protokolle von Apache sammelt, müssen wir es so konfigurieren, dass alle Änderungen in den Protokollen überwacht werden, indem die Protokolle gesammelt, verarbeitet und dann in Elasticsearch gespeichert werden. Dazu müssen Sie den Pfad zum Sammeln von Protokollen in Logstash einrichten.

Beginnen Sie mit der Erstellung der Logstash-Konfiguration in der Datei /etc/logstash/conf.d/apache.conf

Eingabe
Datei
Pfad => '/var/www/*/logs/access.Log'
Typ => "Apache"


filtern
grok
Übereinstimmung => "Nachricht" => "%COMBINEDAPACHELOG"


Ausgabe
elastische Suche

Stellen Sie nun sicher, dass Sie den Logstash-Dienst aktivieren und starten.

sudo systemctl aktivieren logstash.Bedienung
sudo systemctl starte logstash.Bedienung

So aktivieren und konfigurieren Sie Kibana?

Um Kibana zu aktivieren, bearbeiten Sie das Haupt- .yml-Konfigurationsdatei in /etc/kibana/kibana.yml. Suchen Sie die folgenden Einträge und entkommentieren Sie sie. Wenn Sie fertig sind, verwenden Sie systemctl, um den Kibana-Dienst zu starten.

Server.Hafen: 5601
Server.host: "localhost"
sudo systemctl aktivieren Kibana.service && sudo systemctl starte kibana.Bedienung

Kibana erstellt Indexmuster basierend auf den verarbeiteten Daten. Daher müssen Sie Logs mit Logstash sammeln und in Elasticsearch speichern, das Kibana verwenden kann. Verwenden Sie curl, um Protokolle von Apache zu generieren.

Sobald Sie Protokolle von Apache haben, starten Sie Kibana in Ihrem Browser mit der Adresse http://localhost:5601, wodurch die Kibana-Indexseite gestartet wird.

Im Wesentlichen müssen Sie das von Kibana verwendete Indexmuster konfigurieren, um nach Protokollen zu suchen und Berichte zu erstellen. Kibana verwendet standardmäßig das logstash*-Indexmuster, das mit allen von Logstash generierten Standardindizes übereinstimmt.

Wenn Sie keine Konfiguration haben, klicken Sie auf Erstellen, um die Protokolle anzuzeigen.

So zeigen Sie Kibana-Protokolle an?

Wenn Sie weiterhin Apache-Anfragen ausführen, sammelt Logstash die Protokolle und fügt sie zu Elasticsearch . hinzu. Sie können diese Protokolle in Kibana anzeigen, indem Sie im linken Menü auf die Option Entdecken klicken.

Auf der Registerkarte "Erkennen" können Sie die Protokolle anzeigen, während der Server sie generiert. Um die Details eines Protokolls anzuzeigen, klicken Sie einfach auf das Dropdown-Menü.

Lesen und verstehen Sie die Daten aus den Apache-Protokollen.

So suchen Sie nach Protokollen?

In der Kibana-Benutzeroberfläche finden Sie eine Suchleiste, mit der Sie mithilfe von Abfragezeichenfolgen nach Daten suchen können.

Beispiel: Status: aktiv

Weitere Informationen zu ELK-Abfragezeichenfolgen finden Sie hier:

https://www.elastisch.co/guide/de/elasticsearch/reference/5.5/query-dsl-query-string-query.html#query-string-syntax

Da es sich um Apache-Logs handelt, ist eine mögliche Übereinstimmung ein Statuscode status. Suchen Sie daher nach:

Antwort: 200

Dieser Code sucht nach Protokollen mit dem Statuscode 200 (OK) und zeigt ihn Kibana . an.

So visualisieren Sie Protokolle?

Sie können in Kibana visuelle Dashboards erstellen, indem Sie die Registerkarte Visualisieren auswählen. Wählen Sie den zu erstellenden Dashboard-Typ und Ihren Suchindex aus. Sie können die Standardeinstellung zu Testzwecken verwenden.

Fazit

In diesem Handbuch haben wir einen Überblick über die Verwendung des ELK-Stack zum Verwalten von Protokollen gegeben. Es gibt jedoch noch mehr zu diesen Technologien, die dieser Artikel abdecken kann. Wir empfehlen, auf eigene Faust zu erkunden.

OpenTTD-Tutorial
OpenTTD ist eines der beliebtesten Wirtschaftssimulationsspiele auf dem Markt. In diesem Spiel musst du ein wunderbares Transportunternehmen aufbauen....
SuperTuxKart für Linux
SuperTuxKart ist ein großartiger Titel, der entwickelt wurde, um Ihnen das Mario Kart-Erlebnis kostenlos auf Ihrem Linux-System zu bieten. Es ist ziem...
Battle for Wesnoth-Tutorial
The Battle for Wesnoth ist eines der beliebtesten Open-Source-Strategiespiele, die Sie derzeit spielen können. Dieses Spiel befindet sich nicht nur se...