إذا لم تتمكن وحدة تحكم Cockpit Web Console من الاتصال بمضيف SUSE Linux Enterprise Server (SLES)، فحاول أولاً الاتصال عبر منفذ الشبكة https://SERVER_IP:9090، ثم تحقق من أن cockpit.socketالخادم يستمع إلى الشبكة وأن جدار الحماية يسمح لخدمة Cockpit بالاتصال في المنطقة التي تستخدمها واجهة الشبكة الخاصة بالخادم. في التثبيت القياسي، تحل هذه الفحوصات الأسباب الأكثر شيوعًا: عنوان URL أو منفذ خاطئ، أو مقبس غير نشط، أو حزم Cockpit مفقودة، أو اتصال وارد محظور.
ينطبق هذا الدليل على أنظمة SLES التي تستخدم systemd وتتوفر فيها Cockpit من مستودعات المنتجات المُهيأة. يوثق دليل SUSE الحالي لـ Cockpit على SLES 16 أوامر تثبيت النمط وتفعيل المقبس الموضحة أدناه. قد يختلف توفر الحزم وأسماؤها باختلاف حزمة خدمة SLES والوحدة النمطية واستحقاق الدعم، لذا على مضيف SLES 15 أقدم، تأكد من توفر Cockpit من خلال مستودعات SUSE المُفعّلة قبل اعتبار خطأ التثبيت عطلاً في الخدمة.
ابدأ بالأعراض
استخدم الخطأ في المتصفح لتحديد السبب. عادةً ما يشير خطأ انتهاء المهلة أو "تعذر الوصول إلى الموقع" إلى مشكلة في التوجيه، أو قواعد جدار الحماية، أو عدم تفعيل مستمع. أما رفض الاتصال فيعني غالبًا عدم وجود أي اتصال على العنوان والمنفذ المحددين. تشير صفحة تسجيل الدخول إلى لوحة التحكم إلى إمكانية الوصول إلى خدمة الويب؛ بينما يشير خطأ المصادقة اللاحق إلى مشكلة منفصلة في الحساب أو السياسة. أما تحذير الشهادة فيعني أن عملية التفاوض على بروتوكول HTTPS قد وصلت إلى الخادم، لكن المتصفح لا يثق بالشهادة أو اسمها.
على سبيل المثال، لنفترض أن مسؤول النظام لا يستطيع فتح خادم عنوانه هو 192.0.2.25. اختبر ذلك https://192.0.2.25:9090من جهاز مُصرّح له بإدارته. يستخدم Cockpit عادةً بروتوكول HTTPS على المنفذ 9090. قد يؤدي إدخال عنوان IP فقط إلى فتح خدمة مختلفة، وقد http://يؤدي استخدام إلى إعادة توجيه أو ظهور تحذير في المتصفح بدلاً من صفحة تسجيل الدخول المتوقعة.
1. تحقق من عنوان الموقع الإلكتروني وإمكانية الوصول إليه
تأكد من عنوان الخادم الحالي من وحدة تحكم SLES أو من قائمة جرد موثوقة، وقم بتضمين المنفذ بشكل صريح:
https://192.0.2.25:9090
من جهاز العميل، اختبر إمكانية الوصول إلى منفذ TCP رقم 9090. على محطة عمل إدارة لينكس مثبت عليها برنامج netcat، شغّل الأمر التالي:
nc -vz 192.0.2.25 9090
لا يُثبت نجاح اتصال TCP سوى إمكانية الوصول إلى المنفذ، ولا يُثبت نجاح تسجيل الدخول. يشير انتهاء المهلة إلى ضرورة التحقق من جدار الحماية النشط للخادم، وأي جدار حماية للشبكة المتصلة، والتوجيه، والوصول إلى VPN. أما الرفض فيشير إلى ضرورة التحقق من المُستمع على مُضيف SLES. في حال عدم توفر netcat، يُرجى الاختبار من متصفح أو استخدام أداة اتصال TCP أخرى معتمدة بدلاً من تثبيت أداة غير معتمدة على مُضيف الإنتاج.
2. تأكد من تثبيت قمرة القيادة وأن مقبسها نشط
اتصل عبر SSH أو وحدة تحكم محلية وافحص المقبس. يستخدم Cockpit عادةً تفعيل المقبس بواسطة systemd: يستمع systemd للاتصالات الواردة نيابةً عن Cockpit ويبدأ خدمة الويب عند الطلب. لهذا السبب، فإن الوحدة الرئيسية التي يجب فحصها عادةً ما تكون المقبس cockpit.socket، وليس خدمة تعمل باستمرار cockpit.service.
sudo systemctl status cockpit.socket
sudo ss -ltnp | grep ':9090'
ابحث عن مقبس نشط/مستمع ومستمع مرتبط بالمنفذ 9090. إذا كانت الوحدة مفقودة، فقد لا يكون Cockpit مثبتًا. في إصدار SLES الذي توفر مستودعاته المُفعّلة نمط Cockpit، توثق SUSE تثبيته باستخدام:
sudo zypper refresh
sudo zypper in -t pattern cockpit
إذا أبلغ Zypper بعدم العثور على النمط، فتحقق من المنتج، وحزمة الخدمة، والوحدات النمطية المُفعّلة، وحالة المستودع، واستحقاق الدعم مع مسؤول SUSE. لا تُضف مستودعًا تابعًا لجهة خارجية غير ذات صلة لمجرد إنجاح الأمر. بعد التأكد من تثبيت Cockpit، فعّل مأخذه وابدأ تشغيله.
sudo systemctl enable --now cockpit.socket
sudo systemctl status cockpit.socket
يُفعّل هذا --nowالخيار المقبس فورًا، كما يُمكّنه من العمل في عمليات إعادة التشغيل اللاحقة. إذا أبلغ نظام systemd عن وحدة معطلة، فافحص الخطأ بدقة قبل إعادة تشغيلها بشكل متكرر.
sudo journalctl -u cockpit.socket -b --no-pager
sudo journalctl -u cockpit.service -b --no-pager
3. السماح لبرنامج Cockpit بالمرور عبر منطقة جدار الحماية النشط
قد يظل المستمع النشط غير قابل للوصول إذا قطع جدار حماية المضيف الاتصال. يستخدم نظام SLES برنامج firewalld لإدارة جدار الحماية في الإصدارات الحالية. حدد أولاً المنطقة النشطة والواجهة المخصصة لها.
sudo firewall-cmd --get-active-zones
ثم أضف خدمة Cockpit المسماة إلى المنطقة التي تحتوي على واجهة الإدارة. استبدل publicبالمنطقة الفعلية المُبلغ عنها على جهازك المضيف:
sudo firewall-cmd --zone=public --add-service=cockpit --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --zone=public --query-service=cockpit
يجب أن يُظهر الأمر الأخير النتيجة . إذا كانت واجهة الشبكة في منطقة مختلفة، فلن يؤدي yesفتح الخدمة في المنطقة المحددة إلى إصلاح قواعد تلك الواجهة. تستخدم وثائق SUSE Cockpit خدمة firewalld؛ ويُفضّل فتح الخدمة المحددة بدلاً من فتح جميع حركة المرور أو تعطيل جدار الحماية. تحقق أيضًا من مجموعات أمان السحابة، وجدران الحماية المحيطية، وسياسات VPN، وقوائم التحكم بالوصول للشبكة (ACLs) إذا كانت قاعدة المضيف صحيحة ولكن العميل لا يزال يواجه مهلة.publiccockpit
إذا كانت صورة SLES الخاصة بك تستخدم إعدادًا مختلفًا لإدارة جدار الحماية، فاتبع سياسة ذلك النظام بدلًا من تطبيق أوامر firewalld بشكل عشوائي. لا تقم بمسح قواعد جدار الحماية أو تعطيله على خادم إنتاج مُدار عن بُعد، فقد يؤدي ذلك إلى تعريض الخدمات للخطر وتعطيل مسار الإدارة الحالي.
4. افصل بين فشل الاتصال ومشكلة الشهادة أو تسجيل الدخول
بمجرد تحميل صفحة تسجيل الدخول، يكون مسار الشبكة إلى لوحة التحكم (Cockpit) يعمل. تتوقع لوحة التحكم عادةً استخدام بروتوكول HTTPS في اتصالات المتصفح، وتعرض شهادة TLS. لا يعني ظهور تحذير بشأن شهادة موقعة ذاتيًا أو عدم تطابق في الاسم أن الاتصال معطل. بالنسبة لجهاز مختبري، تحقق من بصمة الشهادة عبر قناة موثوقة قبل قبول التحذير. أما بالنسبة للأنظمة المُدارة، فقم بتثبيت شهادة يتطابق اسم موضوعها مع اسم المضيف الذي يستخدمه المسؤولون، وتكون سلسلة شهاداتها موثوقة من قِبل متصفحاتهم.
إذا ظهرت صفحة تسجيل الدخول ولكن تم رفض بيانات الاعتماد، فتحقق من اسم المستخدم وكلمة المرور وحالة الحساب وسياسة مصادقة الخادم. عادةً ما تتم مصادقة Cockpit باستخدام حسابات النظام؛ فهي ليست قاعدة بيانات مستخدمين منفصلة. لا تُدخل كلمات المرور في الأوامر أو السجلات أثناء استكشاف الأخطاء وإصلاحها. إذا تم تحميل الصفحة ولكن ظلت الواجهة فارغة أو انقطع الاتصال بعد تسجيل الدخول، فافحص وحدة تحكم مطوري المتصفح وسجلات Cockpit الأخيرة. قد يتسبب الخادم الوكيل العكسي أيضًا في حدوث أعطال إذا كان لا يدعم اتصالات WebSocket أو يُعيد توجيه معلومات البروتوكول أو المضيف الخاطئة.
5. راجع السجلات وإعدادات الوكيل بعد اجتياز الأساسيات
التقط نافذة سجل قصيرة أثناء محاولة اتصال جديدة واحدة:
sudo journalctl -u cockpit.socket -u cockpit.service --since "10 minutes ago" --no-pager
ابحث عن أخطاء الربط، وأخطاء الأذونات أو الشهادات، والرسائل التي تتوافق مع وقت الاختبار. إذا كان الخادم يستمع محليًا ولكن لا يمكن للعميل البعيد الاتصال، فتحقق من مسار الشبكة ومنطقة جدار الحماية قبل تغيير إعدادات Cockpit. إذا كان الوصول المباشر يعمل ولكن الوصول عبر وكيل يفشل، قارن مؤقتًا عبر مسار مباشر مسموح به، ثم راجع دعم ترقية WebSocket للوكيل وعناوين إعادة التوجيه. تجنب تغيير إعدادات الأصل أو TLS في Cockpit كخطوة أولى؛ فقد تؤدي إعدادات ثقة الوكيل غير الصحيحة إلى إضعاف الأمان.
تحقق من الإصلاح
بعد إجراء تغيير واحد في كل مرة، تحقق من هذه النتائج:
systemctl status cockpit.socketيُظهر أن المقبس نشط ويستمع.
- يحتوي مضيف SLES على مستمع على المنفذ المتوقع، وهو عادةً TCP 9090.
- توجد قاعدة جدار الحماية في المنطقة المخصصة لواجهة الإدارة.
- يمكن للعميل الوصول إلى الخادم على الرابط التالي،
https://SERVER_IP:9090وسيظهر له صفحة تسجيل الدخول إلى لوحة التحكم.
- بعد المصادقة، تظل الصفحة متصلة ولا يحتوي السجل الأخير على أي خطأ في بدء التشغيل أو الاتصال.
إذا كان الاتصال نشطًا ونجحت الفحوصات المحلية، لكن اختبارات TCP عن بُعد لا تزال تنتهي بمهلة زمنية، فمن المرجح أن يكون العطل المتبقي خارج نطاق Cockpit نفسه، مثل جدار حماية الشبكة، أو مسار الشبكة، أو سجل DNS، أو قاعدة VPN. إذا تعطلت الخدمة على نظام SLES مدعوم، فاحفظ حالة الوحدة ومخرجات السجل، وتحقق من وثائق SUSE أو قناة الدعم لمعرفة تكوين حزمة الخدمة الدقيق، بدلًا من تطبيق إصلاحات مخصصة لتوزيعة أخرى.
المراجع الرسمية