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

Detaillierte Schritte zum Bereitstellen von lnmp unter Docker

Inhaltsverzeichnis Ziehen Sie ein CentOS-Image Ge...

Einfaches Verständnis und Beispiele für MySQL Index Pushdown (ICP)

Vorwort Index Condition Pushdown (ICP) ist eine n...

Aktivierungsmethode für Windows Service 2016 Datacenter\Stand\Embedded (2021)

Führen Sie cmd mit Administratorrechten aus slmgr...

So implementieren Sie die Docker-Volume-Montage

Die Erstellung des einfachsten „Hello World“-Ausg...

Koexistenz von Python2 und Python3 unter einem CentOS7-System

Der erste Schritt besteht darin, die Versionsnumm...

Apropos „Weniger und mehr“ im Webdesign (Bild)

„Weniger ist mehr“ ist ein Schlagwort vieler Desi...

Die umfassendste Erklärung des Sperrmechanismus in MySQL

Inhaltsverzeichnis Vorwort Globale Sperre Vollstä...

Detaillierte Analyse von MySQL-Deadlock-Problemen

Vorwort Wenn sich unser Geschäft in einem sehr fr...

VMware virtuelle Maschine installieren CentOS 8 (1905) System-Tutorial-Diagramm

Die weltberühmte virtuelle Maschinensoftware VMwa...

So prüfen Sie, ob Daten vorhanden sind, bevor Sie sie in MySQL einfügen

Geschäftsszenario: Der Besuchsstatus des Besucher...