Redis auf Ubuntu installieren
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
Redis installieren
sudo apt install redis-server
Redis Version prüfen
redis-server --version
Konfiguration
Config bearbeiten
sudo nano /etc/redis/redis.conf
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>
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>
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)
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>
Dienst starten
Redis neu starten
sudo systemctl restart redis.service
Prüfen, ob Redis Dienst ausgeführt wird
sudo systemctl status redis
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>
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>
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>
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>
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>
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>
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>
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>
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>
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