通常 NSX はトランスポートノードを使用して、ネットワーク(オーバーレイまたは VLAN)とセキュリティの機能を実行します。また NSX は、ドランスポートノードとして “ESXi、ベアメタルサーバー、NSX Edge” をサポートします。
今回は ESXi トランスポートノードの状態の確認方法について共有したいと思います。
※ 本記事では、HOL (VMware Hands-on Labs : NSX 4.1.2.3) 環境における “ESXi トランスポートノードの状態確認” 内容をベースとしてあります。ご利用の環境によっては、本記事で紹介している表示内容などが異なる可能性があります。
トランスポートノードの状態の確認方法
- GUI での確認
- API での確認
- API : Postman 利用
- API : curl 利用
GUI での確認
通常、正常に稼働中の場合は、下記の通り “NSX Manager UI > System > Fabric (Hosts) > Clusters” より ESXi トランスポートノードの状態が確認可能です。

また、ESXi ホストの右側にある “View Details” をクリックすると、下記の通り Overview や Agent の状態なども確認可能です。


もし状態に変化があった際には、下記の通り UI 上の表示が変わります。

ちなみに、本記事では上記 Unknown 状態再現時に、対象の ESXi トランスポートノードに SSH 接続後、下記コマンドにて “netopa agent” および “nsx-sha” サービスを停止しています。(サービス停止後、約 5 分後に UI 上で Unknown 表示が反映されました。)
/etc/init.d/netopad stop

API での確認
NSX-T Data Center REST API ドキュメントに紹介されている “host-transport-nodes-aggstatus” を利用して、シンプルなトランスポートノードの状態情報が取得可能です。
本記事で利用する API :
# {site-id} および {enforcement-point-id} のデフォルト値は "default"
GET /policy/api/v1/infra/sites/{site-id}/enforcement-points/{enforcement-point-id}/host-transport-nodes-aggstatus
なお、トランスポートノード状態の種類は下記の通りです。
状態 | 説明 |
UP | 稼働しているトランスポートノード |
DEGRADED | 劣化したトランスポートノード # ノードはまだ動作しているものの、何らかの問題があって、最適な状態ではないことを示す |
DOWN | ダウンしているトランスポートノード |
UNKNOWN | 状態が不明なトランスポートノード # 下記 KB の通り ESXi トランスポートノードの状態が Unknown と表示されても、仮想マシンへの通信影響はないよう |
“There is no dataplane impact observed but the “Unknown” Node status may prevent upgrades due to health checks failing.”
KB:
One or multiple ESXi Transport Node show “Unknown” Node status in the NSX-T Manager UI
API : Postman 利用
Postman アプリを起動し、NSX Manager へアクセスできるように NSX Manager のユーザー名およびパスワードを入力します。
・Postman > Authorization > Type : “Basic Auth” 選択後、ユーザー名とパスワードを入力

その後、下記の通り設定を行い、API を実行します。
・①:GET を選択
・②:NSX Manager に対する下記の実行コマンドを入力
https://[NSX Manager FQDN or IP アドレス]/policy/api/v1/infra/sites/default/enforcement-points/default/host-transport-nodes-aggstatus
・③:[Send] ボタンにて API 実行
・④:API 実行結果を確認
正常な場合は、下記の通り “up_count” の値のみが、上がっています。(他の値は、すべて “0” 表示状態)

トランスポートノードの状態が Unknown となった場合は、下記の通り API 結果からもその状態が確認可能です。

API : curl 利用
上記と同じ内容が、下記の通り curl コマンドでも実行可能です。本記事では、NSX Manager へ SSH 接続後に API を実行していますが、NSX Manager へ SSH 接続が可能なクライアントからも実行可能です。
curl コマンド :
$ curl -k -u '[USERNAME]:[PASSWORD]' https://[NSX Mgr FQDN or IP アドレス]/policy/api/v1/infra/sites/default/enforcement-points/default/host-transport-nodes-aggstatus
例.curl コマンドの実行結果 :
{
"up_count" : 10,
"degraded_count" : 0,
"down_count" : 0,
"unknown_count" : 1
}

補足
NSX ドキュメントには、トランスポートノードの状態確認 API として “transport-node-status-report” が紹介されています。
GET /policy/api/v1/infra/sites/<site-id>/enforcement-points/<enforcement-point-id>/transport-node-status-report
上記 API を実行する場合、Postman 上では Headers タブ内の KEY:VALUE 情報に “Accept:application/octet-stream” を設定後、実行する必要があります。

上記 API を curl コマンドで実行する場合は、別途 -H オプションにて “Accept:application/octet-stream” を設定する必要があります。
$ curl -k -u '[USERNAME]:[PASSWORD]' -H "Accept:application/octet-stream" https://[NSX Mgr FQDN or IP アドレス]/policy/api/v1/infra/sites/default/enforcement-points/default/transport-node-status-report

なお、NSX API ドキュメントには API の実行結果がわかりやすい JSON 形式の “transport-node-status-report-json” の情報もあり、下記 curl コマンドにて実行可能です。
$ curl -k -u '[USERNAME]:[PASSWORD]' https://[NSX Mgr FQDN or IP アドレス]/policy/api/v1/infra/sites/default/enforcement-points/default/transport-node-status-report-json

以上、トランスポートノードの状態の確認方法でした。
本記事が、日々 NSX 環境を運用いただく方に、少しでもお役に立てれば嬉しいです。
[参考情報]
トランスポートノードの状態の確認
NSX-T Data Center REST API
One or multiple ESXi Transport Node show “Unknown” Node status in the NSX-T Manager UI
インターフェイスが停止しているとトランスポートノードの状態が劣化する