Introduzione
Questo documento descrive la possibile causa del problema di errore del servizio Redis in CyberVision Center.
Problema
In alcuni casi, lo stato delredis.servicecontrollo 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.servicemancato 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
systemctlverificare lo stato del servizio Redis tramite CLI o in unsystemctlfile nel bundle di diagnostica:
root@Center-4:~# systemctl --failed
* redis.service loaded failed failed Redis data structure
- Esaminare i log per
redis.serviceindividuare eventuali errori specifici utilizzando questo comando ojournal_rediseseguire 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.servicecomputer 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)