إصلاح مشكلة تعطل خدمة بايثون لمحرك بحث كوبانو

ابدأ بسجل الأعطال، وليس بفهرس البحث. في خادم Kopano Core التقليدي، يُعد محرك البحث هو kopano-searchالخدمة. يصف حزمة مصدر Debian هذا الجيل بأنه مُفهرس قائم على العمليات مبني على python-kopano. يتصل هذا المُفهرس بـ Kopano kopano-server، ويُدير فهارس بحث لكل مخزن، ويمكنه اختياريًا استدعاء أدوات تحليل المرفقات. راجع حزمة مصدر Kopano Search . قد يتسبب كل من وحدة Python مفقودة، أو عدم تطابق مقبس الخادم، أو مشكلة في الأذونات أو مساحة القرص، أو فشل محلل المرفقات، في ظهور أعراض مختلفة. قد يؤدي إعادة تشغيل الفهرس بالكامل أو حذفه قبل تحديد سبب العطل إلى إخفاء أدلة مفيدة وزيادة العمل.

يغطي هذا الدليل عمليات التثبيت التي تُشغّل البرنامج الخفي الكلاسيكي kopano-search، بما في ذلك حزم Kopano Core القديمة. وثائق Kopano المتوفرة حاليًا لهذه الخدمة مُخصصة لإصدار Kopano Core 8.0، بينما تغطي صفحات الدليل المؤرشفة في Ubuntu إصدارات الحزم الأقدم مثل 8.7. تأكد من إصدار Kopano المُثبّت لديك ودليله المحلي قبل تطبيق الأوامر الخاصة بالإصدار. قد تستخدم عمليات نشر Kopano Cloud أو الحاويات أسماء خدمات وإجراءات إدارة مختلفة.

ما الذي يجب عليك التحقق منه قبل تغيير أي شيء؟

تحتاج إلى صلاحيات الوصول إلى سطر الأوامر لقراءة سجلات Kopano وإعداداتها. قبل تعديل الإعدادات أو تغيير ملفات الفهرس، سجّل إصدار الحزمة واحتفظ بنسخة احتياطية من الإعدادات ذات الصلة. لا تنسخ مسار الفهرس من خادم آخر، فالمسارات الافتراضية والمُهيأة تختلف باختلاف إصدارات الحزمة. يشرح دليل مسؤول Kopano /etc/kopano/search.cfgملفات الفهرس لكل متجر، ومقبس الخدمة، وتحليل المرفقات؛ كما يحذر من تغيير ملفات الفهرس أثناء تشغيل الخدمة. يُعد قسم إعدادات البحث في Kopano المرجع الأساسي لهذه الإعدادات.

1. تأكد من أن برنامج kopano-search يتعطل بالفعل

في نظام يستخدم systemd، افحص الوحدة وإدخالات السجل الأخيرة:

sudo systemctl status kopano-search --no-pager
sudo journalctl -u kopano-search -b -n 100 --no-pager

ابحث عن محاولات بدء متكررة، أو رمز خروج، أو تتبع أخطاء بايثون، أو استثناء نهائي محدد. غالبًا ما يكون السطر الأخير من تتبع الأخطاء أكثر فائدة من السطر الأول لأنه يُحدد الخطأ الذي أوقف العملية. إذا كان نظامك يستخدم نصوص بدء تشغيل SysV القديمة، فتحقق من sudo service kopano-search statusملف السجل المُكوّن أو سجل النظام. قد تُسجل الخدمة في ملف أو سجل النظام حسب الإعدادات search.cfg، لذا فإن سجلًا فارغًا لا يُثبت عدم حدوث خطأ.

يعرض الطرفية حالة خدمة kopano-search باستخدام الأمر systemctl status، مع توضيح حالة فشل الخدمة.
تحقق أولاً من حالة خدمة بحث كوبانو. حالة الفشل في هذا المثال توضيحية فقط؛ قارنها بمخرجات خادمك.

