Docker installiert Elasticsearch7.6-Cluster und legt Passwort fest

Docker installiert Elasticsearch7.6-Cluster und legt Passwort fest

Ab Elasticsearch 6.8 dürfen kostenlose Benutzer die Sicherheitsfunktionen von X-Pack verwenden. Zuvor war die Installation von es ein nackter Prozess. Als Nächstes zeichnen wir auf, wie die Sicherheitsauthentifizierung konfiguriert wird.

Um den physischen Installationsprozess zu vereinfachen, verwenden wir Docker, um unseren Dienst zu installieren.

Einige grundlegende Konfigurationen

es müssen einige Parameter von Linux geändert werden.

Setzen Sie vm.max_map_count=262144

sudo vim /etc/sysctl.conf
vm.max_map_count=262144

Kein Neustart, sondern sofortige Wirkung des aktuellen Befehls

sysctl -w vm.max_map_count=262144

Die Daten- und Protokollverzeichnisse von es müssen für 1000 Benutzer autorisiert werden. Wir gehen davon aus, dass drei es-Cluster installiert sind und erstellen zuerst die entsprechenden Datenspeicherdateien.

mkdir -p es01/data
mkdir -p es01/logs
mkdir -p es02/data
mkdir -p es02/logs
mkdir -p es03/data
mkdir -p es03/logs

## die Benutzer-ID von es ist 1000, also autorisieren wir sie vorübergehend für alle sudo chmod 777 es* -R

Informationen zu Versionen und Docker-Images

Elasticsearch verfügt über mehrere Lizenzen, von denen Open Source und Basic kostenlos sind. Sicherheitsfunktionen wurden erst ab Version 6.8 in die Basic-Lizenz integriert.

Das entsprechende Docker-Image von Basic ist

Docker-Pull docker.elastic.co/elasticsearch/elasticsearch:7.6.2

Gleichzeitig wird Dockerhub mit Elasticsearch synchronisiert. Wir können elasticsearch:7.6.2 direkt abrufen.

Start

Die Installationsdateien befinden sich alle auf GitHub: https://github.com/Ryan-Miao/docker-china-source/tree/master/docker-elasticsearch

Erstellen Sie zunächst docker-compose.yml

Version: '2.2'
Leistungen:
 es01:
  Bild: elasticsearch:7.6.2
  Containername: es01
  Umfeld:
   - Knotenname=es01
   – cluster.name=es-docker-cluster
   – discovery.seed_hosts=es02,es03
   – cluster.initial_master_nodes=es01,es02,es03
   - bootstrap.memory_lock=true
   – „ES_JAVA_OPTS=-Xms512m -Xmx512m“
  uGrenzwerte:
   Speichersperre:
    weich: -1
    schwer: -1
  Bände:
   - ./es01/data:/usr/share/elasticsearch/data
   - ./es01/logs:/usr/share/elasticsearch/logs
   - ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
   - ./elastic-certificates.p12:/usr/share/elasticsearch/config/elastic-certificates.p12
  Häfen:
   9200:9200
  Netzwerke:
   - elastisch

 es02:
  Bild: elasticsearch:7.6.2
  Containername: es02
  Umfeld:
   - Knotenname=es02
   – cluster.name=es-docker-cluster
   – discovery.seed_hosts=es01,es03
   – cluster.initial_master_nodes=es01,es02,es03
   - bootstrap.memory_lock=true
   – „ES_JAVA_OPTS=-Xms512m -Xmx512m“
  uGrenzwerte:
   Speichersperre:
    weich: -1
    schwer: -1
  Bände:
   - ./es02/data:/usr/share/elasticsearch/data
   - ./es02/logs:/usr/share/elasticsearch/logs
   - ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
   - ./elastic-certificates.p12:/usr/share/elasticsearch/config/elastic-certificates.p12
  Häfen:
   9201:9200
  Netzwerke:
   - elastisch

 es03:
  Bild: elasticsearch:7.6.2
  Containername: es03
  Umfeld:
   - Knotenname=es03
   – cluster.name=es-docker-cluster
   – discovery.seed_hosts=es01,es02
   – cluster.initial_master_nodes=es01,es02,es03
   - bootstrap.memory_lock=true
   – „ES_JAVA_OPTS=-Xms512m -Xmx512m“
  uGrenzwerte:
   Speichersperre:
    weich: -1
    schwer: -1
  Bände:
   - ./es03/data:/usr/share/elasticsearch/data
   - ./es03/logs:/usr/share/elasticsearch/logs
   - ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
   - ./elastic-certificates.p12:/usr/share/elasticsearch/config/elastic-certificates.p12
  Häfen:
   - 9202:9200
  Netzwerke:
   - elastisch

 kib01:
  hängt ab von: 
   -es01
  Bild: kibana:7.6.2
  Containername: kib01
  Häfen:
   -5601:5601
  Umfeld:
   ELASTICSEARCH_URL: http://es01:9200
   ELASTICSEARCH_HOSTS: http://es01:9200
  Bände:
   - ./kibana.yml:/usr/share/kibana/config/kibana.yml
  Netzwerke:
   - elastisch

