この記事では NSO で取得できる主なログを紹介します。
1. ncs.conf から設定する各種ログ
ncs.conf は NSOデーモンが起動時に読み込む設定ファイルです。
NSO で取得可能なログの多くは ncs.conf の <logs> セクションにある XML を編集することで設定を行います。
<logs>
<syslog-config> … </syslog-config>
<ncs-log>
<enabled>true</enabled>
<file>
<name>${NCS_LOG_DIR}/ncs.log</name>
<enabled>true</enabled>
</file>
</ncs-log>
<developer-log> … </developer-log>
<developer-log-level>info</developer-log-level>
<audit-log> … </audit-log>
<netconf-log> … </netconf-log>
<snmp-log> … </snmp-log>
<webui-browser-log> … </webui-browser-log>
<webui-access-log> … </webui-access-log>
<xpath-trace-log> … </xpath-trace-log>
<error-log> … </error-log>
</logs>
設定例
netconf-trace(デフォルトでは無効状態) を取得する場合は、<logs>セクション内に以下のように設定を追加します。
- 設定例: netconf-trace を取得する場合
</error-log>
<netconf-trace-log>
<enabled>true</enabled>
<filename>${NCS_LOG_DIR}/netconf-trace.log</filename>
<format>pretty</format>
</netconf-trace-log>
</logs>
各ログの設定項目には少なくとも以下の2つが含まれます。
- ログの有効・無効 ( 上記例の enabled )
- ログファイルのパスとファイル名 ( 例の filename )
その他、そのログにしかない設定項目( 例の format 等) もあります。一部は一覧に記載しますが、詳細は ncs.conf (5) の MAN ページから確認してください。
設定の再読み込み
NSO 起動中に行った ncs.conf への変更は ncs --reload コマンドで NSOに ncs.conf を再読み込みさせることで反映させることができます。
$ ncs --reload
設定可能なログ一覧
ncs.conf から設定可能なログとその概要、デフォルトの設定状態を表に記載します。
Log |
Description |
Default (system) |
Default (local) |
ncs.log |
NCSデーモンのログ。主に NCS/NSO の起動時に発生した問題の調査に使用します。 |
enabled |
enabled |
devel.log |
様々な段階のトランザクションの情報が記録されます。ある特定の処理のタイミングの解析や、CDB を lock しているプログラムの解析等、さまざまな問題の調査に使用します。 3段階のログレベル developer-log-level( error | info | trace ) があり、デフォルトのレベルはインストール方法によって異なります。 |
enabled (info) |
enabled (trace) |
audit.log |
NSOへのログインの成否が記録されます。 audit-log-commit( true | false ) が true にセットされている場合は、ユーザによってコミットされた変更も記録されます。 |
enabled |
enabled |
netconf.log |
NSOのノースバウンドインタフェースにおけるNETCONFの動作を調査するためのログです。 |
enabled |
enabled |
netconf-trace |
NSOのノースバウンドインタフェースにおいて送受信された NETCONF トラフィックを記録します。 format(raw | pretty) を pretty に設定すると読みやすく整形されたXMLが記録されます。 比較的負荷がかかるため、トラブルシューティングを行う場合以外は無効にしておくことをお奨めします。 |
disabled |
disabled |
snmp.log |
NSOのノースバウンドインタフェースにおけるSNMPの動作を調査するためのログです。 |
enabled |
enabled |
xpath.trace |
NSO 内部で行われた XPath クエリの評価が記録されます。 主に Service や NED 等のパッケージの問題を調査するときに有効にします。 比較的負荷が高いため、トラブルシューティングを行う場合以外は無効にしておくことをお奨めします。 |
disabled |
enabled |
ncserr.log |
NCS デーモンのログです。NSOのクラッシュ、Internal Error、その他 NCS デーモンに関する問題の調査に使用します。拡張子の異なる複数のファイル( e.g. ncserr.log.1, ncserr.log.idx, ncserr.log.siz ...)が生成されます。 解析にはこれら全てのファイルが必要です。 |
enabled |
enabled |
webui-access log |
NSO Web UI のアクセスログです。traffic-log( true | false ) オプションを true にセットすると NSO Web UI に対するすべての HTTP(S)トラフィックが記録されます。traffic-log オプションは比較的負荷が高いため、トラブルシューティングを行う場合以外は無効にしておくことをお奨めします。 |
enabled |
enabled |
インストール方法( System Install / Local Install )によって、デフォルトの設定が異なるログがある点に注意してください。
2. NSO Java VM ログ( ncs-java-vm.log )
NSO Java VM、NSO の Java API、ユーザーの JAVA コードの問題を調査するためのログです。
8つのロギングレベルがあり、Java のパッケージ毎にレベルを設定することができます。
設定可能なロギングレベルは以下の通りです。ALL に設定した場合のメッセージ量が最も多くなります。
ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF
- 設定例: Maapi (Management Agent API) のロギングレベルを trace に変更する
admin@ncs(config)# java-vm java-logging logger com.tailf.maapi level level-trace
admin@ncs(config-logger-com.tailf.maapi)# commit
3. NED trace
NSO のサウスバウンドインタフェースの問題( NSO と 管理対象デバイス間の問題 )を調査するためのログです。フォーマットのオプションとして raw と pretty があります。通常は整形を行わない raw を選択していただくのがよいと思います。
- 設定例: 全ての管理デバイスを対象にログを取得する場合
admin@ncs(config)# devices global-settings trace raw
admin@ncs(config)# devices global-settings trace-dir ./ned-trace
- 設定例: 特定のデバイスを対象にログを取得する場合
admin@ncs(config)# devices device ROUTER1 trace raw
4. NSO debug dump
Debug dump は NSO の状態のスナップショットです。netstat や top コマンドの結果、NSO のステータス等が1つのファイルに出力されます。Debug dump はNSO の開発チームにて解析することを想定したログです。バイナリデータを含むため、お客様にて内容を確認することはできません。
Debug dump は shell から以下のコマンドを実行して取得します。
$ ncs --debug-dump ./debug-dump.bin
5. CDB debug dump
CDB debug dump によって CDB の内容を標準出力に書き出すことができます。
CDB debug dump は shell から実行します。
以下の例のようにコマンドの引数として CDB のディレクトリを指定してください。
$ ncs --cdb-debug-dump ./ncs-cdb > ./cdb-dump.log