GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So stellen Sie einen sicheren CockroachDB-Cluster auf einem Ubuntu-Server bereit

CockroachDB ist eine Open-Source- und Cloud-native SQL-Datenbank, die von den CockroachLabs entwickelt wurde. Es ist eine verteilte SQL-Datenbank, die auf dem Transaktions- und Schlüsselwertspeicher basiert. CockroachDB ist eine skalierbare SQL-Datenbank, die mit der Google Spanner-Datenbank verglichen wurde. Es basiert auf dem PostgreSQL-Protokoll und ist produktionsreif.

In diesem Tutorial zeigen wir Ihnen, wie Sie den Secure CockroachDB-Cluster unter Ubuntu 18.04 einrichten. Sie erfahren, wie Sie den sicheren Cluster einrichten, auf das CockroachDB-Admin-Dashboard zugreifen, einen neuen Benutzer auf CockroachDB erstellen und eine Datenbank auf CockroachDB erstellen und anzeigen.

Voraussetzungen

Um den CockroachDB-Cluster auszuführen, benötigen wir mehrere Server. Und wir werden drei Ubuntu 18.04-Server mit den detaillierten Hostnamen und IP-Adressen wie unten verwenden.

node1   10.5.5.21
node2   10.5.5.22
node3   10.5.5.23

Was werden wir tun?

  • NTP-Server mit Chrony einrichtensystemctl chrony neu starten
    systemctl chrony aktivieren
  • Laden Sie CockroachDB herunter und installieren Sie es
  • Zertifikate erstellen
  • CockroachDB-Cluster initialisieren
  • Knoten zum CockroachDB-Cluster hinzufügen
  • Testen

Schritt 1 – NTP-Server mit Chrony einrichten

Erstens müssen wir die Zeit zwischen den Servern im Cluster synchron halten. Also müssen wir das NTP-Paket auf allen Servern installieren. Und für diese Anleitung verwenden wir chrony.

Installieren Sie das Chrony-Paket mit dem folgenden Befehl auf allen Servern.

sudo apt install chrony -y

Gehen Sie nach Abschluss der Installation in das Konfigurationsverzeichnis „/etc/chrony/“ und bearbeiten Sie die Datei „chrony.conf“.

cd /etc/chrony/
vim chrony.conf

Löschen Sie den standardmäßigen NTP-Pool und ersetzen Sie ihn durch Ihren eigenen Länderpool.

pool 0.id.pool.ntp.org iburst maxsources 4
pool 1.id.pool.ntp.org iburst maxsources 1
pool 2.id.pool.ntp.org iburst maxsources 1
pool 3.id.pool.ntp.org iburst maxsources 2

Speichern und schließen.

Starten Sie nun den Chrony-Dienst neu und fügen Sie dann Chrony zum Startdienst hinzu.

systemctl restart chrony
systemctl enable chrony

Als Ergebnis wird die Zeit zwischen den Servern mit denselben NTP-Pool-Servern synchronisiert.

Schritt 2 – Laden Sie CockroachDB herunter und installieren Sie es

In diesem Schritt werden wir die CockroachDB herunterladen und auf allen Servern installieren. Führen Sie also alle Befehle auf allen Ihren Cluster-Servern aus.

Erstellen Sie ein neues Verzeichnis namens 'binary' und gehen Sie hinein.

mkdir -p binary; cd binary

Laden Sie die komprimierte Cockroachdb-Binärdatei für Linux herunter und extrahieren Sie sie.

wget https://binaries.cockroachdb.com/cockroach-latest.linux-amd64.tgz
tar -xvzf cockroach-latest.linux-amd64.tgz

Kopieren Sie nun die Binärdatei ‚cockroach‘ in das Verzeichnis ‚/etc/local/bin‘.

cp cockroach-*/cockroach /usr/local/bin/

Danach können Sie den 'cockroach'-Befehl ausführen und den grundlegenden Befehl nach Hilfe durchsuchen, die Version überprüfen usw.

cockroach version

Die CockroachDB wurde auf allen Servern installiert.

Schritt 3 – Zertifikate erstellen

Jetzt werden wir einige Zertifikate generieren, um den CockrouchDB-Cluster zu sichern. Wir können OpenSSL oder die Kakerlaken-Befehlszeile zum Generieren von Zertifikatsdateien verwenden.

Wir generieren das CA-Zertifikat und den Schlüssel sowie das Generierungszertifikat für den Benutzerstamm und das Zertifikat für jeden Knoten im Cluster.

Erstellen Sie das Zertifikatsverzeichnis ‚~/.cockroach-certs‘ und die Umgebungsvariable dafür.

