Introdução
Este documento descreve a possível causa do problema de falha do serviço Redis no CyberVision Center.
Problema
Em alguns casos, oredis.service
em um CyberVision Center pode estar em um estado de falha. A falha desse serviço também pode fazer com que outros serviços, como o marmotd e o back-end, fiquem inativos.
Uma causa possível pararedis.service
não iniciar normalmente é o Redis Append Only File (AOF) estar em um estado corrompido.
O AOF Redis é um mecanismo de persistência que permite que o servidor Redis acompanhe e registre todos os comandos executados no servidor. Usando AOF, Redis acrescenta cada comando executado sequencialmente no servidor. Isso evita qualquer perda de dados devido a ordens de comando incorretas.
Solução
Para confirmar se o serviço falhou devido ao contexto explicado:
- Usando
systemctl
a verificação do status do serviço Redis via CLI ou nosystemctl
arquivo no pacote de diagnósticos:
root@Center-4:~# systemctl --failed
* redis.service loaded failed failed Redis data structure
- Procure erros específicos nos
redis.service
logs usando este comando oujournal_redis
log do pacote 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 corrigir o problema, o procedimento é fazer um backup do arquivo AOF, executar uma correção no arquivo corrompido e reinicializar o 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
- Após a reinicialização, confirme se o
redis.service
está em um estado ativo.
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)