Contenido

Introducción

Problema

Solución

Introducción

Este documento describe la posible causa del problema de falla del servicio Redis en CyberVision Center.

Problema

En algunos casos, elredis.serviceen 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.serviceno 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:

- Mediantesystemctlla comprobación del estado del servicio Redis a través de CLI o en elsystemctlarchivo del paquete de diagnóstico:

root@Center-4:~# systemctl --failed

* redis.service                      loaded failed failed    Redis data structure

- Busque en losredis.serviceregistros errores específicos usando este comando ojournal_redisregistro 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 elredis.servicese 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)