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

So entwickeln Sie Uniapp mit vscode

Da ich immer vscode zur Entwicklung von Front-End...

Detailliertes Tutorial zur Installation von MySQL 8.0.20 auf CentOS7.8

1. MySQL-Software installieren Laden Sie das offi...

So finden Sie die my.ini-Konfigurationsdatei in MySQL 5.6 unter Windows

Machen Sie sich eine Notiz, damit Sie später dara...

Analysieren des MySQL-Binärprotokolls

Inhaltsverzeichnis 1. Einführung in Binlog 2. Bin...

Lösung für das MySQL IFNULL-Beurteilungsproblem

Problem: Die von mybatis zurückgegebenen Daten vo...

Zusammenfassung des Wissens zu langsamen MySQL-Protokollen

Inhaltsverzeichnis 1. Einführung in Slow Log 2. L...

Detaillierte Analyse der untergeordneten und übergeordneten Vue-Komponenten

Inhaltsverzeichnis 1. Übergeordnete Komponenten u...

MySQL-Optimierungslösung: Aktivieren Sie das Protokoll für langsame Abfragen

Inhaltsverzeichnis Vorwort Einrichten der Protoko...

Detailliertes Tutorial zur Installation von Docker unter Windows

Da meine lokale MySQL-Version relativ niedrig ist...

Erläuterung regulärer Ausdrücke in JavaScript

Inhaltsverzeichnis 1. Erstellen regulärer Ausdrüc...