Kenntnisstand

März 2024

Eine Redis Datenbank wird für ProCall DataCenter vorausgesetzt

In der folgenden Anleitung stellen wir Informationen zur Vorgehensweise als Beispiel zur Verfügung, um Redis auf Ubuntu 2204 zu installieren.

Diese Anleitung ist als Hilfestellung gedacht und setzt Fachkenntnisse voraus.
Da es sich bei Redis nicht um ein von estos bereitgestelltes Produkt oder Dienst handelt, besteht kein Anspruch auf Vollständigkeit und korrekte Beschreibung. 

Vorgehensweise 

Anleitung

Die vollständige Anleitung zur Inbetriebnahme von Redis finden Sie hier: https://redis.io/docs/install/install-redis/

Installation

Ubuntu2204

sudo apt update
CODE

Redis installieren

sudo apt install redis-server
CODE

Redis Version prüfen

redis-server --version
CODE

Konfiguration

Config bearbeiten

sudo nano /etc/redis/redis.conf
CODE

Folgende Punkte müssen eingestellt werden: 

Binden der Netzwerkadresse

Hiermit wird konfiguriert, auf welche IP-Adresse der Redis-Dienst "hören" soll. Die konfigurierte Netzwerkadresse muss dann in der UCServer Administration eingetragen werden. 

bind <ip-addr> 
CODE
Beispiel Screenshot redis.conf

Port

Hierüber kann konfiguriert werden, über welchen Port der Dienst erreicht werden kann. Per default ist dieser "6379". Der konfigurierte Port muss dann in der UCServer Administration eingetragen werden. 

port <port>
CODE

Schutzmodus

Per default ist der "protected-mode" aktiviert. Dieser bewirkt, dass der Redis Dienst nicht von einem anderen Host erreicht werden kann, bis ein Passwort (siehe "requirepass") gesetzt wurde. Wenn der Redis Dienst ohne Passwort von einem anderen Host erreicht werden soll ist der Wert auf "no" zu setzen. 

protected-mode <value> (yes/no)
CODE

Passwortschutz

Der Zugriff auf den Redis-Dienst kann durch ein Passwort geschützt werden. Das konfigurierte Passwort muss dann in der UCServer Administration eingetragen werden. 

requirepass <password>
CODE

Dienst starten

Redis neu starten

sudo systemctl restart redis.service
CODE

Prüfen, ob Redis Dienst ausgeführt wird

sudo systemctl status redis
CODE

Beispiel Screenshot für die Anzeige

Redis ist nun einsatzbereit und kann im ProCall DataCenter UCServer angebunden werden.

Redundanz durch Redis Verbund

Um das Redis Backend redundant auszulegen und dadurch einen höheren Grad an Ausfallsicherheit zu erreichen wird Redis Sentinel unterstützt. Die Verwendung von Redis Sentinel basiert auf der Konfiguration von Redis Replicas. 

Empfehlung

Die Sentinel-Instanzen, wie auch die Redis Server Instanzen, sollten auf Computern oder virtuellen Maschinen platziert werden, von denen angenommen wird, dass sie unabhängig voneinander ausfallen. Also zum Beispiel verschiedene physische Server oder virtuelle Maschinen, die in verschiedenen Verfügbarkeitszonen ausgeführt werden. Für eine stabile Bereitstellung benötigen Sie mindestens drei Sentinel-Instanzen, wie auch die Redis Server Instanzen.

Redis Replica

Anleitung

Die vollständige Anleitung zu Redis Replikation finden Sie hier: https://redis.io/docs/management/replication/

Der Redis Master wird wie oben beschrieben über die redis.conf konfiguriert. Die Replicas werden ebenfalls über die redis.conf konfiguriert. Die Replikation erfolgt über den Redis Dienst und muss nicht separat gestartet werden. Bei der Konfiguration der Replicas ist darauf zu achten, dass der verwendete Port und das verwendete Passwort dem der Master-Konfiguration entspricht. 

Folgende Konfigurationseinstellungen sind auf Seiten der Replicas zusätzlich zu treffen: 

Angabe des Masters

Dem Replica muss die IP und Port der Master-Instanz mitgeteilt werden über die er den Master erreichen kann. 

replicaof <ip> <port>
CODE

Passwort des Masters

Ist der Master mit einem Passwort geschützt, muss hier das Passwort des Masters angegeben werden. Die Redis Replica sollte das selbe Passwort im Parameter "requirepass" gesetzt haben, wie das Master Passwort, um einen Master-Wechsel zu unterstützen. 