mkdir -p ${HOME}/.cockroach-certs/
export COCKROACH_CERTS_DIR='${HOME}/.cockroach-certs/'

Zertifizierungsstelle erstellen und auf alle Knoten kopieren

Erstellen Sie auf dem Server „node1“ die Zertifizierungsstelle mit dem untenstehenden Kakerlaken-Befehl.

cockroach cert create-ca \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.key

Und Sie erhalten die 'ca.key' und 'ca.crt' im Verzeichnis '~/.cockroach-certs'.

Kopieren Sie danach das ca-Zertifikat und den Schlüssel auf alle Server, indem Sie den scp-Befehl wie unten beschrieben verwenden.

Auf den 'node2'-Server kopieren.

scp ~/.cockroach-certs/ca.crt ~/.cockroach-certs/ca.key [email protected]:~/.cockroach-certs/

Auf den 'node3'-Server kopieren.

scp ~/.cockroach-certs/ca.crt ~/.cockroach-certs/ca.key [email protected]:~/.cockroach-certs/

Stellen Sie nun sicher, dass das CA-Zertifikat und der Schlüssel auf alle Hostserver hochgeladen wurden.

Client-Zertifikate erstellen

Nach dem Erstellen der Zertifizierungsstelle müssen wir das Client-Zertifikat generieren. Das Client-Zertifikat wird verwendet, um die Kommunikation zwischen der integrierten SQL-Shell und dem Cluster zu sichern.

Generieren Sie das Client-Zertifikat auf allen Servern mit dem folgenden Cockroach-Befehl.

cockroach cert create-client \
root \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.key

Und Sie erhalten Client-Zertifikate für den Benutzerstamm „client.root.crt“ und „client.root.key“.

Serverzertifikate erstellen

Serverzertifikate werden verwendet, um die Kommunikation zwischen Servern im CockroachDB-Cluster zu sichern. Und um dem sicheren Cluster beizutreten, müssen Sie Serverzertifikate für jeden Server generieren.

Erstellen Sie auf dem Knoten 1 das Serverzertifikat mit dem folgenden Befehl.

cockroach cert create-node \
localhost \
$(hostname) \
10.5.5.21 \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.key

Ändern Sie die IP-Adresse mit Ihrer eigenen.

Erstellen Sie auf dem „Knoten2“ das Serverzertifikat mit dem folgenden Befehl.

cockroach cert create-node \
localhost \
$(hostname) \
10.5.5.22 \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.key

Ändern Sie die IP-Adresse mit Ihrer eigenen.

Erstellen Sie auf dem „Knoten3“ das Serverzertifikat mit dem folgenden Befehl.

cockroach cert create-node \
localhost \
$(hostname) \
10.5.5.23 \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.key

Ändern Sie die IP-Adresse mit Ihrer eigenen.

Jetzt erhalten Sie die Serverzertifikate „node.crt“ und „node.key“ im Verzeichnis „~/.cockroach-certs“.

Schritt 4 – Sicheres CockroachDB-Cluster starten

Nachdem wir einige SSL-Zertifikate erstellt haben, initialisieren wir den Secure CockroachDB-Cluster vom „node1“-Server.

Führen Sie den folgenden Befehl auf dem Server „node1“ aus.

cockroach start \
--background --certs-dir=$COCKROACH_CERTS_DIR \
--advertise-host=10.5.5.21 --listen-addr=10.5.5.21

Stellen Sie sicher, dass kein Fehler vorliegt.

Überprüfen Sie danach den Status des Cluster-Knotens, indem Sie den Kakerlaken-Befehl unten ausführen.

cockroach node status --host=10.5.5.21

Sie erhalten den Knoten 1 mit der IP-Adresse 10.5.5.21, der mit CockroachDB v2.1.6 ausgeführt wird.

Schritt 5 – Knoten zum Cluster hinzufügen

Als Nächstes fügen wir „node2“ und „node3“ dem sicheren Cluster „CockroachDB“ hinzu.

Stellen Sie sicher, dass sich die Zertifizierungsstelle und das Serverzertifikat im Verzeichnis ~/.cockroach-certs befinden.

ls -lah ~/.cockroah-certs/

Führen Sie nun den folgenden Befehl aus, um den „node2“ mit der IP-Adresse 10.5.5.22 hinzuzufügen. Fügen Sie es dem CockroachDB-Cluster hinzu.

cockroach start \
--background --certs-dir=$COCKROACH_CERTS_DIR \
--advertise-host=10.5.5.22 --listen-addr=10.5.5.22 \
--join=10.5.5.21:26257

Wenn es fertig ist, gehen Sie zu 'node3' und führen Sie den folgenden Befehl aus.