Netzwerke:
 elastisch:
  Treiber: Brücke

Über elasticsearch.yml

Der Inhalt ist wie folgt

Netzwerkhost: 0.0.0.0
xpack.security.enabled: wahr
xpack.security.transport.ssl.enabled: wahr
xpack.security.transport.ssl.keystore.type: PKCS12
xpack.security.transport.ssl.verification_mode: Zertifikat
xpack.security.transport.ssl.keystore.path: elastische-Zertifikate.p12
xpack.security.transport.ssl.truststore.path: elastische-Zertifikate.p12
xpack.security.transport.ssl.truststore.type: PKCS12

xpack.security.audit.enabled: wahr
  • Die Einstellung „network.host“ ermöglicht anderen IPs den Zugriff und gibt die IP-Bindung frei
  • xpack.security ist eine sicherheitsrelevante Konfiguration, bei der das SSL-Zertifikat selbst generiert werden muss

Über das Zertifikat elastic-certificates.p12

es bietet ein Tool zum Generieren von Zertifikaten elasticsearch-certutil , das wir in der Docker-Instanz generieren, auskopieren und später einheitlich verwenden können.

Führen Sie zuerst die es-Instanz aus

sudo docker run -dit --name=es elasticsearch:7.6.2 /bin/bash

Geben Sie die Instanz ein

sudo docker exec -it es /bin/bash

CA generieren: elastic-stack-ca.p12

[root@25dee1848942 elasticsearch]# ./bin/elasticsearch-certutil ca
Dieses Tool unterstützt Sie bei der Generierung von X.509-Zertifikaten und Zertifikats
Signierungsanforderungen zur Verwendung mit SSL/TLS im Elastic-Stack.

Der Modus „ca“ generiert eine neue „Zertifizierungsstelle“
Dadurch werden ein neues X.509-Zertifikat und ein privater Schlüssel erstellt, die verwendet werden können
um das Zertifikat zu signieren, wenn im „Cert“-Modus gearbeitet wird.

Verwenden Sie die Option „ca-dn“, wenn Sie den „Distinguished Name“ konfigurieren möchten.
der Zertifizierungsstelle

Standardmäßig erzeugt der Modus „ca“ eine einzelne PKCS#12-Ausgabedatei, die Folgendes enthält:
  * Das CA-Zertifikat
  * Der private Schlüssel der Zertifizierungsstelle

Wenn Sie Zertifikate im PEM-Format generieren möchten (die Option -pem), wird die Ausgabe
eine ZIP-Datei sein, die einzelne Dateien für das CA-Zertifikat und den privaten Schlüssel enthält

Bitte geben Sie die gewünschte Ausgabedatei [elastic-stack-ca.p12] ein: 
Geben Sie das Passwort für elastic-stack-ca.p12 ein:

Zertifikat neu generieren: elastic-certificates.p12

[root@25dee1848942 elasticsearch]# ./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
Dieses Tool unterstützt Sie bei der Generierung von X.509-Zertifikaten und Zertifikats
Signierungsanforderungen zur Verwendung mit SSL/TLS im Elastic-Stack.

Der Modus „Cert“ generiert X.509-Zertifikate und private Schlüssel.

Wir müssen die generierten elastic-certificates.p12 verwenden.

Kopieren Sie das Zertifikat und drücken Sie Strg+D, um den Container zu verlassen.

sudo docker cp es:/usr/share/elasticsearch/elastic-certificates.p12 .
# Schließen Sie diesen Container sudo docker kill es
sudo docker rm es

Damit ist das Zertifikat erteilt.

Passwort generieren

Wir müssen zuerst den es-Cluster starten und darin ein Passwort generieren.

sudo docker-compose up

Geben Sie dann eine der

sudo docker exec -it es01 /bin/bash

Verwenden Sie die automatische Generierung von Passwörtern und interactive , um sie selbst festzulegen

[root@cfeeab4bb0eb elasticsearch]# ./bin/elasticsearch-setup-passwords -h
Legt die Passwörter für reservierte Benutzer fest

Befehle
--------
auto - Verwendet zufällig generierte Passwörter
interaktiv - Verwendet vom Benutzer eingegebene Passwörter

Nicht optionale Argumente:
Befehl       

Option Beschreibung    
------ -----------    
-E <KeyValuePair> Eine Einstellung konfigurieren
-h, --help Hilfe anzeigen     
-s, --silent Minimale Ausgabe anzeigen
-v, --verbose Ausführliche Ausgabe anzeigen



[root@cfeeab4bb0eb elasticsearch]# ./bin/elasticsearch-setup-passwords auto
Die Einrichtung der Passwörter für die reservierten Benutzer elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user wird gestartet.
Die Passwörter werden zufällig generiert und auf der Konsole ausgegeben.
Bitte bestätigen Sie, dass Sie fortfahren möchten [j/N]j


