Kenntnisstand

Dezember 2025 

Eine Redis Datenbank wird für ProCall Infinity (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 Infinity (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.

Für den Verbindungsaufbau kann bei ProCall Infinity Redis Sentinel genutzt werden. 

Bei der Übernahme der geänderten Redis-Einstellungen unternimmt der UCServer (mit welchem der UCAdmin verbunden ist) zunächst nur einen Testverbindungsversuch, der die laufende Verbindung zu Redis nicht unterbricht oder beeinflusst. Wenn die Testverbindung fehlschlägt, wird dies dem UCAdmin mit einer aussagekräftigen Fehlermeldung gemeldet. Erst wenn die Testverbindung mit Erfolg aufgebaut werden kann, werden die geänderten Einstellungen bei der Hauptverbindung aktiv


Es ist dennoch sehr zu empfehlen, die Verbindung zu dem installierten Redis Sentinel System zunächst auf einem UCServer zu verproben, der nicht in der Produktivumgebung läuft.

Hintergrundinformation zu Redis Sentinel 

Ausfallsicherheit, Master/Slave-Konzept und Wächter-Funktion für Redis

Redis Sentinel ist ein verteiltes System, das für die Hochverfügbarkeit (High Availability) von Redis sorgt, indem es Redis-Instanzen überwacht, automatische Failover durchführt, wenn ein Master-Server ausfällt, und Clients über den aktuellen Master informiert. Es agiert als eine Art „Wachdienst“, der die Gesundheit der Master- und Slave-Instanzen ständig prüft und bei Bedarf einen neuen Master aus den Slaves wählt und die Konfiguration anpasst, ohne menschliches Eingreifen. 

Abgrenzung Redis Sentinel und Redis Cluster

Redis Sentinel ist nicht zu verwechseln mit Redis Cluster:
Redis Sentinel für Hochverfügbarkeit (HA) ist durch automatisches Failover in einem Master-Replica-Setup zuständig, während Redis Cluster für horizontale Skalierung durch Sharding großer Datensätze über mehrere Knoten hinweg entwickelt wurde. Sentinel überwacht und leitet Clients um, wenn ein Master ausfällt, während Cluster die Daten selbst aufteilt, um Durchsatz und Speicherkapazität zu erhöhen. 

ProCall Infinity (Datacenter) ist vorbereitet für den Verbindungsaufbau und die Nutzung von Redis Sentinel. 
Redis Cluster wird hingegen nicht unterstützt.

Konfiguration 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

Konfiguration von Procall Infinity mit Redis Sentinel

Die Redis Einstellungen lassen sich nur ändern, während der UCServer läuft.

In der UCServer Verwaltung werden die Einstellungen auf der Seite "Redis" adjustiert, nach der Übernahme werden sie von allen UCServern des Infinity (DataCenter) Verbundes übernommen.

Am sichersten lässt sich die Änderung der Redis Konfiguration innerhalb eines Wartungsfensters durchführen.

 
Zunächst werden alle UCServer beendet, die Benutzer und/oder Leitungen verwalten, bis nur noch ein UCServer läuft, auf dem dann die Änderung durchgeführt wird. Danach werden alle UCServer neu gestartet.

Beispiel Screenshot UCServer Verwaltung Infinity - Globale Einstellungen - Allgemein - Redis - Sentinel Monitor Mastername - IP-Adressen und Ports

 

Der Verbindungsmodus wird auf "Redis Sentinel" gestellt.

Im Feld Sentinel Monitor Mastername muss der Name eingetragen werden, wie er in der sentinel_input.conf definiert wurde.

Die Sentinel Server Adressen müssen in der Form <host>:<port> und mit ";" getrennt eingegeben werden.   

Wenn in weiterer Folge der Verbindungstyp umgestellt wird, werden automatisch die zuletzt in diesem Modus verwendeten Werte eingetragen.

Weiterführende Informationen

ProCall DataCenter