診断と有用性について
Cisco NX-OSは、Netconf、Restconf、gNMI/gNOI、テレメトリなどの幅広いプロトコルインターフェイスを介して、モデル駆動型プログラマビリティ(MDP)をサポートします。実際、これらのインターフェイスは、共通の基盤となる YANG および DME/ CLIインフラストラクチャを中心に動作します。ユーザーは、一般的に使用される一群のユーティリティにより、動作を診断できます。
この製品のドキュメントセットは、偏向のない言語を使用するように配慮されています。このドキュメントセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブ ランゲージの取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
この章は次のトピックで構成されています。
Cisco NX-OSは、Netconf、Restconf、gNMI/gNOI、テレメトリなどの幅広いプロトコルインターフェイスを介して、モデル駆動型プログラマビリティ(MDP)をサポートします。実際、これらのインターフェイスは、共通の基盤となる YANG および DME/ CLIインフラストラクチャを中心に動作します。ユーザーは、一般的に使用される一群のユーティリティにより、動作を診断できます。
このセクションでは、一般的に使用される show コマンドについて説明します。スイッチの実行状態を確認するために使用できます。
項目 |
コマンド |
使用法 |
---|---|---|
netconf |
show running-config netconf |
netconf 構成の表示 |
show netconf nxsdk event-history {events | errors} |
イベント履歴の表示 |
|
show tech-support netconf |
netconf テクニカルサポートの収集 |
|
show netconf internal details |
内部状態の確認 |
|
show netconf internal tls service |
TLS サーバの状態の確認 |
|
show netconf internal tls session [all] { summary | detail } |
現在/過去の TLS セッションのリスト表示 |
|
restconf |
show running-config | grep restconf |
restconf 構成の表示 |
show netconf nxsdk event-history {events | errors} |
イベント履歴の表示 |
|
grpc |
show running-config grpc |
grpc 構成の表示 |
show grpc nxsdk event-history {events | errors} |
イベント履歴の表示 |
|
show tech-support grpc |
grpc テクニカルサポートの収集 |
|
gnmi |
show grpc gnmi service statistics |
grpc サーバの状態の確認 |
show grpc gnmi rpc [all] { summary | detail } |
現在/過去の gNMIサブスクリプションのリスト表示 |
|
show grpc gnmi transactions |
List gNMI Get/Set |
|
show grpc internal gnmi subscription… |
内部サブスクリプションデータの表示 |
|
show grpc internal gnmi mtx {sessions | statistics subscriptions} |
内部インフラログの表示 |
|
gnoi |
show grpc gnoi service statistics |
grpc サーバの状態の確認 |
show grpc internal gnoi rpc [all] {summary | detail} |
現在/過去の gNOI 接続のリスト表示 |
|
openconfig |
show running-config openconfig |
openconfig 構成の表示 |
show openconfig nxsdk event-history {events | errors} |
イベント履歴の表示 |
|
dme |
show system internal dme transaction history |
DME トランザクションの確認 |
show tech-support dme |
DME テクニカルサポートの収集 |
このセクションでは、デバッグログを有効にして収集する方法について説明します。
Netconf、Restconf、および gRPC エージェントの場合、次の方法でログを収集できます。
show コマンド
これは、エージェント イベントを表示/確認する簡単な方法です。これらのコマンドは、エージェントがクライアント接続とどのように対話するかを確認するのに役立ちます。このログはメモリ内ログであるため、比較的短い履歴しか保持できません。
show netconf nxsdk event-history {events | errors}
show restconf nxsdk event-history {events | errors}
show grpc nxsdk event-history {events | errors}
ログファイル
より長い履歴、またはエージェントを無効にした後のログを確認する場合は、 /volatile ディレクトリに保存されているログファイルを確認します。ユーザーには、スイッチの bash シェルにアクセスする権限が必要です。
/volatile/netconf-internal-log
grpc-internal-log
restconf-internal-log
YANG インフラログは、 /volatile ディレクトリに保存されます。ユーザーには、スイッチの bash シェルにアクセスする権限が必要です。Cisco NX-OS では、Cisco NX-OS dev-ops ロールまたは Cisco NX-OS network-admin ロールに関連付けられたユーザ アカウントから Bash にアクセスできます。
/volatile/mtx-internal.netconf.log
mtx-internal.grpc.log
mtx-internal.restconf.log
DME インフラログは、/nxos/dme_logs ディレクトリに保存されます。ユーザーには、スイッチの bash シェルにアクセスする権限が必要です。「https://developer.cisco.com/site/cisco-nexus-nx-api-references/」を参照してください。
/nxos/dme_logs/svc_ifc_policyelem.<pid>.log
Cisco NX-OSは、パフォーマンスを考慮に入れて、デフォルトでは非常に限定されたログのみを有効にします。
ユーザーは、 /opt/mtx/conf/mtxlogger.cfgを編集して、詳細さを変更できます。
コンフィギュレーション ファイルの構造は次のとおりです。
<config name="nxos-device-mgmt">
<container name="mgmtConf">
<container name="logging">
<leaf name="enabled" type="boolean" default="false"></leaf>
<leaf name="allActive" type="boolean" default="false"></leaf>
<container name="format">
<leaf name="content" type="string" default="$DATETIME$ $COMPONENTID$ $TYPE$: $MSG$"></leaf>
<container name="componentID">
<leaf name="enabled" type="boolean" default="true"></leaf>
</container>
<container name="dateTime">
<leaf name="enabled" type="boolean" default="true"></leaf>
<leaf name="format" type="string" default="%y%m%d.%H%M%S"></leaf>
</container>
<container name="fcn">
<leaf name="enabled" type="boolean" default="true"></leaf>
<leaf name="format" type="string" default="$CLASS$::$FCNNAME$($ARGS$)@$LINE$"></leaf>
</container>
</container>
<container name="dest">
<container name="console">
<leaf name="enabled" type="boolean" default="false"></leaf>
</container>
<container name="file">
<leaf name="enabled" type="boolean" default="false"></leaf>
<leaf name="name" type="string" default="mtx-internal.log"></leaf>
<leaf name="location" type="string" default="./mtxlogs"></leaf>
<leaf name="mbytes-rollover" type="uint32" default="10"></leaf>
<leaf name="hours-rollover" type="uint32" default="24"></leaf>
<leaf name="startup-rollover" type="boolean" default="false"></leaf>
<leaf name="max-rollover-files" type="uint32" default="10"></leaf>
</container>
</container>
<list name="logitems" key="id">
<listitem>
<leaf name="id" type="string"></leaf>
<leaf name="active" type="boolean" default="true"></leaf>
</listitem>
</list>
</container>
</container>
</config>
<list> タグは、<componentID> によってログフィルタを定義します。
次の表では、コンテナとそのリーフの一部について説明します。
コンテナ |
コンテナの説明 |
含まれるコンテナ |
含まれるリーフと説明 |
||
---|---|---|---|---|---|
logging |
すべてのロギングデータタイプが含まれます。 |
|
enabled:ロギングがオンかオフかを決定するブール値。デフォルトはオフです。 allActive:ロギング用に定義されたすべてのロギング項目をアクティブにするブール値。デフォルトはオフ |
||
形式 |
ログメッセージのフォーマット情報を格納します。 |
|
content:ログメッセージに含まれるデータ型をリストする文字列。内容:
$MSG$:実際のログ メッセージ テキストを含めます。 |
||
componentID |
ログが記録されたコンポーネントの名前です。 |
該当なし |
enabled:ログメッセージにコンポーネント ID を含めるかどうかを決定するブール値。デフォルトは「true」です。"false" の値は、ログメッセージに "" 文字列を返します。 |
||
dateTime |
ログメッセージの日付または時刻。 |
該当なし |
enabled:ログメッセージに日付または時刻の情報を含めるかどうかのブール値。デフォルトはイネーブルです。 format:ログメッセージに含める値の文字列。%y%m%d.%H%M%Sの形式。 |
||
dest |
宛先ロガーの構成設定を保持します。 |
console:宛先コンソール。許可されるのは 1 つだけです。 file:接続先ファイルです。複数ファイルが許可されます。 |
該当なし |
||
コンソール |
接続先コンソール。 |
該当なし |
enabled:コンソールのロギングが有効かどうかを決定するブール値。デフォルトは「false」です。 |
||
ファイル |
宛先ファイルの設定を決定します。 |
該当なし |
enabled:宛先が有効かどうかを決定するブール値。デフォルトは「false」です。 name:宛先ログファイルの文字列。デフォルトは「mtx-internal.log」 location:宛先ファイルパスの文字列。デフォルトは「./mtxlogs」です。 mbytes-rollover:システムが最も古いデータを上書きする前のログファイルの長さを決定する uint32。デフォルトは 10 M バイトです。 hours-rollover:時間単位のログファイルの長さを決定する uint32。デフォルトは 24 時間です。 startup-rollover:エージェントの起動時または再起動時にログファイルをロールオーバーするかどうかを決定するブール値。デフォルト値は「false」です。 max-rollover-files:ロールオーバー ファイルの最大数を決定する uint32。 max-rollover-files の値を超えると、最も古いファイルが削除されます。デフォルト値は 10 です。 |
次に、デフォルトでインストールされている設定を含む設定ファイルを示します。
<config name="nxos-device-mgmt">
<container name="mgmtConf">
<container name="logging">
<leaf name="enabled" type="boolean" default="false">true</leaf>
<leaf name="allActive" type="boolean" default="false">false</leaf>
<container name="format">
<leaf name="content" type="string" default="$DATETIME$ $COMPONENTID$ $TYPE$: $MSG$">$DATETIME$ $COMPONENTID$ $TYPE$ $SRCFILE$ @ $SRCLINE$ $FCNINFO$:$MSG$</leaf>
<container name="componentID">
<leaf name="enabled" type="boolean" default="true"></leaf>
</container>
<container name="dateTime">
<leaf name="enabled" type="boolean" default="true"></leaf>
<leaf name="format" type="string" default="%y%m%d.%H%M%S"></leaf>
</container>
<container name="fcn">
<leaf name="enabled" type="boolean" default="true"></leaf>
<leaf name="format" type="string" default="$CLASS$::$FCNNAME$($ARGS$)@$LINE$"></leaf>
</container>
</container>
<container name="dest">
<container name="console">
<leaf name="enabled" type="boolean" default="false">true</leaf>
</container>
<container name="file">
<leaf name="enabled" type="boolean" default="false">true</leaf>
<leaf name="name" type="string" default="mtx-internal.log"></leaf>
<leaf name="location" type="string" default="./mtxlogs">/volatile</leaf>
<leaf name="mbytes-rollover" type="uint32" default="10">50</leaf>
<leaf name="hours-rollover" type="uint32" default="24">24</leaf>
<leaf name="startup-rollover" type="boolean" default="false">true</leaf>
<leaf name="max-rollover-files" type="uint32" default="10">10</leaf>
</container>
</container>
<list name="logitems" key="id">
<listitem>
<leaf name="id" type="string">*</leaf>
<leaf name="active" type="boolean" default="false">false</leaf>
</listitem>
<listitem>
<leaf name="id" type="string">SYSTEM</leaf>
<leaf name="active" type="boolean" default="true">true</leaf>
</listitem>
<listitem>
<leaf name="id" type="string">LIBUTILS</leaf>
<leaf name="active" type="boolean" default="true">true</leaf>
</listitem>
<listitem>
<leaf name="id" type="string">MTX-API</leaf>
<leaf name="active" type="boolean" default="true">true</leaf>
</listitem>
<listitem>
<leaf name="id" type="string">Model-*</leaf>
<leaf name="active" type="boolean" default="true">true</leaf>
</listitem>
<listitem>
<leaf name="id" type="string">Model-Cisco-NX-OS-device</leaf>
<leaf name="active" type="boolean" default="true">false</leaf>
</listitem>
<listitem>
<leaf name="id" type="string">Model-openconfig-bgp</leaf>
<leaf name="active" type="boolean" default="true">false</leaf>
</listitem>
<listitem>
<leaf name="id" type="string">INST-MTX-API</leaf>
<leaf name="active" type="boolean" default="true">false</leaf>
</listitem>
<listitem>
<leaf name="id" type="string">INST-ADAPTER-NC</leaf>
<leaf name="active" type="boolean" default="true">false</leaf>
</listitem>
<listitem>
<leaf name="id" type="string">INST-ADAPTER-RC</leaf>
<leaf name="active" type="boolean" default="true">false</leaf>
</listitem>
<listitem>
<leaf name="id" type="string">INST-ADAPTER-GRPC</leaf>
<leaf name="active" type="boolean" default="true">false</leaf>
</listitem>
</list>
</container>
</container>
</config>
10.4(2)F 以降、CLI を使用して、プロセスを再起動せずに上記のロギング構成を動的に変更することができます。これらはエージェント EXEC ごとに行えます。構成そのものではないため、現在の操作に影響を与えることなく変更できます。
コマンドまたはアクション | 目的 | |
---|---|---|
ステップ 1 |
[no] debug grpc mtx enable-all |
これは、すべてのログを有効にする便利な cli です。 |
ステップ 2 |
[no] debug grpc mtx level <level> 例:
|
ロギングレベルを切り替えます:エラー(error)、警告(warning)、情報(info)、デバッグ(debug)から選択できます。 デフォルトのレベルは info です。 |
ステップ 3 |
[no] debug grpc mtx item <item> 例:
|
特定の項目のロギングを切り替えます。これは自由形式の文字列で、 show grpc internal mtx debug を使用して使用可能な項目を表示します。 |
次の show cli は、現在のロギング構成を表示します。
show grpc internal mtx debug
Example:
Log enabled : 1
All active : 0
Log Level : Debug
Log items :
* : 0
DtxUserFunc : 0
INST-ADAPTER : 0
INST-ADAPTER-GNMI : 0
INST-ADAPTER-GNOI : 0
INST-ADAPTER-GRPC : 1
INST-ADAPTER-NC : 1
INST-ADAPTER-RC : 1
INST-ADAPTER-TM : 0
INST-MTX-API : 1
LIBUTILS : 1
MTX-API : 1
MTX-ActionMgr : 0
MTX-Coder : 0
MTX-Dy-EvtMgr : 1
MTX-EvtMgr : 1
MTX-RbacMgr : 0
MTXEXPR : 0
MTXItem : 0
MTXNetConfMessage : 0
MTXOperation : 0
MTXRestConfMessage : 0
MTXgNMIMessage : 0
Model-* : 1
Model-Cisco-NX-OS-device : 1
Model-openconfig-bgp : 0
RPC : 0
SYSTEM : 1
TM-ADPT : 0
TM-ADPT-JSON : 0
このセクションでは、発生しやすい問題をトリアージするためのいくつかの手順を示します。
ユーザーのプログラミングクライアントがスイッチに接続できない場合は、次の点を確認します。
実行構成をチェックして、機能が有効になっているかどうかを確認します。
個々のエージェントの show コマンドをチェックして、サーバが実行されていることを確認します。
IP/ポートをチェックして、接続がファイアウォールなどによって制限されていないことを確認します。
クライアントが正しいユーザー名/パスワードを送信することを確認します。
証明書ベースの認証を使用する場合は、トラストポイントがスイッチに正しく構成されていること、およびクライアント証明書が一致し、期限切れになっていないことを確認します。
読み取り/書き込み操作に関連するネイティブ openconfig YANG に問題がある場合は、次の点を確認してください。
「書き込み」操作の場合は、DME トランザクションを確認して障害の詳細を確認します。
同等の DME REST 要求を送信し、同じ問題があるかどうかを確認します。
ネイティブ openconfig YANG の読み取り/書き込みに問題がある場合は、次のことを確認します。
feature openconfig が有効になっているかどうかを確認します。
公開されている YANG との相違点をチェックして、サポートステータスを確認します。
write 操作の場合は、DME トランザクションを確認して障害の詳細を確認します。
テレメトリは、「feature telemetry」構成を介して YANG およびその他のデータソースを収集するために使用されます。テレメトリは、「feature grpc」を介した gNMI 登録にも使用されます。トラブルシューティングの手順は、使用シナリオによって異なります。
デバッグ ログ
デバッグログは、次の方法で表示できます。
show telemetry internal event history { errors | events }
show grpc nxsdk event-history { events | errors }
データ/イベント収集の問題:
show コマンドで、失敗した、またはスキップされた収集を確認します。
show telemetry data collector detail
show telemetry event collector {errors | stats}
show grpc internal gnmi subscription statistics
収集時間またはサイズの問題:
次の show コマンドを使用して、収集のサイズと時間を確認します。
show telemetry control database
show grpc internal gnmi rpc subscription-data
トランスポートの問題:
次の show コマンドを使用して、トランスポートの問題を確認します。トランスポートの問題は、 feature telemetry シナリオにのみ影響することに注意してください。
show telemetry transport <num> stats | errros