masterauth <password>
CODE

Verwendung von Docker

Empfehlung

Wenn Sie Redis Replication in Zusammenhang mit Docker verwenden, beachten Sie bitte, dass ggf. weitere Konfigurationsparameter anzugeben sind. Konsultieren Sie hierfür die offizielle Redis Sentinel Dokumentation. 

Redis Sentinel

Anleitung

Die vollständige Anleitung zu Redis Sentinel finden Sie hier: https://redis.io/docs/management/sentinel/

Konfiguration

Port

Hierüber kann konfiguriert werden, über welchen Port der Dienst erreicht werden kann. Per default ist dieser "26379". Der konfigurierte Port muss dann in der UCServer Administration eingetragen werden. 

port <sentinel-port>
CODE

Definition des zu monitorenden Masters

Hierüber wird konfiguriert, welchen Redis Master der Sentinel Dienst überwachen soll. Der <master-name> kann frei vergeben werden. Der konfigurierte Name muss dann in der UCServer Administration eingetragen werden. Des Weiteren muss die IP und der Port des Redis Masters eingetragen werden unter welcher dieser erreichbar ist. Außerdem muss für die Fehlererkennung ein "Quorum" definiert werden. Das ist die Zahl der Redis Sentinel Instanzen die sich einig sein müssen, dass die Redis-Master-Instanz nicht mehr erreichbar ist. Für die eigentliche Fehlerbehebung, sprich die Wahl einer Replica zum neuen Master ist immer eine Mehrheit der Sentinel-Instanzen nötig. Dies kann nicht konfiguriert werden. 

sentinel monitor <master-name> <ip> <redis-port> <quorum>
CODE

Passwort des Redis Masters und der Redis Replicas

Damit Redis Sentinel mit dem Redis Master kommunizieren kann muss dem Sentinel Dienst das Passwort des Masters bekannt sein. 

sentinel auth-pass <master-name> <password>
CODE

Der Master und seine Replicas müssen das selbe Passwort verwenden. 

Sentinel Passwort

Sentinel Passwort

Derzeit wird das setzen eines Passworts für Redis Sentinel nicht unterstützt.

Der Sentinel Dienst kann durch ein Passwort geschützt werden. Alle Sentinel Dienste die untereinander kommunizieren müssen, müssen das selbe Passwort verwenden. 

requirepass <password>
CODE

Definition der Ausfallzeit zur Ausfallerkennung

Hierüber kann definiert werden, wie lange ein Master für eine Antwort benötigen darf, bevor er als ausgefallen erkannt wird. Der default-Wer beträgt 30000 ms. Als Master-Name ist der unter "sentinel monitor" spezifizierte Name zu verwenden.

sentinel down-after-milliseconds <master-name> <milliseconds>
CODE

Definition paralleler Re-synchronisierungen

Der Parameter definiert, wie viele Replicas sich gegen den neu gewählten Master parallel synchronisieren dürfen. Dieser Parameter ist vor allem dann klein zu wählen, wenn die Replicas von den Redis Clients für Lesezwecke verwendet werden. Da im Zusammhang das Lesen der Daten lediglich vom Master erfolgt, kann dieser Wert hoch gewählt werden. Er kann die komplette Anzahl der vorhandenen Replicas umfassen. Als Master-Name ist der unter "sentinel monitor" spezifizierte Name zu verwenden.

sentinel parallel-syncs <master-name> <numreplicas>
CODE

Definition der Ausfallbehandlungszeit

Die angegebenen Zeit wird für viele Zwecke verwendet (siehe sentinel.conf für nähere Informationen). Der default-Wert beträgt 180000ms, also 3 Minuten. Als Master-Name ist der unter "sentinel monitor" spezifizierte Name zu verwenden.

sentinel failover-timeout <master-name> <milliseconds>
CODE

Verwendung von Docker

Empfehlung

Wenn Sie Redis Sentinel in Zusammenhang mit Docker verwenden, beachten Sie bitte, dass ggf. weitere Konfigurationsparameter anzugeben sind. Konsultieren Sie hierfür die offizielle Redis Sentinel Dokumentation. 

Dienst starten

Der Dienst wird durch folgenden Aufruf gestartet: 

redis-sentinel /path/to/sentinel.conf
CODE

Weiterführende Informationen

Redis auf Ubuntu installieren