- الرئيسية
- الشبكات متعددة السحابات
- Customer Edge diagnostics
- Reaching a Customer Edge
- واجهة برمجة تطبيقات التصحيح Debug API
واجهة برمجة تطبيقات التصحيح Debug API
تم الالتقاط في 2026-07-28 من إحدى عقد CE في هذا النشر. يسجّل الملف sitecli/capture-manifest.json
أي عقدة تم استخدامها، ويقوم scripts/capture-sitecli.sh --check بإعادة التحقق من سطح
الأوامر مقابل عقدة CE حيّة.
تقوم واجهة vpm/debug بتشغيل أوامر Site CLI على عقدة مُسجّلة وإرجاع مخرجاتها.
كل ما يلي تم إثباته مقابل عقدة حيّة؛ ولا شيء منه منشور من المصدر الرسمي.
كتالوج الأوامر يصف نفسه
Section titled “كتالوج الأوامر يصف نفسه”اسأل العقدة عمّا تدعمه عن طريق إرسال طلب POST إلى exec-user مع حذف المفتاح
command:
curl -sS -X POST \ -H "Authorization: APIToken $XCSH_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{"namespace":"system","site":"<site>","node":"<node>"}' \ "$XCSH_API_URL/api/operate/namespaces/system/sites/<site>/vpm/debug/<node>/exec-user" \ | jq -r .output | jq .الاستجابة هي كائن JSON مُفتَّح باسم الأمر:
{ "crictl-inspect": ["System Troubleshooting", "ExecUser", " container-id"], "diagnosis": ["System Troubleshooting", "ExecUser", "no argument needed", "GLOBAL"], "ip-link-set": ["Network Troubleshooting", "Exec", " (<device>||<group>) (up||down)"]}كل مدخل هو [category, tier, exampleArgument?, scope?]، وهذه الحقول ليست
توثيقًا — بل هي التي تحدد كيف يجب استدعاء الأمر.
ثلاث وسائل نقل، يحددها مدخل الكتالوج
Section titled “ثلاث وسائل نقل، يحددها مدخل الكتالوج”| الشرط | الطريقة والمسار | الجسم | الناتج |
|---|---|---|---|
scope يساوي GLOBAL | GET .../vpm/debug/global/<cmd> | لا شيء | JSON |
tier يساوي ExecUser | POST .../vpm/debug/<node>/exec-user | مصفوفة command | نص |
tier يساوي Exec | POST .../vpm/debug/<node>/exec | مصفوفة command | نص |
ExecUser — الطبقة للقراءة فقط 31 أمرًا
Section titled “ExecUser — الطبقة للقراءة فقط ”الحالة الشائعة. مرِّر الأمر ووسائطه كمصفوفة، مع اسم الأمر أولًا:
curl -sS -X POST \ -H "Authorization: APIToken $XCSH_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{"namespace":"system","site":"<site>","node":"<node>","command":["crictl-ps"]}' \ "$XCSH_API_URL/api/operate/namespaces/system/sites/<site>/vpm/debug/<node>/exec-user"{ "return_code": 0, "output": "CONTAINER IMAGE CREATED STATE ..." }الوسائط هي عناصر مصفوفة منفصلة، وليست سلسلة نصية واحدة:
{ "command": ["journalctl", "-u", "vpm", "-n", "200"] }GLOBAL — على نطاق الموقع، ووسيلة نقل مختلفة تمامًا أمران
Section titled “GLOBAL — على نطاق الموقع، ووسيلة نقل مختلفة تمامًا ”health وdiagnosis هما الأمران الوحيدان. وهما طلبا GET إلى مسار global،
لا يأخذان أي وسائط، ويُرجعان JSON مُهيكلًا بدلًا من نص طرفية.
curl -sS -H "Authorization: APIToken $XCSH_API_TOKEN" \ "$XCSH_API_URL/api/operate/namespaces/system/sites/<site>/vpm/debug/global/health" | jq .Exec — الطبقة المُتميّزة أمر واحد في هذه النسخة
Section titled “Exec — الطبقة المُتميّزة ”نقطة نهاية منفصلة، والطبقة مُفرَضة وليست إرشادية: فـ exec يرفض أمرًا من
ExecUser بنفس رسالة command not supported. وكل عضو فيها إمّا يُغيّر العقدة
أو يقرأ علامة حالة.
في النسخة التي يشغّلها هذا المستأجر، تحتوي الطبقة على ip-link-set فقط. أما النسخ
الأحدث فتضيف systemctl-restart-NetworkManager وsystemctl-restart-crio
وsystemctl-restart-kubelet وsystemctl-start-crio-prune وثلاثة أوامر
marker-exists-*.
إيجاد أسماء الموقع والعقدة
Section titled “إيجاد أسماء الموقع والعقدة”اسم العقدة هو اسم جهاز Azure الافتراضي، وlist-service طريقة رخيصة لتأكيده
جنبًا إلى جنب مع الخدمات العاملة عليه:
curl -sS -H "Authorization: APIToken $XCSH_API_TOKEN" \ "$XCSH_API_URL/api/operate/namespaces/system/sites/<site>/vpm/debug/global/list-service" \ | jq -r '[.service[].node] | unique'["", "f5-xc-ce-vm-01"]تُبلّغ بعض الخدمات عن اسم عقدة فارغ، لذا فإن السلسلة الفارغة في تلك القائمة هي أثر من آثار
الاستجابة وليست عقدة ثانية. كما أن list-service ليس ضمن كتالوج الأوامر الـ 34:
فهو نقطة نهاية global لا يعلن عنها الكتالوج، ولذلك يُوثَّق هنا
وليس في مرجع الأوامر.
إعادة إنتاج عمليات الالتقاط في هذا المستودع
Section titled “إعادة إنتاج عمليات الالتقاط في هذا المستودع”كل صفحة أمر تُضمّن مخرجات تم التقاطها بواسطة scripts/capture-sitecli.sh، الذي
يُنفّذ القواعد الثلاث المذكورة أعلاه.
-
وجّهه إلى مستأجر. يقرأ
XCSH_API_URLوXCSH_API_TOKEN، أو يعود إلى سياقxcshالنشط. -
حدّث الكتالوج وتأكّد من أن العقدة لم تتغيّر من تحت التوثيق:
Terminal window bash scripts/capture-sitecli.sh --checkهذا يقارن الكتالوج المُودَع ونسخة البرنامج فقط. ويُبلّغ عن تغيّر النسخة بشكل منفصل عن الأوامر المُضافة أو المحذوفة.
-
أعِد الالتقاط عندما تريد أدلّة حديثة:
Terminal window bash scripts/capture-sitecli.sh