المقدمة
يصف هذا وثيقة السبب المحتمل ل Redis خدمة عطل إصدار في CyberVision مركز.
المشكلة
في بعض الحالات، يمكن أنredis.service
يكون تطبيق CyberVision Center في حالة فشل. وقد يؤدي فشل هذه الخدمة أيضا إلى انخفاض الخدمات الأخرى مثل Marmotd و Backend.
أحد الأسباب المحتملةredis.service
لعدم بدء التشغيل بشكل سلس هو أن Redis Append Only File (AOF) في حالة تلف.
REDIS AOF هي آلية إستمرارية تسمح لخادم Redis بتتبع كل أمر يتم تنفيذه على الخادم وتسجيله. باستخدام AOF، يقوم Redis بإلحاق كل أمر يتم تنفيذه بشكل تسلسلي على الخادم. وهذا يؤدي إلى منع أي فقدان للبيانات بسبب أوامر أوامر غير صحيحة.
الحل
لتأكيد ما إذا كانت الخدمة قد فشلت بسبب السياق الذي تم شرحه:
- باستخدام
systemctl
التحقق من حالة خدمة Redis عبر CLI أو في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.
- in order to صححت الإصدار، الإجراء أن يأخذ 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)