So verwenden Sie Docker-Compose zum Erstellen eines ELK-Clusters

So verwenden Sie Docker-Compose zum Erstellen eines ELK-Clusters

Auf alle Orchestrierungsdateien und Konfigurationsdateien kann über mein Github zugegriffen werden. Sie können schnell einen ES-Cluster mit 3 Instanzen und eine Kibana-Instanz erstellen, indem Sie einfach den Pfad in der Konfigurationsdatei ändern.

Planung

Es ist geplant, drei ES-Instanzen zu erstellen, um einen Cluster zu bilden, und eine Kibana-Instanz zu erstellen, um eine Verbindung mit dem Cluster herzustellen. Jede ES-Instanz verwendet eine lokale Konfigurationsdatei, um die Speicherung und Versionsverwaltung der Konfigurationsdatei zu erleichtern. Die Konfigurationsdatei von Kibana wird ebenfalls lokal abgelegt und per Dateizuordnung in den Container eingebunden.

Die allgemeine Verzeichnisstruktur ist wie folgt:

$Baum
.
├── docker-compose.yml
├── kibana.yml
├── Knoten1
│ └── es1.yml
├── Knoten2
│ └── es2.yml
└── Knoten3
 └── es3.yml

3 Verzeichnisse, 5 Dateien

Arrangement-Datei

Die Hauptorchestrierungsdatei ist docker-compose.yml

Version: "2.1"
Leistungen:
 es-Knoten1:
 Bild: docker.elastic.co/elasticsearch/elasticsearch:6.7.0
 Hostname: es-node1
 expose: #Den Port nicht für Anwendungen außerhalb des Containers freigeben - „9001“
 Ports: #Ports dem Host zugänglich machen – „9200:9200“
 - „9300:9300“
 Bände:
 - ~/Projects/sh-valley/docker-conf/elasticstack/cluster/node1/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml
 Umfeld:
 - cluster.name=es-cluster
 - bootstrap.memory_lock=true
 – „ES_JAVA_OPTS=-Xms256m -Xmx256m“
 uGrenzwerte:
 Speichersperre:
 weich: -1
 schwer: -1
 Netzwerke:
 es-cluster-netzwerk:
 IPv4-Adresse: 172.21.0.10
 es-node2:
 Bild: docker.elastic.co/elasticsearch/elasticsearch:6.7.0
 Hostname: es-node2
 expose: #Den Port nicht für Anwendungen außerhalb des Containers freigeben - „9002“
 Ports: #Stellen Sie den Port dem Host zur Verfügung – „9201:9201“
 - „9301:9301“
 Bände:
 - ~/Projects/sh-valley/docker-conf/elasticstack/cluster/node2/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml
 Umfeld:
 - cluster.name=es-cluster
 - bootstrap.memory_lock=true
 – „ES_JAVA_OPTS=-Xms256m -Xmx256m“
 uGrenzwerte:
 Speichersperre:
 weich: -1
 schwer: -1
 Netzwerke:
 es-cluster-netzwerk:
 IPv4-Adresse: 172.21.0.11
 es-node3:
 Bild: docker.elastic.co/elasticsearch/elasticsearch:6.7.0
 Hostname: es-node3
 expose: #Den Port nicht für Anwendungen außerhalb des Containers freigeben - „9003“
 Ports: #Stellen Sie den Port dem Host zur Verfügung – „9202:9202“
 - „9302:9302“
 Bände:
 - ~/Projects/sh-valley/docker-conf/elasticstack/cluster/node3/es3.yml:/usr/share/elasticsearch/config/elasticsearch.yml
 Umfeld:
 - cluster.name=es-cluster
 - bootstrap.memory_lock=true
 – „ES_JAVA_OPTS=-Xms256m -Xmx256m“
 uGrenzwerte:
 Speichersperre:
 weich: -1
 schwer: -1
 Netzwerke:
 es-cluster-netzwerk:
 IPv4-Adresse: 172.21.0.12
 kibana:
 Bild: docker.elastic.co/kibana/kibana:6.7.0
 Häfen:
 - „5601:5601“
 Bände:
 - ~/Projects/sh-valley/docker-conf/elasticstack/cluster/kibana.yml:/usr/share/kibana/config/kibana.yml
 Umfeld:
 -ELASTICSEARCH_URL=http://es-node1:9200
 Netzwerke:
 - es-Cluster-Netzwerk
