Einleitung
Dieses Dokument beschreibt die mögliche Ursache für das Redis-Serviceausfall-Problem in CyberVision Center.
Problem
In einigen Fällen kann dasredis.service
auf einem CyberVision Center fehlschlagen. Der Ausfall dieses Dienstes kann auch dazu führen, dass andere Dienste wie marmotd und das Backend ausfallen.
Eine mögliche Ursache dafür, dassredis.service
die Datei Redis Append Only File (AOF) nicht ordnungsgemäß gestartet wird, ist ein beschädigter Zustand.
Redis AOF ist ein Persistenzmechanismus, der es dem Redis-Server ermöglicht, jeden auf dem Server ausgeführten Befehl zu verfolgen und zu protokollieren. Mit AOF fügt Redis jeden Befehl an, der sequenziell auf dem Server ausgeführt wird. Dadurch werden Datenverluste aufgrund falscher Befehlsbefehle vermieden.
Lösung
So überprüfen Sie, ob der Dienst aufgrund des erläuterten Kontexts fehlerhaft ist:
- Überprüfen Sie
systemctl
den Status des Redis-Service über die CLI oder in dersystemctl
Datei des Diagnosepakets:
root@Center-4:~# systemctl --failed
* redis.service loaded failed failed Redis data structure
- Überprüfen Sie die
redis.service
Protokolle mithilfe dieses Befehls oderjournal_redis
des Diagnosepakets auf spezifische Fehler:
root@Center-4:~# journalctl -u redis.service
2023-08-08T09:07:59+0000 center redis[973]: Bad file format reading the append only file: make a backup of your AOF file, then use ./redis-check-aof --fix
2023-08-08T09:07:59+0000 center systemd[1]: redis.service: Main process exited, code=exited, status=1/FAILURE
2023-08-08T09:07:59+0000 center systemd[1]: redis.service: Failed with result 'exit-code'.
2023-08-08T09:07:59+0000 center systemd[1]: Failed to start Redis data structure server.
journal_error log:
2023-08-08T09:07:59+0000 center systemd[1]: Failed to start Redis data structure server.
2023-08-08T09:07:59+0000 center systemd[1]: Failed to start Redis data structure server.
- Um das Problem zu beheben, ist das Verfahren, eine AOF-Datei-Sicherung durchzuführen, eine Korrektur an der beschädigten Datei durchzuführen und das Center neu zu starten:
root@Center-4:~#sudo cp /data/redis/appendonly.aof /data/redis/appendonly.aof.bak
root@Center-4:~#sudo redis-check-aof --fix /data/redis/appendonly.aof
root@Center-4:~#reboot
- Überprüfen Sie nach dem Neustart, ob sich das
redis.service
in einem aktiven Zustand befindet.
root@Center-4:~# systemctl status redis.service
● redis.service - Redis data structure server
Loaded: loaded (/lib/systemd/system/redis.service; enabled; vendor preset: enabled)
Active: active (running)