احفظ سجلات النظام ذات الصلة قبل إعادة التشغيل. إذا توقفت الخدمة ثم أعاد نظام التشغيل تشغيلها، فستحتاج إلى معرفة ما إذا كانت كل محاولة تفشل في نفس المرحلة أم أن حدثًا واحدًا تسبب في الانهيار.

2. تحقق مما إذا كانت خدمة البحث قادرة على الوصول إلى خادم كوبانو

يجب أن يتصل برنامج البحث بمقبس خادم Kopano الصحيح. تحقق من كلا الخدمتين وقارن قيم المقبس المُكوّنة لكل منهما:

sudo systemctl status kopano-server --no-pager
sudo grep -E '^(server_socket|search_socket|search_enabled)[[:space:]]*='   /etc/kopano/server.cfg /etc/kopano/search.cfg

قد تختلف مجموعة المفاتيح الموجودة باختلاف الإصدار. في التكوين الأساسي الكلاسيكي، search_enabled = yesيُفعّل البحث النصي الكامل في قاعدة البيانات server.cfg؛ search_socketويُحدد للخادم مكان الاتصال بخدمة البحث. تشير إعدادات خدمة البحث server_socketإلى خادم Kopano. قد يؤدي عدم التطابق، أو فقدان منفذ الاتصال، أو توقف الخادم إلى أخطاء في الاتصال تبدو وكأنها عطل في البحث. يمكن للخادم اللجوء إلى البحث المباشر في قاعدة البيانات أثناء عدم توفر منفذ البحث، ولكن لا يُستعاد فهرسة النص الكامل إلا بعد عودة خدمة البحث إلى وضعها الطبيعي.

أمر طرفي لعرض إدخالات سجل kopano-search الأخيرة مع تذكير بفحص السطر الأخير من تتبع الأخطاء
استخدم سجل الخدمة لتحديد فئة العطل. يتم عرض الأمر والتذكير للتوضيح فقط؛ وتعتمد المخرجات على إعدادات التسجيل لديك.

3. مطابقة حزم بايثون مع إصدار كوبانو

kopano-searchيستخدم هذا البرنامج روابط بايثون الخاصة بـ Kopano ومكونات MAPI الأصلية. ImportErrorقد يظهر خطأ في تحميل وحدة نمطية أو مكتبة مشتركة مفقودة بعد ترقية جزئية، أو تغيير في المستودع، أو تثبيت حزمة بايثون يدويًا. سجّل الحزم المثبتة والمفسر المستخدم من قِبل الملف التنفيذي المُضمّن.

dpkg-query -W 'kopano-search' 'python*kopano*' 'python*mapi*' 2>/dev/null
p=$(command -v kopano-search) && head -n 1 "$p"

الأمر الثاني مفيد فقط إذا kopano-searchكان موجودًا في مسار الصدفة الحالية. قارن هذه التفاصيل مع مستودع حزمة Kopano وتعليمات التثبيت الخاصة بها. إذا كان الخادم مُدارًا باستخدام RPM أو الحاويات أو جهاز من مُورّد، فاستخدم أدوات إدارة الحزم الخاصة بتلك المنصة بدلًا من أوامر Debian المذكورة أعلاه.

لا تقم بإصلاح خادم Kopano المُجمّع عن طريق تشغيله sudo pip installفي بيئة Python الخاصة بالنظام. تتضمن Python-MAPI مكونات أصلية، وقد يؤدي دمجها مع حزم Python غير ذات صلة إلى عثور المُفسّر على وحدات غير متوافقة. استعد أو أعد تثبيت حزم Kopano المطابقة من نفس المستودع الموثوق، ثم أعد تشغيل الخدمة وتحقق من السجل مرة أخرى. إذا تمت ترقية الجهاز عبر إصدارات نظام التشغيل، فتأكد من أن مستودع Kopano يدعم هذا التوافق بين نظام التشغيل وPython قبل محاولة إعادة تثبيت الحزمة.

4. تحقق من الأذونات والمساحة الحرة وتحليل المرفقات

