Skip to main content
يُوزَّع الموصل كملف ثنائي واحد باسم clicklink، وتوجد الأوامر التي تشغّلها ضمن clicklink clctl. تغطي هذه الصفحة الأوامر المستخدمة أثناء التثبيت والتشغيل اليومي. شغّل أي أمر باستخدام --help لعرض نص المساعدة الكامل. يمكن أيضًا تمرير العلامات ضمن التفرعات الفرعية troubleshoot وscraper وpreflight وexecutor وinstances create وplatform، إضافةً إلى العلامتين العامتين --endpoint و--cluster، عبر متغيرات البيئة CLCTL_* (المذكورة في مخرجات المساعدة لكل علامة) أو عبر ~/.clicklink/clctl.yaml. تسجّل العلامة العامة -v طلبات واجهة برمجة تطبيقات الإدارة التي يُجريها الأمر، بينما تضيف -vv متون الطلبات. يقرأ الأمران instances وcommands، وكذلك executor teardown، واجهة برمجة التطبيقات المحلية للمنفّذ. وتحدّدها علامتان عامتان: --endpoint <url> (القيمة الافتراضية http://127.0.0.1:9999، متغير البيئة CLCTL_ENDPOINT) و--cluster <name> (متغير البيئة CLCTL_CLUSTER) التي تحدّد اسم العنقود المُدار عندما يحتاج الأمر إلى ذلك. في Kubernetes، افتح kubectl port-forward إلى Deployment المنفّذ أولًا؛ انظر الخدمات المُدارة.

clicklink clctl init

يُهيّئ الموصل باستخدام رمز تسجيل، أو حزمة تسجيل محفوظة، أو شهادة موقّعة خارج النطاق. ينفّذ استدعاء واحد إعداد التكوين، ويوفّر الوصول إلى ClickHouse، ويحصل على شهادة عميل mTLS، وينشر المكوّنات (مخطط Helm أو وحدات systemd)، ويتحقق من سلامتها. ومع --managed يُفعّل أيضًا المنفّذ لعنقود EKS الذي يكتشفه ويمنح المنفّذ وصولًا على مستوى العنقود. إعادة التشغيل آمنة: يحافظ init على التكوين ومعرّف UUID للعنقود، ويستبدل بيانات الاعتماد ذريًا، ويُعيد استخدام مفتاح العميل الحالي ما لم تمرّر --force. راجع الإعداد الأولي للاطلاع على التدفق الكامل والخدمات المُدارة لمعرفة ما يقوم به المنفّذ.

نقاط الدخول

يلزم تحديد نقطة دخول واحدة فقط.

العلامات الشائعة

خيارات التوقيع (المرحلة 1 فقط)

العلامات الخاصة بـ Kubernetes

صالحة فقط مع --target helm.

العلامات الخاصة بـ جهاز افتراضي فقط

صالحة فقط مع --target systemd.

تعارضات العلامات

  • العلامات --handoff و--enroll و--signed-cert متنافية؛ ويجب تحديد واحد منها فقط.
  • تُرفض العلامات الخاصة بـ Kubernetes ما لم يُستخدم --target helm؛ كما يُرفض --server و--ca-data و--cluster-name و--no-instance عند استخدام --target helm (إذ يعتمد تدفق Helm على ملف kubeconfig لمحطة العمل ويكتشف المثيل داخل العنقود).
  • يتنافى --no-instance و--instance.
  • يتنافى --managed و--no-managed، ويُرفض --cluster-name مع --no-managed. وعند استخدام --target helm، يُرفض --instance و--instance-namespace مع --managed.
  • يتنافى --no-auto-sign و--sign-endpoint مع بعضهما، ويُرفض كلاهما (بالإضافة إلى --api-private-ca و--managed و--no-managed و--cluster-name) مع --signed-cert.
  • يتطلب --platform-bundle استخدام --target helm و--managed و--from-terraform، ويُرفض مع --no-managed أو --signed-cert. وتُرفض علامات المجمّعات الأربع دون --platform-bundle، كما تُرفض إذا كانت NodePools موجودة مسبقًا.
  • يتنافى --operators و--no-gateway.
  • يرفض --skip-provision العلامات --ch-pod و--ch-user-suffix و--server و--ca-data و--ch-admin-password-stdin (إذ لا يتم توفير أي شيء).

clicklink clctl preflight

يشغّل مجموعة فحوصات الموصل، المجمّعة حسب الفئات: الإعدادات، الملفات، الشبكة، ClickHouse، systemd، الوصول، القرص، وحجب المعلومات الحساسة. يُبلغ كل فحص عن إحدى الحالات التالية: نجاح أو تحذير أو فشل أو تخطٍّ. يشير رمز الخروج 0 إلى نجاح جميع الفحوصات (فالتحذيرات غير حاجبة)، بينما يشير رمز الخروج 2 إلى فشل فحص واحد على الأقل. يُشغَّل الأمر محليًا افتراضيًا. عند استخدام --k8s-namespace، يشغّل الملف الثنائي الخاص بكبسولة الموصل عبر kubectl exec ويعرض التقرير محليًا (تُتخطى فحوصات systemd دائمًا في الكبسولات). وعند استخدام علامات القناة البعيدة، يشغّل بدلًا من ذلك الملف الثنائي المثبّت على آلة افتراضية بعيدة. علامات --k8s-* وعلامات القناة البعيدة متنافية؛ اختر هدفًا واحدًا.

clicklink clctl troubleshoot session

يتيح تفعيل جلسة الدعم وتعطيلها وفحصها، وهي نافذة زمنية محددة يقبل خلالها troubleshooter الأوامر. بدون جلسة نشطة، يرفض البرنامج الخفي كل أمر، حتى لو كان WebSocket متصلاً. راجع جلسات الدعم. تعمل الأوامر بأحد الوضعين التاليين:
  • ملف محلي (افتراضيًا): تقرأ ملف حالة الجلسة وتكتب إليه على المضيف الذي يعمل عليه troubleshooter (المسار الافتراضي: /var/lib/clicklink/session.json).
  • بوابة: باستخدام --gateway-url، يحصل على رمز مميز للهوية من OIDC ويستدعي بوابة جلسة troubleshooter بدلًا من ذلك من محطة العمل لديك.

الخيارات المشتركة

تفعيل الجلسة

يفشل التفعيل إذا كانت هناك جلسة نشطة بالفعل؛ عطّلها أولًا أو انتظر انتهاء صلاحيتها.

تعطيل الجلسة

يعطّل الجلسة فورًا. ولا يكون له أي تأثير إذا لم تكن هناك جلسة نشطة.

حالة الجلسة

يوضح ما إذا كانت الجلسة نشطة، ومن فعّلها، ومتى تنتهي صلاحيتها. يحدد --output (-o) إما table (الخيار الافتراضي) أو json. في Kubernetes، يمكنك الوصول إلى البوابة باستخدام إعادة توجيه المنفذ:

clicklink clctl troubleshoot gateway trust

على جهاز افتراضي، تقدّم بوابة الجلسة شهادة TLS موقّعة ذاتيًا. يسجّل هذا الأمر بصمة SHA-256 للشهادة في ~/.clicklink/clctl.yaml كي تتمكن أوامر session من التحقق منها؛ وإذا لم تعد البصمة المثبّتة مطابقة، يُرفض الاتصال. تُنشأ الثقة خارج النطاق بإحدى طريقتين:
  • باستخدام علامات القناة البعيدة، يقرأ الأمر الشهادة من الجهاز الافتراضي عبر القناة التي تمت مصادقتها مسبقًا ويثبّتها.
  • بدون قناة، مرّر --gateway-fingerprint مع قيمة SHA-256 التي سجّلها الموصل عند إنشاء الشهادة؛ ولا يثبّت الأمر الشهادة التي تم جلبها إلا إذا كانت مطابقة. يؤدي حذف العلامة إلى طباعة البصمة المقدَّمة دون تثبيت أي شيء.
في Kubernetes، لا يُستخدم التثبيت: اعرض البوابة عبر مورد Ingress باستخدام شهادة صادرة عن جهة إصدار شهادات موثوقة (CA)، أو استخدم إعادة توجيه المنفذ.

clicklink clctl troubleshoot audit tail

يطبع أحدث الإدخالات في سجل تدقيق مستكشف الأخطاء ومصلحها: ‏JSON مفصول بأسطر جديدة، مع إدخال واحد لكل أمر قبله البرنامج الخفي أو حظره. ويفتح السجل للقراءة فقط. لا تتضمن صورة وقت تشغيل الموصل صدفة، لذا يُعد هذا الأمر القارئ المدعوم في Kubernetes:

تهيئة الوصول

ينشئ الأمران clicklink clctl scraper access provision وclicklink clctl troubleshoot access provision حزمة وصول لكل مثيل من المكوّن، ويُدوّرانها عند استخدام --force. تشمل الحزمة مستخدم ClickHouse بصلاحية القراءة فقط وصلاحياته، بالإضافة إلى حساب خدمة Kubernetes وRBAC والرمز المميز الذي يستخدمه المكوّن. ينفّذ init ذلك مباشرةً أثناء التثبيت؛ أما الأوامر المستقلة فتُستخدم لإعادة التنفيذ وتدوير بيانات الاعتماد. دوّر بيانات اعتماد مكوّن واحد لمثيل معيّن:

clicklink clctl executor access

يطبّق init --managed صلاحية منفّذ على مستوى العنقود بأكمله باستخدام بيانات اعتمادك. وعند تعذّر ذلك، يطبع init الأوامر الواجب تنفيذها من kubeconfig يملك صلاحيات admin على العنقود: access apply وحده على جهاز افتراضي (إذ تكون الحزمة مُجهّزة مسبقًا)، وaccess grant ثم access apply على Kubernetes. راجع onboarding.

منفّذ access grant

يُنشئ حزمة وصول المنفّذ (منفّذ) على مستوى العنقود ضمن <output-dir>/_cluster/: ServiceAccount واحد، وClusterRole وClusterRoleBinding، وValidatingAdmissionPolicy تَقصُر الـ ServiceAccount على مساحات الأسماء الواقعة تحت بادئة مساحة أسماء المنفّذ. راجع الـ RBAC المُنشأ قبل تطبيقه.

منفّذ access apply

يطبّق حزمة grant المُولَّدة على مستوى العنقود: الـ مساحة أسماء الأصلي لـ ServiceAccount، وServiceAccount نفسه، وClusterRole وClusterRoleBinding، وسياسة admission، ثم يُنشئ رمز الخاص بـ ServiceAccount ويضعه في الحزمة. ولا يسجّل أي service.

clicklink clctl منفّذ prepare

يُجهّز كل ما يلزم من جانبك لإنشاء managed service، في تنفيذ واحد خامل التأثير يتوقف عند أول إخفاق. فهو يختار اسم service أو يتحقق منه وينشئ حاويتَي البيانات والنسخ الاحتياطي ودور IAM (أو يتحقق من دور IAM تُحضره بنفسك). وعلى جهاز افتراضي يُولّد أيضاً حزمة وصول منفّذ ويطبّقها على مساحة أسماء service؛ أما على Kubernetes فيتخطى الحزمة لأن منفّذ يعمل بهوية ServiceAccount الخاصة بالـ pod. ثم يُصدر كلمة مرور المستخدم default (تُعرض مرة واحدة فقط) ويكتب جسم طلب الإنشاء الخاص بـ instances create. راجع managed services. على الجهاز الافتراضي يعمل الأمر على مضيف موصّل. أما في تثبيت Kubernetes فيعمل على محطة عمل تتوفر فيها AWS credentials وسياق kube للعنقود المُدار. وتحتاج تلك المحطة أيضاً إلى نسخة من تهيئة موصّل (‏--config)، وإعادة توجيه منفذ إلى واجهة برمجة تطبيقات المحلية لـ منفّذ، ودليل --output-dir قابل للكتابة.

clicklink clctl executor teardown

يزيل ما أنشأه prepare لخدمة حذفتها ClickHouse Cloud، أي دور IAM، والاسم المسجَّل، وسجل المنفِّذ الخاص بالخدمة؛ وعلى جهاز افتراضي أيضًا: ClusterRole وClusterRoleBinding الخاصين بالخدمة، وحزمة الوصول المحلية، ومُدخل السجل. يجب أن يكون المنفِّذ قيد التشغيل وأن تكون الخدمة terminated (أو stale)؛ ويرفض التنفيذ ما دامت مساحة أسماء الخدمة تحتوي على عنقود ClickHouse. ويُحتفظ بالحاويات التي أنشأها prepare، بما فيها من بيانات ونسخ احتياطية، ما لم تطلب حذفها، ويُعاد وسم الحاويات المحتفظ بها بـ clicklink:retained-from=<name>. ويقرأ الأمر كل شيء قبل أن يحذف أي شيء. راجع حذف خدمة.

clicklink clctl instances

instances create

يُرسل طلب إنشاء مُجهّزًا إلى ClickHouse Cloud عبر نقطة نهاية الموصّل الخاصة بك، مستخدِمًا بيانات اعتماد الموصّل نفسه. ويُفعَّل الإنشاء لكل بيئة على حدة؛ انظر إنشاء خدمة. ويطبع الاسم المنطوق الذي خصّصته ClickHouse Cloud، والحالة، وتلميح watch: يستخدم اسم خدمتك. ويأتي متن الإنشاء من الملف الذي كتبه prepare، أو من الرايات الأربع --deployed-name و--data-bucket و--backup-bucket و--irsa-role-arn مجتمعةً. وإعادة المحاولة بالمدخلات نفسها تُعيد طلب الإنشاء الأول.

instances list

يطبع كل service معروف لدى الـ منفّذ بصيغة JSON. ويؤدي --cluster <name> إلى التصفية حسب العنقود المُدار.

instances get

يطبع خدمة واحدة بصيغة JSON، مع التخزين الذي أُنشئت به. الخيار --name <name> مطلوب، وكذلك العنقود: مرِّر --cluster، أو اضبط CLCTL_CLUSTER، أو ضعه في ~/.clicklink/clctl.yaml. ترسل الأوامر الفرعية الثلاثة أدناه أوامرها مباشرةً إلى واجهة برمجة التطبيقات المحلية للمنفِّذ، متجاوزةً ClickHouse Cloud. لا تستخدمها إلا بناءً على طلب من فريق حسابك. ويحتاج كل منها إلى --name <name> وإلى العنقود (--cluster أو CLCTL_CLUSTER أو ~/.clicklink/clctl.yaml)، ويطبع كل منها الأمر بصيغة JSON. مرِّر معرّفه id إلى commands get لتتبّعه؛ أما الأمر الفاشل فيحتوي الحقل result الخاص به على تفاصيل الخطأ.

instances scale

يضبط عدد نسخ الخادم (server replicas) لخدمة واحدة عبر ScalingOverride. الخيار --server-replicas <n> مطلوب ويجب أن تكون قيمته أكبر من الصفر. ويُبلّغ المنفّذ (executor) عن الأمر بحالة running عند تطبيق الـ override، وبحالة completed عندما تصبح النسخ جاهزة.

instances patch

يغيّر خدمة واحدة في موضعها. والخيار --create-nlb هو التصحيح الوحيد المتاح؛ ومن دونه يرفض الأمر التنفيذ مع الرسالة nothing to patch. وهو يجهّز NLB داخليًا على هيئة Service في Kubernetes، على AWS فقط، ليتمكن ساحب المقاييس الموجود خارج العنقود من الوصول إلى الخوادم. ويتولى المنفّذ تعبئة مضيف الساحب رجعيًا من موازن التحميل عند المزامنة التالية.

instances delete

يزيل خدمة واحدة من العنقود. يوقف الخدمة وينتظر إتمام إيقاف التشغيل المرتّب الذي يقوم به المشغّل. ثم يزيل تثبيت عبء العمل، ويحذف مساحة الأسماء ns-<name> ومخرجات أداة السحب، وينتظر إلى أن تختفي مساحة الأسماء، ثم يضع علامة terminated على الخدمة. أما حاويات الخدمة ودور IAM الخاص بها فتبقى كما هي؛ ويزيلها executor teardown باستخدام بيانات الاعتماد الخاصة بك. وإعادة محاولة عملية حذف مكتملة لا تُحدث أي تأثير. والمسار المعتاد هو حذف الخدمة في ClickHouse Cloud؛ راجع حذف خدمة.

أوامر clicklink clctl

commands list

يطبع الأوامر التي سجّلها المنفّذ بصيغة JSON، بدءاً من الأحدث. يحتوي الحقل result للأمر الفاشل على الخطأ الذي حدث؛ أما مزامنة المنصة التي تنتظر موافقتك فتُظهر هناك أمر platform approve المطلوب تحديداً.

commands get

يطبع clicklink clctl commands get <id> أمرًا واحدًا، مع stage الخاص به ونتيجته.

clicklink clctl platform approve

يصرّح بتغيير واحد في المنصة باستخدام بيانات اعتماد العنقود الخاصة بك. يقرأ الحزمة التي جهّزها المنفّذ (executor)، ويحسب تجزئتها، ويُصيّر كل مخطط (chart) فيها تمامًا كما سيفعل المنفّذ. ويطبّق نصف الصلاحيات باستخدام سياق kube الذي تختاره، وينشئ هوية pcm-platform الخاصة بالمنفّذ إذا لزم الأمر، ويُصدر رمزها. ولا يرسل أي طلب إلى نقطة نهاية الموصّل لديك. ويشمل نصف الصلاحيات: Namespaces، وCustomResourceDefinitions، وServiceAccounts، وClusterRoles وارتباطاتها، وRoles وارتباطاتها، وتهيئات webhook وadmission، وPriorityClasses، وStorageClass. ثم يطبّق المنفّذ نصف عبء العمل فقط، وطالما كان ذلك الرمز صالحًا فقط. راجع تحديثات المنصة. للوصول المباشر إلى سجل ClickHouse، شغّل الموافقة على جهاز EC2 الافتراضي الخاص بالموصّل: تستخدم واجهة سطر الأوامر ملف تعريف المثيل الخاص به لتولي دور السحب للقراءة فقط، بشكل مستقل عن بيانات اعتماد kubeconfig لديك. أما سجلات مخططات ECR الأخرى فتستخدم بيانات اعتماد AWS المحيطة. راجع بيانات اعتماد السجل.

clicklink clctl platform reset

للعناقيد الاختبارية التي لا تحتوي على خدمات: يزيل تثبيت إصدارات المنصة بترتيب عكسي للاعتماديات ويحذف حزمة رموز المنصة الخاصة بالمنفّذ، بحيث يمكن تنفيذ التثبيت الأول من جديد. وقبل إجراء أي تغيير، يسرد عناقيد ClickHouse في مساحات الأسماء التي يملكها هذا الموصّل ويرفض المتابعة إن وُجد أي منها. أما CustomResourceDefinitions وRBAC وStorageClass فتبقى كما هي. شغّل platform approve مرة أخرى قبل مزامنة المنصة التالية.

علامات القناة البعيدة

تشترك preflight وgateway trust وaccess provision في مجموعة من العلامات التي تحدد كيفية الوصول إلى جهاز افتراضي الهدف: