소개
이 문서에서는 CyberVision Center에서 Redis 서비스 실패 문제의 가능한 원인을 설명합니다.
문제
경우에 따라 CyberVision Center의redis.service
가 실패 상태일 수 있습니다. 이 서비스의 실패로 인해 marmotd 및 백 엔드와 같은 다른 서비스가 다운될 수도 있습니다.
AOF(Redis Append Only File)가 손상된 상태에 있기 때문에 정상적으로 시작되지 않는 한 가지redis.service
가능한 원인이 있습니다.
Redis AOF는 Redis 서버가 서버에서 실행된 모든 명령을 추적하고 기록할 수 있도록 하는 지속성 메커니즘입니다. Redis는 AOF를 사용하여 서버에서 순차적으로 실행되는 각 명령을 추가합니다. 그러면 잘못된 명령 명령으로 인한 데이터 손실이 방지됩니다.
솔루션
설명한 컨텍스트로 인해 서비스가 실패했는지 확인하려면 다음을 수행합니다.
- 를 사용하여
systemctl
CLI를 통해 또는 진단 번들의systemctl
파일에서 Redis 서비스 상태를 확인합니다.
root@Center-4:~# systemctl --failed
* redis.service loaded failed failed Redis data structure
- 이 명령을
redis.service
사용하거나 진단 번들에서 로그를 사용하여 특정journal_redis
오류를 로그를 확인합니다.
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.
- 문제를 해결하기 위해, 절차는 AOF 파일 백업을 수행 하고 손상된 파일에 대한 수정을 수행 하고 센터를 재부팅하는 것입니다.
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
- 재부팅 후 가 활성 상태에
redis.service
있는지 확인합니다.
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)