اقرأ إعدادات index_pathو log_file...​tmp_path/etc/kopano/search.cfg

df -h /var/lib/kopano /var/log
sudo namei -l /var/lib/kopano/search

استبدل دليل الفهرس المذكور في المثال بالقيمة الموجودة في إعداداتك. تشير أخطاء مثل "تم رفض الإذن" أو "لا توجد مساحة كافية" أو فشل إنشاء ملف مؤقت إلى مشكلة في الوصول إلى وحدة التخزين، وليس إلى عطل عام في بايثون. استعد المالك والأذونات المقصودة باستخدام الإعدادات الافتراضية الموثقة لحزمة خادمك؛ ولا تُغير ملكية الملفات بشكل متكرر /var/lib/kopanoدون التحقق من الخدمات الأخرى التي تستخدمها.

إذا أشارت نتائج التتبع أو التوقيت إلى استخراج المرفقات، فتحقق مما إذا كان index_attachments = yesيتم فحص index_attachment_parserقاعدة بيانات المحلل اللغوي والأدوات الخارجية التي يستدعيها. يشرح دليل Kopano أن محتويات المرفقات تُحوّل إلى نص بواسطة برنامج نصي مُهيأ، وأنه يمكن ضبط حدود حجم المرفقات والذاكرة ووحدة المعالجة المركزية. كإجراء تشخيصي، يمكنك index_attachments = noتعطيل البحث داخل محتويات المرفقات مؤقتًا، ثم إعادة تشغيل الخدمة، ومراقبة ما إذا كان العطل سيتوقف. هذا لا يعطل فهرسة نص الرسالة. إذا اختفى العطل، فأصلح المحلل اللغوي أو التبعية المحددة قبل إعادة تفعيل فهرسة المرفقات.

محرر نانو يعرض مسار تكوين بحث كوبانو وفهرسة المرفقات معطلة
يوضح مثال التكوين مسار الفهرس وإعدادات المرفقات. راجع دليل التثبيت والملف الحالي قبل تغيير أي من القيمتين.

5. أعد بناء فهرس المتجر المتأثر فقط عندما تشير السجلات إلى تلف الفهرس

إعادة الفهرسة حل مناسب عندما تبدأ الخدمة بشكل صحيح ولكنها تفشل بشكل متكرر أثناء فتح أو تحديث فهرس متجر معين، أو عندما تُشير سجلات Kopano إلى أن هذا الفهرس تحديدًا تالف. وهي ليست الحل الأول لمشكلة خطأ استيراد في بايثون، أو عدم توافق في المقابس، أو امتلاء القرص.

ينص دليل إدارة Kopano على ضرورة التوقف kopano-searchقبل حذف ملف فهرس أي متجر. كما يشير إلى وجود ملف حالة في دليل الفهرس، لذا لا تقم بحذف الدليل بأكمله أو جميع فهارس المستخدمين كإجراء إصلاح روتيني. أولًا، قم بعمل نسخة احتياطية من ملف الفهرس ذي الصلة، وتأكد من هوية المستخدم أو المتجر ومساره. إذا كان إصدارك المحلي يدعم man kopano-searchخيار إعادة --reindexالفهرسة، فاستخدم الصيغة المدعومة من الحزمة لإعادة بناء متجر واحد؛ إذ يختلف تنسيق الخيار بين الإصدارات المؤرشفة. على سبيل المثال، يوثق دليل Ubuntu Focal خيار إعادة فهرسة مُستهدف، ويشير إلى ضرورة تشغيل البرنامج الخفي مسبقًا.

قد تستهلك عملية إعادة بناء شاملة موارد القرص والمعالج، وقد تكون نتائج البحث غير مكتملة ريثما تتم عملية الفهرسة. إذا لم تكن متأكدًا من ملف التخزين المتأثر، فتوقف قبل حذف أي شيء، واجمع سجل الخدمة، وإصدارات الحزم، والإعدادات المُكوّنة، وقدّمها index_pathإلى مسؤول Kopano أو إلى قناة الدعم.

