المقدمة
يصف هذا وثيقة السبب المحتمل ل 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)