本ドキュメントでは、設定変更ログ、Eventログ、FaultログのCLIからの取得方法 について説明します。
※ ACI Version 3.2x での確認結果をもとに掲載しております。
1. 各種ログの概要と取得目的
設定変更ログ/Audit Log (class: aaaModLR)
イベントログ/Event Log (class: eventRecord)
Fault Info (class: faultInfo)
- その時点で発生しているFault情報が出力されます。
Fault Record (class: faultRecord)
これらのログをCLIからまとめて取得いただくことで、事象が発生した日時、Event、
Faultコードをもとに時系列を遡ってトラブルシュートを行うことが可能です。
※Faultログについては、GUI、CLI、特定 Fault code指定、RESTAPIでの取得方法に
ついては fault ログの取得も参照ください。
2. ログ取得方法 (一般的なトラブルシュートでの取得例)
2-1. APICにログインし、CLIで bash を入力
2-2. tmp ディレクトリへ移動 (cd /tmp)
2-3. 以下の icurl コマンドを 1行ずつ入力していきます
※ jsonで取得する場合は、拡張子xmlをjsonに変更して取得してください。
※ aaaModLR, faultRecord, eventRecord は過去データ全てを取得するとサイズが大きいため、この例では最新の100,000件を抽出しています。
100,000件以上を抽出しようとするとサイズが大きすぎるためエラーになる場合があります。基本的には 100,000件で十分です。
取得例:(クリックすると拡大します)

2-4. tmp ディレクトリ配下に xmlファイルが4つ生成されたことが確認できます

2-5. これらのファイルをダウンロードいただき、APIC上でログ解析を行ってください。
ダウンロード方法は下記3及び4を、整形方法は下記5 を参照ください。
3. File Download/Upload SCP・SFTP
・ファイルをAPICからダウンロードする場合は、ご使用の端末から SCPまたは SFTPで接続して取得してください。
・APICからご使用の端末・サーバへアップロードする場合は、下記の例を参考にしてください。
3-1. SCPの例
-------------------
apic# scp /tmp/*.xml <username>@<宛先IP>:/tftpboot/
3-2. SFTPの例
--------------------
apic# sftp <username>@<宛先IP>:/tftpboot/
username@x.x.x.x's password:
Connected to x.x.x.x
Changing to: /tftpboot/
sftp> put xxx.xml
4. File Download URL
・採取したファイルを圧縮してURL指定でもダウンロード可能です。
1. mkdir /tmp/logfiles # tmpディレクトリ配下に適当なディレクトリを作成 (例: logfiles)
2. cp /tmp/*.xml /tmp/logfiles # tmp配下に生成した xmlファイルを logfiles ディレクトリにコピー
3. cd /tmp # tmpディレクトリへ戻る
4. tar zcvf logfiles.tgz logfiles # logfilesディレクトリを圧縮
5. cp logfiles.tgz /data/techsupport # /data/techsupport配下へコピー
6. ブラウザから下記URLを指定
https://<apic-ip-address>/files/1/techsupport/logfiles.tgz
※ login/pass を求められますので APIC の login/pass を入力するとダウンロードが開始されます
5. xml, jsonファイルの整形と解析例
・xml, json 整形ともに APIC上で 操作可能です。
整形後は less / grep などで 事象発生日時や Fault / Event code を検索して解析を行います。
ログ解析では jsonの方が見やすいかと思います。
<xml整形>
apic1# cat aaaModLR.xml | xmllint --format - > aaaModLR_formatted.xml
<json整形>
apic1# cat faultInfo.json | python -m json.tool > faultInfo_formatted.json
<解析例>
apic1# less faultInfo_formatted.json
apic1# grep <keyword> faultInfo_formatted.json
apic1# grep <keyword> -A 10 -B 10 faultInfo_formatted.json | less (検索Keyword前後10行ずつ、less表示)
※1 less で参照した場合は、検索(スラッシュ/) で 日時 ( 例: 2018-08-20T13:10:xx)などを検索すると
情報を見つけやすいです。
※2 grep の keyword には 調べたい日時、時刻、 Fault code、Error message等で検索をすると
情報を見つけやすいです。-A -B option もつけると前後の行も抽出出来ますので活用ください。
6. 日付指定での取得方法
APIC CLI から icurl を使用し、日付を指定することで取得が可能です。
※コマンドは bash に入ってから実行してください。
※以下はeventRecordの例です。必要に応じて faultRecord などを指定してください。
※この例では /data/techsupport 配下に ファイルを生成しています。
指定日以降 (例: 5/10以降) ※指定日以降のログサイズが大きい場合はErrorになります。
期間指定 (例: 5/17 〜 5/21) ※この期間のログサイズが大きい場合はErrorになります。