موجه الأوامر يعرض خيار إعادة فهرسة kopano-search وينصح المسؤولين بالتحقق من الدليل المثبت
تعتمد صيغة إعادة الفهرسة على إصدار Kopano المُثبّت. استخدم الدليل المحلي واستهدف مخزنًا واحدًا مؤكدًا بدلاً من حذف دليل الفهرس بالكامل.

6. أعد التشغيل وتحقق من النتيجة

بعد تصحيح السبب، أعد تشغيل خدمة البحث فقط:

sudo systemctl restart kopano-search
sudo systemctl status kopano-search --no-pager
sudo journalctl -u kopano-search -b -n 50 --no-pager

لتثبيت SysV، استخدم أمر الخدمة الموثق في تلك الحزمة. تأكد من بقاء العملية نشطة، وعدم تكرار نفس الخطأ، وظهور منفذ البحث بعد الفهرسة الأولية. يُشير كوبانو إلى أنه قد لا يتم إنشاء المنفذ إلا بعد بناء الفهرس الأولي. اختبر بحثًا عاديًا في البريد، وإذا كانت فهرسة المرفقات مُفعّلة، فاختبر مرفقًا معروفًا فقط بعد إصلاح المُحلل.

دليل التشخيص السريع

تسجيل الأعراضالتحقق الأول
بايثون ImportErrorأو وحدة مفقودةإصدارات الحزمة وربط بايثون؛ التراجع عن مصادر الحزم المختلطة
تم رفض الاتصال أو أن المقبس مفقودkopano-serverالحالة وتكوين المقبس المطابق
خطأ في الأذونات أو القرصتم تكوين مسارات السجلات والملفات المؤقتة والفهارس؛ المساحة الحرة وإمكانية وصول مستخدم الخدمة
يحدث عطل في أحد الملحقاتأمر محلل المرفقات، وتوابع المحلل، وحدود الحجم
فشل متكرر في فتح مؤشر المتاجرقم بعمل نسخة احتياطية وإعادة فهرسة المتجر المؤكد فقط باستخدام صيغة الإصدار المحلي

أفضل حل موثوق هو اتباع الخطأ المُسجل في السجل: إصلاح بيئة الحزمة في حالة فشل استيراد بايثون، واستعادة المقبس الصحيح في حالة فشل الاتصال، وإصلاح المسار أو المحلل اللغوي المحدد في حالة أخطاء الوصول والاستخراج، وإعادة فهرسة البيانات فقط عندما تشير الأدلة إلى تلف بيانات الفهرس. تغطي أدلة Kopano المتاحة إصدارات Core القديمة، لذا يُنصح باستخدامها جنبًا إلى جنب مع دليل الحزمة نفسه بدلًا من افتراض أن جميع عمليات النشر الحالية تستخدم نفس مدير الخدمة أو صيغة الخيارات.

اترك تعليقاً

كيفية إعداد المصادقة الثنائية في ownCloud Infinite Scale

كيفية إعداد المصادقة الثنائية في ownCloud Infinite Scale

تعرف على كيفية طلب رمز التحقق من المفتاح (TOTP) من Keycloak لتسجيل الدخول إلى ownCloud Infinite Scale، وتسجيل المستخدمين الحاليين والجدد، وإعداد عملية الاسترداد، واختبار تسجيل الدخول الموحد (SSO) وترقية المصادقة متعددة العوامل (MFA).

كيفية تهيئة Keycloak كموفر هوية (IDP) لخدمة ownCloud Infinite Scale

كيفية تهيئة Keycloak كموفر هوية (IDP) لخدمة ownCloud Infinite Scale

قم بربط ownCloud Infinite Scale بـ Keycloak باستخدام OpenID Connect. قم بتهيئة مُصدر النطاق، وعميل الويب، والمطالبات، وTLS، وتوفير الحساب، وفحوصات تسجيل الدخول.

كيفية إعداد مجموعة Nextcloud عالية التوفر باستخدام قاعدة بيانات Galera