cockroach start \
--background --certs-dir=$COCKROACH_CERTS_DIR \
--advertise-host=10.5.5.23 --listen-addr=10.5.5.23 \
--join=10.5.5.21:26257

Ändern Sie die IP-Adresse mit Ihrer eigenen.

Jetzt wurden „node2“ und „node3“ zum Secure CockroachDB-Cluster hinzugefügt. Überprüfen Sie es vom Server „node1“ mit dem folgenden Befehl.

cockroach node status --host=10.5.5.21

Und Sie erhalten drei verschiedene Server, auf denen die Kakerlake v2.1.6 ausgeführt wird.

Schritt 6 – Testen

Für diesen letzten Schritt testen wir unsere CockroachDB Secure Cluster-Installation, indem wir auf das Admin-Dashboard zugreifen und die Datenbankreplikation zwischen Servern testen.

Testen des CockroachDB-Dashboards

Die CockroachDB bietet eine schöne Dashboard-Benutzeroberfläche zur Überwachung des Clusters. Öffnen Sie Ihren Webbrowser und geben Sie die Server-IP-Adresse gefolgt vom Port 8080 ein.

https://10.5.5.21:8080/

Und Sie erhalten die Anmeldeseite von CockroachDB wie folgt.

Um sich beim Dashboard anzumelden, müssen wir einen Benutzer in der CockroachDB-Datenbank erstellen.

Kehren Sie zu Ihrem Terminal „node1“ zurück und melden Sie sich mit dem folgenden Befehl bei der Cockroachdb-SQL-Shell an.

cockroach sql --certs-dir=$COCKROACH_CERTS_DIR \
--host=10.5.5.21

Erstellen Sie jetzt einen neuen Benutzer namens „hakase“ mit dem Passwort „[email protected]#“ mithilfe der folgenden Abfrage.

CREATE USER hakase WITH PASSWORD '[email protected]#';

Geben Sie '\q' ein, um die SQL-Shell von CockroachDB zu verlassen.

Kehren Sie nun zum Webbrowser zurück und geben Sie auf der Anmeldeseite den Benutzer „hakase“ mit dem Passwort „[email protected]#“ ein und klicken Sie auf die Schaltfläche „Anmelden“.

Und Sie erhalten das Admin-Dashboard von CockroachDB wie folgt.

Datenbankreplikation testen

Jetzt werden wir die Datenbankreplikation zwischen Servern auf dem CockroachDB-Cluster testen, indem wir die Datenbank auf „Knoten1“ erstellen und die Datenbank von „Knoten2“ oder „Knoten3“ überprüfen.

Greifen Sie auf 'node1' mit dem folgenden Befehl auf die SQL-Shell von CockroachDB zu.

cockroach sql --certs-dir=$COCKROACH_CERTS_DIR \
--host=10.5.5.21

Erstellen Sie zwei Datenbanken „hakasedb“ ​​und „hakasedb2“, indem Sie die folgenden Abfragen verwenden.

create database hakasedb;
create database hakasedb2;

Drucken Sie jetzt die Datenbankliste und stellen Sie sicher, dass Sie zwei Datenbanken erhalten, die wir gerade erstellt haben.

show databases;

Melden Sie sich als Nächstes beim Server „node2“ an und greifen Sie mit dem folgenden Befehl auf die CockroachDB-SQL-Shell zu.

cockroach sql --certs-dir=$COCKROACH_CERTS_DIR \
--host=10.5.5.22

Überprüfen Sie die Datenbankliste.

show databases;

Und Sie erhalten „hakasedb“ ​​und „hakasedb2“ wurde auf den „node2“-Server repliziert.

Und schließlich wurde die Installation und Konfiguration von Secure CockroachDB Cluster mit Ubuntu 18.04 erfolgreich abgeschlossen.


Ubuntu
  1. So stellen Sie Odoo 11 auf Ubuntu 18.04 bereit

  2. So installieren Sie MySQL unter Ubuntu 18.04

  3. So stellen Sie Rocket.Chat auf Ubuntu 18.04 bereit

  4. So stellen Sie Mattermost auf Ubuntu 18.04 bereit

  5. So richten Sie einen OpenVPN-Server unter Ubuntu 18.04 ein

So richten Sie einen sicheren FTP-Server mit Pure-FTPd unter Ubuntu ein

So installieren Sie Plex Media Server auf Ubuntu 16.04 Server/Desktop

So installieren Sie Jellyfin Media Server auf Ubuntu 20.04 LTS Server/Desktop

So installieren Sie Plex Media Server auf Ubuntu 20.04 LTS Server/Desktop

So stellen Sie einen TeamSpeak-Server auf Ubuntu 20.04 bereit

So sichern Sie Nginx mit Let’s Encrypt unter Ubuntu 20.04