はじめに
このドキュメントでは、CyberVision CenterでRedisサービス障害の問題が発生する原因について説明します。
問題
場合によっては、CyberVisionセンターのredis.service
が障害状態になっている可能性があります。このサービスに障害が発生すると、marmotdやバックエンドなどの他のサービスも停止する可能性があります。
正常に起動しない原因の1つとしてredis.service
、Redis Append Only File(AOF)が破損している可能性があります。
Redis AOFは、Redisサーバーがサーバー上で実行されるすべてのコマンドを追跡し、ログに記録することを可能にする持続性メカニズムです。 AOFを使用して、Redisはサーバ上で順次実行される各コマンドを追加します。これにより、誤ったコマンド順序によるデータ損失を防ぐことができます。
解決方法
説明されているコンテキストが原因でサービスが失敗したかどうかを確認するには、次の手順を実行します。
- 次のコマンドを使用して
systemctl
、CLI経由でRedisサービスのステータスを確認するか、診断バンドル内のファイルを確認しますsystemctl
。
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ファイルのバックアップを取り、破損したファイルに対して修正を実行し、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
- リブート後、がアクティブ状態であ
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)