Netzwerke:
 es-cluster-netzwerk:
 Treiber: Brücke
 ipam:
 Treiber: Standard
 Konfiguration:
 - Subnetz: 172.21.0.0/16
 Gateway: 172.21.0.1

Die ES-Konfigurationsdatei wählt nur ein Beispiel wie folgt aus:

Clustername: Elasticsearch-Cluster
Knotenname: es-node1
Netzwerk.Bind_Host: 0.0.0.0
Netzwerk.Publish_Host: 172.21.0.10
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: wahr
http.cors.allow-origin: "*"
node.master: wahr 
node.data: wahr 
discovery.zen.ping.unicast.hosts: ["172.21.0.10:9300","172.21.0.11:9301","172.21.0.12:9302"]
Entdeckung.zen.minimum_master_nodes: 2

Die Konfigurationsdatei von Kibana lautet wie folgt

Servername: Kibana
server.host: "0"
elasticsearch.hosts: [ "http://es-node1:9200", "http://es-node2:9201", "http://es-node3:9202" ]
xpack.monitoring.ui.container.elasticsearch.enabled: falsch

Startbefehl

Nachdem die Konfigurationsdatei vorbereitet ist, können Sie den Cluster starten

$ docker-compose up -d

Der Startvorgang kann langsam sein. Sie können die Clusterknoten über die Befehlszeile sehen.

$ curl http://localhost:9200/_cat/nodes
172.21.0.12 51 96 29 6,53 6,43 3,72 md - es-node3
172.21.0.11 47 96 30 6,53 6,43 3,72 mdi - es-node2
172.21.0.10 49 96 30 6,53 6,43 3,72 mdi * es-node1

Im nachfolgenden Verwendungsprozess können Sie den Dienst über den Befehl docker-compose starten und stoppen. Wenn Sie die zugehörigen Instanzen nicht behalten möchten, können Sie docker-compose down verwenden, um den Container herunterzufahren und zu löschen.

Verweise

Elasticsearch-Dokument
Docker-Compose-Benutzerdefiniertes Netzwerk, feste Container-IP-Adresse
Unterschied zwischen Docker-Compose-Ports und Expose

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:
  • Implementierung der ELK-Bereitstellungsmethode mit einem Klick in Docker Compose
  • Beispielcode zum Bereitstellen von ELK mit Docker-Compose
  • So erstellen Sie ein Elk-System mit Docker Compose
  • Verwenden Sie Docker Compose, um ELK schnell bereitzustellen (getestet und effektiv)

<<:  js implementiert Axios Limit-Anforderungswarteschlange

>>:  Grafische Einführung in den Unterschied zwischen := und = in MySQL

Artikel empfehlen

MySQL-Datenbanktabelle und Datenbankpartitionierungsstrategie

Lassen Sie uns zunächst darüber sprechen, warum w...

Starten Sie alle gestoppten Docker-Container mit einem Befehl neu

Starten Sie alle gestoppten Docker-Container mit ...

Zusammenfassung der grundlegenden Verwendung von JS-Arrays

Vorwort Arrays sind eine spezielle Art von Objekt...

Grundlegende Syntax und Funktionsweise der MySQL-Datenbank

Grundlegende Syntax der MySQL-Datenbank DDL-Opera...

Tutorial zur Installation von mysql5.7.23 auf Ubuntu 18.04

In diesem Artikel erfahren Sie, wie Sie mysql5.7....

Tutorial zur Verwendung von Profilen in MySQL

Was ist ein Profil? Wir können es verwenden, wenn...

So verwenden Sie pdf.js zur Vorschau von PDF-Dateien in Vue

Wenn wir auf der Seite eine PDF-Vorschau anzeigen...

uni-app implementiert NFC-Lesefunktion

In diesem Artikel wird der spezifische Code der U...

Erste Schritte mit GDB unter Linux

Vorwort gdb ist ein sehr nützliches Debugging-Too...

MySQL 8.0.21-Installationstutorial unter Windows-System (Abbildung und Text)

Installationsvorschlag : Versuchen Sie, für die I...

Ein Artikel, der Ihnen zeigt, wie Sie Vue-Komponenten erstellen und verwenden

Inhaltsverzeichnis 1. Was ist eine Komponente? 2....