- ホーム
- マルチクラウドネットワーク
- Customer Edge diagnostics
- Reaching a Customer Edge
- デバッグ API
デバッグ API
このデプロイメントの 1 台の CE から 2026-07-28 に取得しました。sitecli/capture-manifest.json
にどのノードかが記録されており、scripts/capture-sitecli.sh --check により実行中の CE に対して
コマンド一覧を再検証できます。
vpm/debug API は登録済みノード上で Site CLI コマンドを実行し、その出力を返します。
以下の内容はすべて稼働中のノードに対して確認したものであり、いずれも上流では
公開されていません。
コマンドカタログは自己記述型です
Section titled “コマンドカタログは自己記述型です”command キーを省略して exec-user に POST することで、ノードがサポートする内容を
問い合わせられます:
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?] であり、これらのフィールドは
ドキュメントではなく、コマンドをどのように呼び出さなければならないかを決定します。
カタログエントリによって選択される 3 つのトランスポート
Section titled “カタログエントリによって選択される 3 つのトランスポート”| 条件 | メソッドとパス | ボディ | 戻り値 |
|---|---|---|---|
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 — サイト全体を対象とし、まったく異なるトランスポート 2 コマンド
Section titled “GLOBAL — サイト全体を対象とし、まったく異なるトランスポート ”health と diagnosis の 2 つのみです。これらは global パスへの GET リクエストで、
引数を取らず、ターミナルテキストではなく構造化された JSON を返します。
curl -sS -H "Authorization: APIToken $XCSH_API_TOKEN" \ "$XCSH_API_URL/api/operate/namespaces/system/sites/<site>/vpm/debug/global/health" | jq .Exec — 特権ティア このビルドでは 1 コマンド
Section titled “Exec — 特権ティア ”別のエンドポイントであり、ティアは助言的なものではなく強制されます: exec は
同じ command not supported メッセージで ExecUser コマンドを拒否します。所属する
すべてのコマンドは、ノードを変更するか、状態マーカーを読み取るかのいずれかです。
このテナントが稼働しているビルドでは、このティアには ip-link-set のみが含まれます。
より新しいビルドでは systemctl-restart-NetworkManager、systemctl-restart-crio、
systemctl-restart-kubelet、systemctl-start-crio-prune および 3 つの
marker-exists-* コマンドが追加されます。
サイト名とノード名の確認方法
Section titled “サイト名とノード名の確認方法”ノード名は Azure VM 名であり、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"]一部のサービスは空のノード名を報告するため、このリスト内の空文字列は 2 台目のノードではなく
レスポンスの副産物です。また list-service は 34 コマンドのカタログには含まれていません:
これはカタログが公開していない global エンドポイントであり、そのためここに記載されており、
コマンドリファレンスには含まれていません。
このリポジトリのキャプチャの再現
Section titled “このリポジトリのキャプチャの再現”各コマンドページには scripts/capture-sitecli.sh によって取得された出力が埋め込まれており、
このスクリプトは上記 3 つのルールすべてを実装しています。
-
テナントを指定します。
XCSH_API_URLとXCSH_API_TOKENを読み取るか、 アクティブなxcshコンテキストにフォールバックします。 -
カタログを更新し、ドキュメントの背後でノードが変更されていないことを確認します:
Terminal window bash scripts/capture-sitecli.sh --checkこれはコミット済みのカタログとソフトウェアビルドのみを比較します。ビルドの変更は、 コマンドの追加または削除とは別に報告されます。
-
新しい証跡が必要な場合は再キャプチャします:
Terminal window bash scripts/capture-sitecli.sh