- Startseite
- Multi-Cloud-Netzwerk
- Customer Edge diagnostics
- Reaching a Customer Edge
- Debug-API
Debug-API
Aufgenommen am 28.07.2026 von einer CE dieses Deployments. sitecli/capture-manifest.json
hält fest, welcher Knoten verwendet wurde, und scripts/capture-sitecli.sh --check überprüft die
Befehlsoberfläche erneut gegen eine aktive CE.
Die vpm/debug-API führt Site-CLI-Befehle auf einem registrierten Knoten aus und gibt deren
Ausgabe zurück. Alles Nachfolgende wurde gegen einen aktiven Knoten ermittelt; nichts davon ist
offiziell veröffentlicht.
Der Befehlskatalog beschreibt sich selbst
Abschnitt betitelt „Der Befehlskatalog beschreibt sich selbst“Fragen Sie den Knoten ab, was er unterstützt, indem Sie an exec-user POSTen und den Schlüssel
command auslassen:
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 .Die Antwort ist ein JSON-Objekt, dessen Schlüssel die Befehlsnamen sind:
{ "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)"]}Jeder Eintrag hat die Form [category, tier, exampleArgument?, scope?], und diese Felder sind
keine Dokumentation – sie legen fest, wie der Befehl aufgerufen werden muss.
Drei Transportwege, ausgewählt durch den Katalogeintrag
Abschnitt betitelt „Drei Transportwege, ausgewählt durch den Katalogeintrag“| Bedingung | Methode und Pfad | Body | Rückgabe |
|---|---|---|---|
scope ist GLOBAL | GET .../vpm/debug/global/<cmd> | keiner | JSON |
tier ist ExecUser | POST .../vpm/debug/<node>/exec-user | command-Array | Text |
tier ist Exec | POST .../vpm/debug/<node>/exec | command-Array | Text |
ExecUser – die schreibgeschützte Ebene 31 Befehle
Abschnitt betitelt „ExecUser – die schreibgeschützte Ebene “Der Regelfall. Übergeben Sie den Befehl und seine Argumente als Array, den Befehlsnamen zuerst:
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 ..." }Argumente sind separate Array-Elemente, nicht eine einzelne Zeichenkette:
{ "command": ["journalctl", "-u", "vpm", "-n", "200"] }GLOBAL – standortweit und ein völlig anderer Transportweg 2 Befehle
Abschnitt betitelt „GLOBAL – standortweit und ein völlig anderer Transportweg “health und diagnosis sind die einzigen beiden. Es handelt sich um GET-Anfragen an einen global-Pfad,
sie nehmen keine Argumente an und geben strukturiertes JSON anstelle von Terminaltext zurück.
curl -sS -H "Authorization: APIToken $XCSH_API_TOKEN" \ "$XCSH_API_URL/api/operate/namespaces/system/sites/<site>/vpm/debug/global/health" | jq .Exec – die privilegierte Ebene 1 Befehl in diesem Build
Abschnitt betitelt „Exec – die privilegierte Ebene “Ein separater Endpunkt, und die Ebene wird erzwungen und nicht nur empfohlen: exec weist
einen ExecUser-Befehl mit derselben Meldung command not supported ab. Jedes Mitglied
verändert entweder den Knoten oder liest einen Zustandsmarker.
Im Build, den dieser Tenant ausführt, enthält die Ebene ausschließlich ip-link-set. Neuere Builds
ergänzen systemctl-restart-NetworkManager, systemctl-restart-crio,
systemctl-restart-kubelet, systemctl-start-crio-prune und drei
marker-exists-*-Befehle.
Die Site- und Knotennamen finden
Abschnitt betitelt „Die Site- und Knotennamen finden“Der Knotenname ist der Azure-VM-Name, und list-service ist eine günstige Möglichkeit, ihn
zusammen mit den darauf laufenden Diensten zu bestätigen:
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"]Einige Dienste melden einen leeren Knotennamen, daher ist eine leere Zeichenkette in dieser Liste ein Artefakt der
Antwort und kein zweiter Knoten. list-service ist außerdem nicht im Katalog mit 34 Befehlen enthalten:
es ist ein global-Endpunkt, den der Katalog nicht ausweist, weshalb er hier dokumentiert ist
und nicht in der Befehlsreferenz.
Die Captures dieses Repositorys reproduzieren
Abschnitt betitelt „Die Captures dieses Repositorys reproduzieren“Jede Befehlsseite bindet Ausgaben ein, die von scripts/capture-sitecli.sh aufgenommen wurden, welches
alle drei oben genannten Regeln umsetzt.
-
Richten Sie es auf einen Tenant. Es liest
XCSH_API_URLundXCSH_API_TOKENoder greift auf den aktivenxcsh-Kontext zurück. -
Aktualisieren Sie den Katalog und bestätigen Sie, dass sich der Knoten nicht unter der Dokumentation verändert hat:
Terminal-Fenster bash scripts/capture-sitecli.sh --checkDies vergleicht ausschließlich den committeten Katalog und den Software-Build. Eine Build-Änderung wird getrennt von hinzugefügten oder entfernten Befehlen gemeldet.
-
Nehmen Sie erneut auf, wenn Sie frische Belege möchten:
Terminal-Fenster bash scripts/capture-sitecli.sh