目錄

簡介

問題

解決方案

簡介

本檔案將說明CyberVision Center中Redis服務失敗問題的可能原因。

問題

在某些情況下redis.service,CyberVision Center上的可能會處於失敗狀態。此服務的失敗還可能導致其他服務（如marmotd和後端）關閉。

不能正常啟動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檔案備份，對損壞的檔案執行修復，然後重新啟動中心：

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)