Passwort für Benutzer apm_system geändert
PASSWORT apm_system = YxVzeT9B2jEDUjYp66Ws

Passwort für Benutzer kibana geändert
PASSWORT kibana = 8NnThbj0N02iDaTGhidU

Passwort für Benutzer logstash_system geändert
PASSWORT logstash_system = 9nIDGe7KSV8SQidSk8Dj

Passwort für Benutzer beats_system geändert
PASSWORT beats_system = qeuVaf1VEALpJHfEUOjJ

Passwort für Benutzer remote_monitoring_user geändert
PASSWORT remote_monitoring_user = DtZCrCkVTZsinRn3tW3D

Passwort für Benutzer elastic geändert
PASSWORT elastic = q5f2qNfUJQyvZPIz57MZ

Passwort verwenden

Der Browser greift auf localhost:9200/9201/9202 zu und muss das Konto eingeben

Geben Sie einfach das entsprechende Elastic/Passwort ein

Navigieren Sie zu localhost:5601

Passwort vergessen

Was passiert, wenn Sie das Passwort nach der Generierung vergessen? Sie können sich am Computer anmelden, um es zu ändern.

Betreten Sie die ES-Maschine

sudo docker exec -it es01 /bin/bash

Erstellen Sie einen temporären Superuser RyanMiao

./bin/elasticsearch-users useradd ryan -r superuser
Neues Passwort eingeben: 
FEHLER: Ungültiges Passwort...Passwörter müssen mindestens [6] Zeichen lang sein
[root@cfeeab4bb0eb elasticsearch]# ./bin/elasticsearch-users useradd ryan -r superuser
Neues Passwort eingeben: 
Neues Passwort wiederholen:

Verwenden Sie diesen Benutzer, um das Kennwort von Elastic zu ändern:

curl -XPUT -u ryan:ryan123 http://localhost:9200/_xpack/security/user/elastic/_password -H "Inhaltstyp: application/json" -d '
{
 "Passwort": "q5f2qNfUJQyvZPIz57MZ"
}'

siehe

http://codingfundas.com/setting-up-elasticsearch-6-8-with-kibana-and-x-pack-security-enabled/index.html

Dies ist das Ende dieses Artikels über die Installation des Elasticsearch 7.6-Clusters mit Docker und das Festlegen von Kennwörtern. Weitere Informationen zur Installation des Elasticsearch-Clusters mit Docker finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Tutorial zur Installation von Elasticsearch 7.6.2 in Docker
  • Problem „Nicht genügend Speicher“ und Lösung, wenn Docker Elasticsearch startet
  • So installieren Sie Elasticsearch und Kibana in Docker
  • Beispielcode zur Installation von ElasticSearch und Kibana unter Docker
  • So stellen Sie ElasticSearch in Docker bereit
  • Detaillierte Erläuterung der Verwendung der Elasticsearch-Visualisierung Kibana unter Docker
  • So installieren Sie ElasticSearch auf Docker in einem Artikel

<<:  Detaillierte Erklärung zur Verwendung des Arguments-Objekts in JavaScript

>>:  Probleme bei der Verwendung mehrerer einfacher und dreifacher Anführungszeichen in MySQL concat

Artikel empfehlen

Detaillierte Erklärung des digitalen Puzzles CocosCreator Huarongdao

Inhaltsverzeichnis Vorwort Text 1. Panel 2. Huaro...

Teilen Sie 10 der neuesten Web-Frontend-Frameworks (Übersetzung)

In der Welt der Webentwicklung sind Frameworks wei...

Lösen Sie das Problem verstümmelter chinesischer Schriftzeichen in Mysql5.7

Wenn Sie MySQL 5.7 verwenden, werden Sie feststel...

JavaScript zum Implementieren einer zeitlich begrenzten Flash-Sale-Funktion

In diesem Artikel wird der spezifische JavaScript...

Lösung für das Problem der Werteübergabe zwischen HTML-Seiten

Als ich den Aufsatz zum ersten Mal verwendete, füh...

10 wichtige Unterschiede zwischen HTML5 und HTML4

HTML5 ist die nächste Version des HTML-Standards....

So benennen Sie die Tabelle in MySQL um und worauf Sie achten müssen

Inhaltsverzeichnis 1. Tabellenmethode umbenennen ...

Teilen Sie den Installationsdatensatz für MySql8.0.19

Im vorherigen Artikel wurde der Installationsproz...

Erstellen, Einschränkungen und Löschen von Fremdschlüsseln in MySQL

Vorwort Ab MySQL-Version 3.23.44 unterstützen Inn...

Schritte für Vue3 zur Verwendung von Mitt für die Komponentenkommunikation

Inhaltsverzeichnis 1. Installation 2. Ins Projekt...

Einrichten eines Proxyservers mit nginx

Nginx kann seine Reverse-Proxy-Funktion zum Imple...