ACI の troubleshooting をする際、Fault のチェックは基本であり且つ重要です。Fault の確認方法、Fault ログの取得方法は複数あるので、このドキュメントではそれらの方法を解説します。具体的には、GUI, CLI, REST API の3パターンについてそれぞれ解説します。
1. GUI での確認・ログ取得
GUI で system 全体の fault を確認する場合は System -> Faults で可能です (下図) 。さらに、"↓"アイコンをクリックすると XML 形式でFault ログをダウンロードすることが可能です。

ある Tenant で発生している全 Fault を確認する場合は、Tenants > (対象のTenant) > (Tenant名) を選択し右ペインの Faultsタブ を開きます(下図)。ここでも上記と同様、"↓"アイコンをクリックすると XML形式で Fault ログをダウンロードすることが可能です。

上記 GUI 画面上の一覧から Fault をダブルクリックすると、以下のように詳細が表示されます。Troubleshuutingタブ を開くと "Recommended Action" に取るべきアクションが書かれており、Troubleshooting に役立つ情報となっています。

また、Faultsタブの右にある Historyタブを選択すると、Fault の History ログが確認できます (下図) 。History ログにはすでに解消されている Fault も表示されるため、過去に起こった事象や複数回起こっている事象の解析に便利です。ここでも、"↓"アイコンをクリックすると XML 形式で Fault ログをダウンロードすることが可能です。

今回は System全体 と 特定の Tenant で発生している Fault の確認・ログ取得について解説しましたが、Appilication Profile、L3Outといった各オブジェクトごとにも同様に Fault の確認・ログ取得が可能です。
2. CLI での確認・ログ取得
2-1.showコマンド
上記で確認していることと同等の確認は show コマンドでも可能です。 system 全体に対しては、APIC の CLI で以下のコマンドを実行すると確認できます。
# show faults detail
特定の fault のみ表示させたい場合は以下のように code オプションでfault code を指定します。その他、controller/leaf/spine などのオプションで、特定 node についてのみ表示させることも可能です。
apic1# show faults detail code F0467 Code : F0467 Severity : minor Last Transition : 2022-08-04T15:05:02.019+08:00 Lifecycle : raised Count Fault Occurred : 1 DN : topology/pod-1/node-701/local/svc-policyelem- id-0/uni/epp/fv-[uni/tn-natakesh_test/ap-AP/epg-test_EPG_01] /node-701/stpathatt-[eth1/1]/nwissues/fault-F0467 Description : Configuration failed for uni/tn-natakesh_test/ap-AP/epg- test_EPG_01 node 701 eth1/1 due to Invalid Path Configuration, debug message: invalid-path: vlan-2491 :There is no domain, associated with both EPG and Port, that has required VLAN; Type : config Cause : configuration-failed Change set : configQual:invalid-path, configSt:failed-to-apply, debugMessage:invalid-path: vlan-2491 :There is no domain, associated with both EPG and Port, that has required VLAN;, temporaryError:no Created : 2022-08-04T15:02:53.566+08:00 Original Severity : minor Previous Severity : minor Highest Severity : minor Acknowledgement Status : no
|
history ログに関しては、以下のコマンドで可能です。また、上記と同様のオプションにより出力を絞り込むことも可能です。
※ history ログは大量の出力となりますので、オプションで必要なものに限って出力する方法が推奨されます。
# show faults detail history
2-2. moquery コマンド
moquery コマンドで fault に関する MO をチェックすることも可能です。出力結果は若干変わりますが、2-1. で解説した show コマンドの例とほぼ同様の内容を確認可能です。system 全体の fault は fault:Inst という class を用い、以下のコマンドにより確認できます。
# moquery -c fault.Inst
こちらも特定の fault code のみに絞り込む、などといったことが filter (-f オプション) を使用することで可能です。
apic1# moquery -c fault.Inst -f 'fault.Inst.code=="F0467"' Total Objects shown: 14
# fault.Inst code : F0467 ack : no alert : no annotation : cause : configuration-failed changeSet : configQual:invalid-path, configSt:failed-to-apply, debugMessage:invalid-path: vlan-2491 :There is no domain, associated with both EPG and Port, that has required VLAN;, temporaryError:no childAction : created : 2022-08-04T15:02:53.566+08:00 delegated : yes descr : Configuration failed for uni/tn-natakesh_test/ap-AP/epg-test_EPG_01 node 701 eth1/1 due to Invalid Path Configuration, debug message: invalid-path: vlan-2491 :There is no domain, associated with both EPG and Port, that has required VLAN; dn : topology/pod-1/node-701/local/svc-policyelem-id-0/uni/epp/fv-[uni/tn-natakesh_test/ap-AP/epg-test_EPG_01]/node-701/stpathatt-[eth1/1]/nwissues/fault-F0467 domain : tenant extMngdBy : undefined highestSeverity : minor lastTransition : 2022-08-04T15:05:02.019+08:00 lc : raised modTs : never occur : 1 origSeverity : minor prevSeverity : minor rn : fault-F0467 rule : fv-nw-issues-config-failed severity : minor status : subject : management title : type : config uid : userdom : all
|
history に関しては fault:Record という class が保持しています。こちらも filter で特定の fault code 等に絞り込むことができます。
※ fault:Record (history ログ) は大量の出力となりますので、オプションで必要なものに限って出力する方法が推奨されます。
# moquery -c fault.Record
apic2# moquery -c fault.Record -f 'fault.Record.code=="F0467"'
Total Objects shown: 1997
# fault.Record id : 4294974391 ack : no affected : uni/tn-t-scale/ap-anp1/epg-epg2 cause : configuration-failed changeSet : childAction : code : F0467 created : 2016-03-11T01:35:26.845+09:00 delegated : no delegatedFrom : topology/pod-1/node-102/local/svc-policyelem-id-0/uni/epp/fv-[uni/tn-t-scale/ap-anp1/epg-epg2]/node-102/stpathatt-[eth1/19]/nwissues descr : Configuration failed for uni/tn-t-scale/ap-anp1/epg-epg2 node 102 eth1/19 due to Invalid Path Configuration,Invalid VLAN Configuration dn : subj-[uni/tn-t-scale/ap-anp1/epg-epg2]/fr-4294974391 domain : tenant highestSeverity : minor ind : creation lc : soaking modTs : never occur : 1 origSeverity : minor prevSeverity : minor rn : fr-4294974391 rule : fv-nw-issues-config-failed severity : minor status : subject : management type : config
|
3. REST API でのログ取得
REST API の GET request を用いて fault ログを取得することも可能です。XML または JSON 形式で取得可能で、全 fault ログは以下の URL をGET することで取得できます。
※ moquery -c fault.Inst と得られる情報は同じです。
https:// <APIC IP>/api/class/faultInst.xml または https://<APIC IP>/api/class/faultInst.json
filter をかける場合は query-target-filter を使います。CLI の項目と同様、Fault F0467 のみ表示させたい時は以下のように query-target-filter を指定します。
https://<APIC IP>/api/class/faultInst.json?query-target-filter=eq(faultInst.code,"F0467")
history ログ fault:Record についても fault:Inst と同様、以下のようにXML または JSON 形式で取得可能です。
※fault:Record は情報量が多くなるので、CLI の場合と同様に query-target-filter で必要なものだけ得る方法が推奨されます。
https://<APIC IP>/api/class/faultRecord.xml または https://<APIC IP>/api/class/faultRecord.json