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

Detaillierte Erläuterung des Konzepts der Docker-Containerebenen

Inhaltsverzeichnis 01 Behälterkonsistenz 02 Konze...

Einfaches Beispiel zum Hinzufügen und Entfernen von HTML-Knoten

<br />Einfaches Beispiel zum Hinzufügen und ...

Detaillierte Erläuterung der Wissenspunkte zu Linux Netfilter/Iptables

Netzfilter Netfilter ist ein Paketverarbeitungsmo...

Linux Bash: ./xxx: Fehler „Binärdatei kann nicht ausgeführt werden“

Heute habe ich einem Kunden ein kleines Tool für ...

Detaillierte Erklärung der JS-Homologiestrategie und CSRF

Inhaltsverzeichnis Überblick Same-Origin-Policy (...

Was soll ich tun, wenn ich die Quelldatei einer Webseite nicht anzeigen kann?

F: Wenn Sie Outlook oder IE verwenden, wird beim ...

So erstellen Sie einen Redis-Cluster mit Docker

Inhaltsverzeichnis 1. Erstellen Sie ein Redis-Doc...

Zusammenfassung der grundlegenden Operationen für MySQL-Anfänger

Bibliotheksbetrieb Abfrage 1.SHOW DATABASE; ----A...

Das WeChat-Applet realisiert einen mehrzeiligen Text-Scroll-Effekt

In diesem Artikelbeispiel wird der spezifische Co...

Beispielcode des Vue-Symbolselektors

Quelle: http://www.ruoyi.vip/ Vue von „vue“ impor...

Detaillierte Schritte zur Dateisteuerungsverwaltung für Linux-Konten

Im Linux-System gibt es neben den verschiedenen, ...

Lösung für Win10 ohne Hyper-V

Suchen Sie immer noch nach einer Möglichkeit, Hyp...

Zusammenfassung und Beispiele der Kommunikationsmethoden für Vue3-Komponenten

Die Kommunikationsmodi der Vue3-Komponenten sind ...

Einführung mehrerer benutzerdefinierter Schriftarten in CSS3

Heute habe ich ein Problem in HTML gefunden. Es s...