Introducción
Este documento describe la posible causa del problema de falla del servicio Redis en CyberVision Center.
Problema
En algunos casos, elredis.service
en un Centro de CyberVision puede estar en un estado fallido. La falla de este servicio también puede hacer que otros servicios como marmotd y backend se desactiven.
Una posible causa pararedis.service
no iniciarse correctamente es que el archivo AOF (del inglés Redis Append Only File, archivo anexado solo de lectura) esté dañado.
Redis AOF es un mecanismo de persistencia que permite al servidor Redis realizar un seguimiento y registrar cada comando ejecutado en el servidor. Con AOF, Redis agrega cada comando ejecutado secuencialmente en el servidor. Esto evita cualquier pérdida de datos debido a órdenes de comando incorrectas.
Solución
Para confirmar si el servicio ha fallado debido al contexto explicado:
- Mediante
systemctl
la comprobación del estado del servicio Redis a través de CLI o en elsystemctl
archivo del paquete de diagnóstico:
root@Center-4:~# systemctl --failed
* redis.service loaded failed failed Redis data structure
- Busque en los
redis.service
registros errores específicos usando este comando ojournal_redis
registro del paquete de diagnóstico:
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.
- Para solucionar el problema, el procedimiento consiste en realizar una copia de seguridad del archivo AOF, corregir el archivo dañado y reiniciar el Centro:
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
- Después del reinicio, confirme que el
redis.service
se encuentra en estado activo.
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)