Skip to content

البداية مع Cockpit

يعمل Cockpit كبوابة إدارة مركزية لمنصة التلخيص Vapor. يوضح هذا الدليل البنية التحتية للنظام وتدفقات الاتصال ومتطلبات النظام الضرورية لنشر Cockpit.


المصطلحات التقنية

تتضمن إدارة التلخيص (Virtualization administration) العديد من مكونات البنية التحتية الأساسية:

مرجع المصطلحات

  • Hypervisor: خادم فيزيائي مضيف يشغل نواة التلخيص (KVM/QEMU) وتديره وكيل محلي (Vapor).
  • REST API: واجهة برمجة تطبيقات لنقل الحالة التمثيلية تُستخدم من قبل العملاء لتنفيذ الأوامر الإدارية وجلب حالات التكوين عبر HTTP.
  • WebSocket: بروتوكول اتصال مزدوج كاملاً ومستمرًا يُستخدم لدفع الأحداث وتحديثات القياس عن بعد في الوقت الفعلي من الخادم إلى العملاء بأقل عبء ممكن.
  • PostgreSQL Advisory Lock: قفل قاعدة بيانات مُعرف على مستوى التطبيق يُستخدم لتنسيق إدارة المضيف ومنع تعارضات الانقسام (Split-brain) في عمليات النشر متعددة المثيلات.
  • pg_notify: قناة إشعارات غير متزامنة في PostgreSQL تُستخدم لبث الأحداث عبر مثيلات Cockpit النشطة المتعددة.

بنية الاتصال

يعمل Cockpit كبوابة مركزية بين المسؤولين وخوادم Vapor الفيزيائية المضيفة (Hypervisors). ويطبق نموذج اتصال ثنائي الطبقات:

  1. الاتجاه السفلي (Cockpit إلى Vapor): ينشئ Cockpit اتصالات آمنة بوكيل مضيف Vapor المحلي على المنفذ 7770. وتُستخدم هذه الوصلة للاستعلام عن خصائص الأجهزة، وجلب إعدادات الأجهزة الافتراضية، وبث الأحداث في الوقت الفعلي.
  2. الاتجاه العلوي (العميل إلى Cockpit): يتصل العملاء ببوابة Cockpit API Gateway على المنفذ 7771 عبر HTTPS وWebSockets. تقوم بوابة API بتوثيق المستخدمين، والتحقق من أذونات الأدوار، وتقديم واجهة وحدة التحكم الموحدة.
                  ┌────────────────────────────────┐
                  │          Cockpit Web UI        │
                  │       (Client Web Browser)     │
                  └──────────────┬─────────────────┘

                                 ▼ HTTPS / WebSockets (Upstream Connection)
                  ┌────────────────────────────────┐
                  │      Cockpit API Gateway       │
                  │   (Central Brain / Coordinator)│
                  └──────────────┬─────────────────┘

         ┌───────────────────────┼───────────────────────┐
         ▼                       ▼                       ▼
 ┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
 │   Vapor Host 1  │     │   Vapor Host 2  │     │   Vapor Host 3  │
 │  (TCP Port 7770)│     │  (TCP Port 7770)│     │  (TCP Port 7770)│
 └─────────────────┘     └─────────────────┘     └─────────────────┘

المكونات الأساسية للبنية التحتية

تتكون بنية Cockpit من عدة خدمات خلفية متخصصة:

  • Collector Service: خدمة خلفية تحتفظ باتصالات مستمرة مع جميع وكلاء مضيفي Vapor المسجلين. وتقوم بتسوية حالات المضيف، ومعالجة عينات القياس عن بعد، وتحديث قاعدة البيانات المشتركة.
  • قاعدة بيانات PostgreSQL: مخزن التكوين المشترك. وتحتفظ بتعريفات المستخدمين، وتعيين الأدوار، والبيانات الوصفية لتسجيل المضيفين، ومقاييس النظام.
  • PostgreSQL Advisory Locks: تُستخدم في الإعدادات متعددة المثيلات لفرض الاستبعاد المتبادل. يتم قفل كل مضيف Vapor بواسطة مثيلة جامع واحدة؛ وإذا فشلت المثيلة النشطة، تحصل مثيلة احتياطية على القفل وتتولى إدارة المضيف.
  • WebSocket Event Hub: موزع رسائل في الوقت الفعلي. يستهلك الأحداث المنشأة بواسطة Collector Service ويبثها إلى المتصفحات المتصلة. تستخدم الإعدادات متعددة المثيلات PostgreSQL pg_notify لتوجيه الرسائل عبر المثيلات.

متطلبات النظام

تأكد من استيفاء خادم النشر لمتطلبات الأجهزة والبرامج التالية قبل تثبيت Cockpit:

المكونالحد الأدنى من المواصفاتالمواصفات الموصى بهاالمبرر
أنوية المعالج (CPU Cores)2 vCPUs4+ vCPUsمطلوب للتعامل مع طلبات API المتزامنة وتحليل القياس عن بعد.
ذاكرة النظام (RAM)4 GB8+ GBمطلوب لإدارة ذاكرة التخزين المؤقت لاتصالات WebSocket النشطة والعمليات المتزامنة.
مساحة التخزين20 GB (SSD)50+ GBيخزن سجلات قاعدة البيانات، ومسارات التدقيق، وسجل الأداء.
قاعدة البياناتPostgreSQL 15 أو أحدثClustered PostgreSQL (Patroni)تُستخدم لتخزين الحالة المركزية ومزامنة المعاملات.
الشبكة1 Gbps10 Gbpsضروري للمزامنة بين المثيلات وبث المقاييس.
عقد VaporVapor 1.0.0 أو أحدثVapor مع إعداد TLSوحدات Hypervisors المستهدفة والتي يديرها وحدة تحكم Cockpit.