Introduction
Ce document décrit la cause possible du problème d'échec du service Redis dans CyberVision Center.
Problème
Dans certains cas, l'redis.service
sur un centre CyberVision peut être en état d'échec. La défaillance de ce service peut également entraîner la panne d'autres services tels que marmotd et le back-end.
L'état AOF (Redis Append Only File) peut être endommagé pourredis.service
ne pas démarrer correctement.
Redis AOF est un mécanisme de persistance qui permet au serveur Redis de suivre et de consigner toutes les commandes exécutées sur le serveur. À l'aide de AOF, Redis ajoute chaque commande exécutée séquentiellement sur le serveur. Cela évite toute perte de données due à des ordres de commande incorrects.
Solution
Afin de confirmer si le service a échoué en raison du contexte expliqué :
- À l'aide
systemctl
de la commande check the status of the Redis service via CLI ou dans le fichiersystemctl
du bundle de diagnostics :
root@Center-4:~# systemctl --failed
* redis.service loaded failed failed Redis data structure
- Recherchez des erreurs spécifiques dans les
redis.service
journaux à l'aide de cette commande ou du journaljournal_redis
de l'offre groupée de diagnostic :
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.
- Afin de résoudre le problème, la procédure consiste à prendre une sauvegarde de fichier AOF, effectuer une correction sur le fichier corrompu, et redémarrer le Centre :
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
- Après le redémarrage, vérifiez que l'
redis.service
est actif.
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)