So installieren Sie den Elasticsearch7.6-Cluster im Docker und legen ein Kennwort fest

So installieren Sie den Elasticsearch7.6-Cluster im Docker und legen ein Kennwort 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.

img

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

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

img

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"
}'

Referenz 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 7.6-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:
  • Probleme und Lösungen bei der Installation von ElasticSearch und Kibana in Docker
  • So installieren Sie ElasticSearch auf Docker in einem Artikel
  • Tutorial zur Installation von Elasticsearch 7.6.2 in Docker
  • Implementierung der Docker-Bereitstellung von ElasticSearch und ElasticSearch-Head
  • Erfahren Sie, wie Sie Elasticsearch- und Head-Plugins mit Docker installieren.

<<:  Analyse der Gründe, warum das MySQL-Indexsystem den B + -Baum verwendet

>>:  Bei einer guten Refaktorierung geht es nicht nur um die Refaktorisierung des Codes, sondern auch um die Refaktorisierung des Lebens.

Artikel empfehlen

Detaillierte Analyse von MySQL-Datenbanktransaktionen und -Sperren

Inhaltsverzeichnis 1. Grundlegende Konzepte SÄURE...

Bedingte Kommentare im Internet Explorer für XHTML

<br />Bedingte Kommentare sind eine einzigar...

Grafisches Tutorial zur Installation und Konfiguration von CenOS6.7 mysql 8.0.22

CenOS6.7 installiert MySQL8.0.22 (empfohlene Samm...

Detaillierte Erklärung zum Schreiben mehrerer Bedingungen von CSS: nicht

Der Pseudoklassenselektor :not kann Elemente filt...

So verwenden Sie vue.js zum Implementieren der Drag & Drop-Funktion

Vorwort Durch das Hinzufügen einer Drag & Dro...

Vue realisiert die Bildschirmanpassung von Großbildschirmseiten

In diesem Artikel wird der spezifische Code von V...

Designtheorie: Eine Methode, um die Herzen der Menschen zu verstehen

<br />Einmal unterhielten sich Foyin und Her...

So konfigurieren Sie gängige Software unter Linux

Wenn Sie einen neuen Linux-Server bekommen, müsse...