المكوّنات
clicklink:
- الكاشط تقرأ قائمة سماح لجداول نظام ClickHouse على فترات زمنية ثابتة، وتخزّن النتائج مؤقتًا محليًا، ثم ترسلها إلى نقطة نهاية الموصل لديك، إلى جانب بيانات تعريف البنية التحتية وحالة الصحة.
- مستكشف الأخطاء ومصلحها تحافظ على قناة أوامر صادرة إلى نقطة نهاية الموصل لديك، وتنفّذ عمليات تشخيص للقراءة فقط أثناء جلسة دعم نشطة. ولا تنفّذ أي شيء خارج الجلسة.
clicklink-connector ضمن مساحة أسماء تختارها (القيمة الافتراضية هي clicklink). وعلى جهاز Linux افتراضي، يعملان كوحدتي systemd clicklink-scraper وclicklink-troubleshooter تحت مستخدم النظام غير المميّز clicklink.
الاتصالات
يحمل كل طلب واجهة برمجة تطبيقات ترويسة
Authorization تتضمن توقيع HMAC-SHA256 محسوبًا على الطريقة والمسار والطابع الزمني وتجزئة الجسم، بحيث لا يمكن إعادة إرسال الطلبات أو تعديلها أثناء نقلها، حتى داخل قناة TLS.
ومن جهة الاتصالات الواردة، لا يوفّر الموصل سوى منافذ الصحة والمقاييس المحلية، بالإضافة إلى بوابة الجلسة الاختيارية الموصوفة في صفحة جلسات الدعم. ولا تتصل طبقة التحكم في ClickHouse بأيٍّ منها مطلقًا.
دورة حياة الشهادة
- التسجيل. ينشئ
clicklink clctl initمفتاحًا خاصًا محليًا وطلب توقيع شهادة يتضمن معرّف مؤسستك بوصفه الاسم الشائع، ومضيف نقطة النهاية لديك بوصفه DNS SAN الوحيد. لا يغادر المفتاح الخاص بيئتك مطلقًا. - الإصدار الأول. يُرسَل طلب توقيع الشهادة إلى نقطة نهاية توقيع التسجيل على
/v1/pcm/cert/sign، مع المصادقة باستخدام HMAC. إذا كانت هناك شهادة غير منتهية الصلاحية لمؤسستك بالفعل، ترفض نقطة النهاية الطلب بالرمز 409، وتعرض واجهة CLI كيفية المتابعة باستخدام الشهادة الحالية أو استبدالها عمدًا باستخدام--force. - التجديد التلقائي. يتحقق كل برنامج خفي من مدة صلاحية الشهادة كل 12 ساعة، ويطلب شهادة مجددة لمدة 30 يومًا عبر
/v1/pcm/cert/renew(mTLS بالإضافة إلى HMAC) عند تبقي 10 أيام. في Kubernetes، يكتب كل برنامج خفي الشهادة المجددة مجددًا إلى الـ Secretclicklink-mtlsعبر منح RBAC باسم مطابق تمامًا؛ وعلى جهاز VM، يكون دليل TLS قابلاً للكتابة بواسطة مستخدم البرنامج الخفي. لا يلزم اتخاذ أي إجراء من المشغّل للتجديد.
تدفق البيانات
ما الذي يغادر بيئتك
- المقاييس من جداول النظام المدرجة في قائمة السماح. تتضمن المجموعة الافتراضية للكاشط
metric_logوasynchronous_metric_logوtablesوwarningsوserver_settings. وقائمة السماح إعداد صريح؛ ولا يقرأ الكاشط أي شيء خارجها. - بيانات تعريف البنية التحتية. جرد المثيلات والبنية التحتية والنسخ الاحتياطية المتزامن عبر واجهة برمجة التطبيقات.
- مقاييس الصحة والمقاييس الذاتية. حالة المكوّن والمقاييس التشغيلية الخاصة بالموصل.
- مخرجات جلسة الدعم. نتائج عمليات التشخيص للقراءة فقط التي تُجرى خلال جلسة فعّلتها، بعد التنقيح.
ما لا يغادر افتراضياً
- نص الاستعلام الخام على مسار الجمع. يُستبعد
system.query_logعمداً من مجموعة الجمع الافتراضية، لأن أعمدة الاستعلام فيه قد تتضمن قيماً حرفية، بما في ذلك معلومات تحديد الهوية الشخصية أو الأسرار؛ وإعادة إضافته تجاوز خاص بكل عملية نشر تُجريه عن قصد ودراية. أثناء جلسة دعم، تتضمن قائمة السماح الافتراضية للجداولsystem.processes، الذي يعرض نص الاستعلامات الجارية؛ راجع جلسات الدعم لمعرفة كيفية إزالة أجزاء منه. - بيانات الاعتماد. لا تحتوي ملفات التكوين على بيانات اعتماد، ولا يخزن ClickHouse سوى تجزئات bcrypt لكلمات مرور مستخدمي الموصل، وتبقى الأسرار في Kubernetes Secrets أو في ملفات على المضيف لا يقرأها إلا الجذر. ولا ينقلها أي شيء في مسارات الجمع أو المزامنة.
- مخرجات مستكشف الأخطاء ومصلحها غير المنقحة. يمر كل ما يعيده مستكشف الأخطاء ومصلحها عبر أنماط التنقيح، سواء المضمنة أو التي تضيفها أنت، قبل أن يغادر. راجع جلسات الدعم.
حدود الثقة
- بيئتك هي الحد الفاصل. لا يتلقى ClickHouse Cloud إلا ما يرسله الكاشط وما تُعيده جلسة دعم نشطة. ولا يبادر مطلقًا بإنشاء اتصال وارد.
- بوابة الجلسة ملكك. لا يمكن الوصول إليها إلا من داخل بيئتك (عبر
kubectl port-forwardعلى Kubernetes، أو محليًا على جهاز افتراضي) ما لم تختر كشفها عبر مورد Ingress. ولا تتصل بها طبقة التحكم في ClickHouse مطلقًا. - الوصول إلى ClickHouse للقراءة فقط. يمتلك المستخدمان
pcm_scraperوpcm_troubleshooterامتيازاتSELECTلكل جدول، بالإضافة إلى امتياز نظام واحد خاص بالكاشط يفرغ جداول السجل إلى القرص، ولا يتيح أي شيء آخر؛ ولا توجد امتيازاتINSERTأو DDL أو إدارة المستخدمين. ترد القائمة الدقيقة في نموذج الامتيازات. - الوصول إلى Kubernetes مقيّد بمساحة أسماء. تُمنح جميع صلاحيات RBAC عبر Roles في مساحات الأسماء للموصل والمثيل، مع أذونات للقراءة فقط على موارد أعباء العمل ووصول بالاسم المطابق تمامًا إلى Secrets الخاصة بالموصل. ولا توجد صلاحيات
execأوdeleteأوpatch. - سياسة الشبكة. على Kubernetes، يمكن للمخطط إنشاء NetworkPolicy تمنع كل حركة المرور الصادرة من الموصل باستثناء نطاقات CIDR التي تحددها. يعتمد الإنفاذ على تشغيل مجموعتك لمكوّن CNI يفرض السياسات؛ ومن دونه تكون السياسة غير فعّالة. راجع الإعدادات.
- تحصين المضيف على الأجهزة الافتراضية. تعمل الوحدات كمستخدم نظام لا يمكنه تسجيل الدخول، مع تفعيل
ProtectSystem=strictوNoNewPrivileges، ومسارات إعدادات للقراءة فقط، ووضع FIPS.