Introduzione
Questo documento descrive la possibile causa del problema di errore del servizio Redis in CyberVision Center.
Problema
In alcuni casi, lo stato delredis.service
controllo su un centro CyberVision può essere non riuscito. Il mancato funzionamento di questo servizio può inoltre causare l'interruzione di altri servizi, quali marmotd e il back-end.
Una possibile causa delredis.service
mancato avvio è il danneggiamento del file AOF (Append Only File) Redis.
Redis AOF è un meccanismo di persistenza che consente al server Redis di tenere traccia e registrare ogni comando eseguito sul server. Tramite AOF, Redis aggiunge tutti i comandi eseguiti in sequenza sul server. In questo modo si evita la perdita di dati a causa di ordini di comandi non corretti.
Soluzione
Per confermare se il servizio non è riuscito a causa del contesto spiegato:
- Utilizzando
systemctl
verificare lo stato del servizio Redis tramite CLI o in unsystemctl
file nel bundle di diagnostica:
root@Center-4:~# systemctl --failed
* redis.service loaded failed failed Redis data structure
- Esaminare i log per
redis.service
individuare eventuali errori specifici utilizzando questo comando ojournal_redis
eseguire il log dal bundle di diagnostica:
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.
- Per risolvere il problema, eseguire un backup del file AOF, correggere il file danneggiato e riavviare Center:
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
- Dopo il riavvio, verificare che lo stato del
redis.service
computer sia attivo.
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)