كيفية إعداد مجموعة Nextcloud عالية التوفر باستخدام قاعدة بيانات Galera

قم ببناء مجموعة Nextcloud مرنة باستخدام MariaDB Galera، والتخزين المشترك، وRedis، وموازنة الأحمال، وفحوصات النصاب، والاسترداد المختبر - بالإضافة إلى المقايضات التي يجب التخطيط لها.

كيفية إعداد النسخ الاحتياطي للمفاتيح والتوقيع المتبادل في Element: الخيارات والمفاضلات والاسترداد

كيفية إعداد النسخ الاحتياطي للمفاتيح والتوقيع المتبادل في Element: الخيارات والمفاضلات والاسترداد

تعرف على كيفية تكوين النسخ الاحتياطي لمفاتيح Element، ومفاتيح الاسترداد، والتوقيع المتبادل، ومقارنة المفاضلات الأمنية، والتحقق من الأجهزة، وتجنب فقدان السجل المشفر.

كيفية نقل صناديق بريد Zimbra إلى خادم جديد باستخدام Zextras Backup أو imapsync

كيفية نقل صناديق بريد Zimbra إلى خادم جديد باستخدام Zextras Backup أو imapsync

قارن بين Zextras Backup و imapsync لنقل خادم Zimbra. جهّز الحسابات، واختبر عملية النقل، وقم بمزامنة التغييرات، وانقل سجلات MX، وتحقق من بيانات البريد والتعاون.

إصلاح خطأ قاعدة البيانات في واجهة المستخدم الرسومية لـ Nextcloud بعد التحديث: دليل عملي للاستعادة

إصلاح خطأ قاعدة البيانات في واجهة المستخدم الرسومية لـ Nextcloud بعد التحديث: دليل عملي للاستعادة

قم بإصلاح خطأ قاعدة بيانات Nextcloud WebGUI بعد التحديث عن طريق التحقق من السجلات، وإكمال ترقية occ، وإصلاح مشكلات المخطط، والتحقق من سلامة قاعدة البيانات.

كيفية تفعيل إعادة توجيه HTTPS في خادم بروكسي زيمبرا

كيفية تفعيل إعادة توجيه HTTPS في خادم بروكسي زيمبرا

قم بتكوين Zimbra Proxy لإعادة توجيه حركة مرور البريد الإلكتروني من HTTP إلى HTTPS، وأعد تشغيل كل عقدة وكيل، وتحقق من إعادة التوجيه، وتجنب المخاطر الأمنية الشائعة.

كيفية دمج BigBlueButton مع نظام إدارة التعلم Moodle (خطوة بخطوة)

كيفية دمج BigBlueButton مع نظام إدارة التعلم Moodle (خطوة بخطوة)

قم بربط BigBlueButton بنظام إدارة التعلم Moodle باستخدام النشاط المدمج، وعنوان URL للخادم، والكلمة السرية المشتركة. اتبع ثماني خطوات لإعداد غرفة الدورة التدريبية واختبار وصول الطلاب.

كيفية تخصيص ألوان العلامة التجارية والسمات في واجهة مستخدم الويب الخاصة بـ ownCloud

كيفية تخصيص ألوان العلامة التجارية والسمات في واجهة مستخدم الويب الخاصة بـ ownCloud

قم بتخصيص العلامة التجارية لموقع ownCloud الإلكتروني باستخدام شعارك، وأيقونة الموقع، وخلفية تسجيل الدخول، واسم علامتك التجارية، وألوان السمة باستخدام إعدادات JSON للسمة المدعومة من Infinite Scale.

كيفية تكوين سجلات DKIM وSPF وDMARC لخادم Zimbra

كيفية تكوين سجلات DKIM وSPF وDMARC لخادم Zimbra

قم بتكوين توقيع Zimbra DKIM، وتفويض SPF، وسياسة DMARC بشكل صحيح، وتحقق من DNS والمحاذاة، وتجنب السجلات الشائعة التي تكسر مصادقة البريد.