So erstellen Sie schnell ELK basierend auf Docker

So erstellen Sie schnell ELK basierend auf Docker

[Zusammenfassung] Dieser Artikel erstellt schnell ein vollständiges ELK-System basierend auf der selbst erstellten Docker-Plattform. Die relevanten Bilder werden direkt vom Docker Hub abgerufen, wodurch die Protokollerfassung, -analyse und -abfrage schnell realisiert werden können.

Vorbereiten des Bildes

  • Holen Sie sich das ES-Image: docker pull elasticsearch:latest
  • Holen Sie sich das Kibana-Image: docker pull kibana:latest
  • Holen Sie sich das Logstash-Image: docker pull logstash:latest

Elasticsearch starten

Die ES-Konfigurationsdatei im offiziellen Image wird in /usr/share/elasticsearch/config gespeichert. Bei Bedarf kann dieses Verzeichnis dem Hostcomputer zugeordnet werden; das Datendateiverzeichnis ist /usr/share/elasticsearch/data. Hier ordnen wir das Datenverzeichnis zu; der Container stellt standardmäßig Port 9200 für die API-Interaktion bereit.

docker run --name elasticsearch \
-v "$PWD/esdata":/usr/share/elasticsearch/data \
-p 9200:9200 \
-d elastische Suche

Nachdem der Container gestartet wurde, können Sie ihn zur Überprüfung aufrufen:

Starten Sie Kibana

Kibana muss als Benutzeroberfläche für ES-Operationen mit dem ES-Container kommunizieren. Daher müssen wir hier den ES-Container verknüpfen und Port 5601 für die Seiteninteraktion bereitstellen.

docker run --name kibana \
--link elasticsearch:elasticsearch \
-p 5601:5601 \
-d kibana

Nachdem der Container gestartet wurde, greifen Sie über einen Browser auf Port 5601 zu, um die Kibana-Seite anzuzeigen. Wenn Sie zum ersten Mal darauf zugreifen, werden Sie möglicherweise darauf hingewiesen, dass kein Standardindex erstellt wurde. Hier müssen Sie auf der Verwaltungsseite einen Standardindex erstellen. Der Standardindex heißt normalerweise logstash-*. Erstellen Sie einen Standardindex wie in der folgenden Abbildung gezeigt.

Starten Sie Logstash

Die Hauptfunktion von Logstash besteht darin, Protokolle zu sammeln. Diese Komponente verfügt über viele Plug-Ins und kann die meisten Protokollintegrationsmethoden unterstützen, wie TCP, UDP, JDBC, Dateien, Warteschlangen usw. Die Konfiguration ist sehr einfach und auch die Startmethode ist sehr einfach. Hier nehmen wir das Zugriffsprotokoll von nginx als Beispiel und konfigurieren logstash so, dass das access.log von nginx gelesen und das Protokoll dann an Elasticsearch weitergeleitet wird.

Kompilieren Sie zunächst eine Logstash-Konfigurationsdatei logstash.conf. Der Inhalt lautet wie folgt:

Eingang{
 
   Datei{
 
      Pfad=>"/tmp/nginx/logs/access.log"
 
   }
 
}Ausgabe{
 
   stdout{ } #Log-Ausgabe auf Konsole #Ausgabe auf es
 
   elastische Suche
 
      Hosts=>"100.100.x.231"
 
   }
 
}

Starten Sie den Container. Hier legen wir das nginx-Protokoll in /tmp/nginx/logs/access.log ab. Damit der Container dieses Protokoll lesen kann, müssen Sie das Protokollverzeichnis dem Container zuordnen.

docker run –it –rm -v /tmp/nginx/logs/access.log:/tmp/nginx/logs/access.log -f /config-dir/logstash.conf

Als Nächstes können wir den gesamten Prozess der Protokollerfassung und -anzeige testen. Erstellen Sie zunächst einige Zugriffsprotokolle in nginx. Verwenden Sie beispielsweise direkt curl, um den nginx-Serviceport aufzurufen, oder schreiben Sie Daten direkt in access.log. Zu diesem Zeitpunkt können wir die folgende Protokollausgabe im Logstash-Container sehen:

Öffnen Sie später die Kibana-Seite, um die in Echtzeit geschriebenen Protokolldaten anzuzeigen:

Zusammenfassen

Docker-Container machen das Erstellen von ELK sehr bequem. Mit ELK können Sie Protokolle schnell analysieren und abrufen sowie Probleme finden. Mehrere Hauptbeitragende von ELK haben ein Unternehmen namens Elastic gegründet, das derzeit mit unserem Unternehmen zusammenarbeitet. Basierend auf Open Source hat das Unternehmen auch einige kommerzielle Produkte namens X-Pack veröffentlicht, die viele Verbesserungen in den Bereichen maschinelles Lernen, Graphalgorithmen und Sicherheitstechnologien bieten. Interessierte Studenten können sich selbst darüber informieren.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Beispielcode zum Bereitstellen von ELK mit Docker-Compose
  • Eine kurze Zusammenfassung der Praxis der Verbindung des Node-Frameworks mit ELK
  • Beispiel für die Verwendung von Docker zum Erstellen eines ELK-Protokollsystems
  • Detaillierte Analyse des ELK-Prinzips und Einführung

<<:  Grafisches Tutorial zur Installation des MySQL 5.7.21 Installers unter Windows 10

>>:  Richtige Verwendung der Vue-Funktion Anti-Shake und Throttling

Artikel empfehlen

Centos6.9-Installation Mysql5.7.18 Schrittaufzeichnung

Installationsreihenfolge rpm -ivh mysql-community...

Webprojektentwicklung VUE-Mischungs- und Vererbungsprinzip

Inhaltsverzeichnis Mischen Mixin-Hinweis (doppelt...

CSS implementiert fünf gängige 2D-Transformationen

2D-Transformationen in CSS ermöglichen es uns, ei...

JS + Canvas realisiert dynamischen Uhreffekt

Eine auf Canvas basierende Demo einer dynamischen...

Prototyp und Prototypenkette Prototyp und Protodetails

Inhaltsverzeichnis 1. Prototyp 2. Prototypenkette...

Detaillierte Erklärung der grundlegenden Syntax und Datentypen von JavaScript

Inhaltsverzeichnis JavaScript importieren 1. Inte...

Zeitzonenprobleme mit im Docker-Container bereitgestelltem Django

Inhaltsverzeichnis Zeitzonenkonfiguration in Djan...

Erläuterung, ob im interaktiven Design Paging oder Laden gewählt werden soll

Der Autor dieses Artikels @子木yoyo hat ihn in seine...

Drei Implementierungsmethoden für die MySQL-Kopiertabelle und die Grant-Analyse

So kopieren Sie schnell eine Tabelle Erstellen Si...

Detaillierte Erläuterung der Vue-Formularbindung und -Komponenten

Inhaltsverzeichnis 1. Was ist bidirektionale Date...

Docker+Selenium-Methode zur Realisierung automatischer Gesundheitsberichte

In diesem Artikel wird das Gesundheitsmeldesystem...