- Inicio
- Redes multinube
- Customer Edge diagnostics
- Reaching a Customer Edge
- API de depuración
API de depuración
Capturado el 2026-07-28 desde un CE de esta implementación. sitecli/capture-manifest.json
registra qué nodo, y scripts/capture-sitecli.sh --check vuelve a verificar la superficie
de comandos contra un CE en vivo.
La API vpm/debug ejecuta comandos de Site CLI en un nodo registrado y devuelve su
salida. Todo lo que aparece a continuación se estableció contra un nodo en vivo; nada de ello está
publicado en el origen.
El catálogo de comandos es autodescriptivo
Sección titulada «El catálogo de comandos es autodescriptivo»Pregunte al nodo qué admite haciendo un POST a exec-user con la clave command
omitida:
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 .La respuesta es un objeto JSON indexado por nombre de comando:
{ "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)"]}Cada entrada es [category, tier, exampleArgument?, scope?], y esos campos no son
documentación: determinan cómo debe invocarse el comando.
Tres transportes, elegidos por la entrada del catálogo
Sección titulada «Tres transportes, elegidos por la entrada del catálogo»| Condición | Método y ruta | Cuerpo | Devuelve |
|---|---|---|---|
scope es GLOBAL | GET .../vpm/debug/global/<cmd> | ninguno | JSON |
tier es ExecUser | POST .../vpm/debug/<node>/exec-user | array command | texto |
tier es Exec | POST .../vpm/debug/<node>/exec | array command | texto |
ExecUser — el nivel de solo lectura 31 comandos
Sección titulada «ExecUser — el nivel de solo lectura »El caso habitual. Pase el comando y sus argumentos como un array, con el nombre del comando primero:
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 ..." }Los argumentos son elementos separados del array, no una única cadena:
{ "command": ["journalctl", "-u", "vpm", "-n", "200"] }GLOBAL — de ámbito global del sitio, y con un transporte completamente distinto 2 comandos
Sección titulada «GLOBAL — de ámbito global del sitio, y con un transporte completamente distinto »health y diagnosis son los dos únicos. Son solicitudes GET a una ruta global,
no toman argumentos y devuelven JSON estructurado en lugar de texto de terminal.
curl -sS -H "Authorization: APIToken $XCSH_API_TOKEN" \ "$XCSH_API_URL/api/operate/namespaces/system/sites/<site>/vpm/debug/global/health" | jq .Exec — el nivel privilegiado 1 comando en esta compilación
Sección titulada «Exec — el nivel privilegiado »Un endpoint separado, y el nivel se aplica de forma estricta en lugar de ser orientativo: exec rechaza
un comando ExecUser con el mismo mensaje command not supported. Cada miembro
o modifica el nodo o lee un marcador de estado.
En la compilación que ejecuta este tenant, el nivel contiene únicamente ip-link-set. Las compilaciones más recientes
añaden systemctl-restart-NetworkManager, systemctl-restart-crio,
systemctl-restart-kubelet, systemctl-start-crio-prune y tres
comandos marker-exists-*.
Encontrar los nombres del sitio y del nodo
Sección titulada «Encontrar los nombres del sitio y del nodo»El nombre del nodo es el nombre de la VM de Azure, y list-service es una forma económica de confirmarlo
junto con los servicios que se ejecutan en él:
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"]Algunos servicios informan un nombre de nodo vacío, por lo que una cadena vacía en esa lista es un artefacto de
la respuesta y no un segundo nodo. list-service tampoco está en el catálogo de 34 comandos:
es un endpoint global que el catálogo no anuncia, razón por la cual se documenta aquí
y no en la referencia de comandos.
Reproducir las capturas de este repositorio
Sección titulada «Reproducir las capturas de este repositorio»Cada página de comando incrusta la salida capturada por scripts/capture-sitecli.sh, que
implementa las tres reglas anteriores.
-
Apúntelo a un tenant. Lee
XCSH_API_URLyXCSH_API_TOKEN, o recurre al contexto activo dexcsh. -
Actualice el catálogo y confirme que el nodo no ha cambiado por debajo de la documentación:
Ventana de terminal bash scripts/capture-sitecli.sh --checkEsto compara únicamente el catálogo confirmado y la compilación de software. Informa de un cambio de compilación por separado de los comandos añadidos o eliminados.
-
Vuelva a capturar cuando quiera evidencia reciente:
Ventana de terminal bash scripts/capture-sitecli.sh