トレース

トレースについて

トレースの概要

トレース機能により内部イベントが記録されます。トレース ファイルは自動的に作成され、crashinfo の下の tracelogs サブディレクトリに保存されます。

トレース ファイルのデータは、次の処理を行う場合に役立ちます。

  • トラブルシューティング:スイッチに問題がある場合、トレース ファイルの出力により、問題の特定および解決に使用できる情報が得られる場合があります。

  • デバッグ:トレース ファイルの出力は、システム動作の詳細情報を得るために役立ちます。

特定のモジュールに関する最新のトレース情報を表示するには、show platform software trace message コマンドを使用します。

トレース レベルを変更してトレース メッセージ出力の量を調整するために、set platform software trace コマンドを使用して新しいトレーシング レベルを設定できます。トレース レベルは、set platform software trace コマンドで all-modules キーワードを使用してプロセスごとに設定することも、プロセス内のモジュールごとに設定することもできます。

トレースログの場所

各プロセスは、btrace インフラストラクチャを使用してトレース メッセージをログに記録します。プロセスがアクティブのときは、対応するインメモリ トレースログが /tmp/<FRU>/trace/ ディレクトリにあります。ここで、<FRU> は、プロセスが実行されている場所(rp、fp、または cc)を表します。

トレースログ ファイルがプロセスに関して許可されている最大ファイル サイズの上限に達すると、またはプロセスが終了すると、次のディレクトリにローテーションされます。

  • /crashinfo/tracelogs(スイッチで crashinfo: パーティションを使用できる場合)

  • /harddisk/tracelogs(スイッチで crashinfo: パーティションを使用できない場合)

トレースログ ファイルは、ディレクトリに保存される前に圧縮されます。

トレースログの命名規則

btrace を使用して作成されるすべてのトレースログには、次の命名規則が適用されます。

<process_name>_<FRU><SLOT>-<BAY>.<pid>_<counter>.<creation_timestamp>.bin

ここで、counter は、64 ビットのフリーランニング カウンタで、当該プロセスの新しいファイルが作成されるたび増加します。たとえば、wcm_R0-0.1362_0.20151006171744.bin にようになります。圧縮されると、ファイル名に gz 拡張子が付加されます。

トレースログのサイズの上限およびローテーション ポリシー

トレースログ ファイルの最大サイズはプロセスごとに 1 MB で、保持されるトレースログ ファイルの最大数はプロセスごとに 25 です。

ローテーションおよびスロットリング ポリシー

最初は、すべての トレースログ ファイルが、初期ディレクトリの /tmp/<FRU>/trace から中継ディレクトリの /tmp/<FRU>/trace/stage に移されます。次に、btrace_rotate スクリプトによって、これらのトレースログが中継ディレクトリから /crashinfo/tracelogs ディレクトリに移されます。プロセスごとに /crashinfo/tracelogs ディレクトリに保存されるファイルの数が最大数の上限に達すると、そのプロセスの最も古いファイルが削除されますが、それより新しいファイルは保持されます。これは、最悪の場合、60 分ごとに繰り返されます。

その他、次の 2 種類のファイルセットが /crashinfo/tracelogs ディレクトリからパージされます。

  • 標準命名規則を持たないファイル(fed_python.log などのいくつかの例外を除く)

  • 2 週間以上保持されたファイル

エラーのあるプロセスがスイッチの機能に影響を与えないように、スロットリング ポリシーが導入されました。プロセスが非常に高い頻度でログを記録する(たとえば、そのプロセスに関して中継ディレクトリに 4 秒間隔で 17 以上のファイルが保存される)場合は常に、そのプロセスがスロットリングされます。そのプロセスのファイルは /tmp/<FRU>/trace から /tmp/<FRU>/trace/stage にローテーションされませんが、最大サイズに達すると削除されます。ファイル数が 7 以下になるとスロットリングが再度有効になります。

トレース レベル

トレース レベルは、トレース バッファまたはトレース ファイルに保存する必要のあるモジュール情報の量を決定します。

次の表に、使用可能なすべてのトレース レベルを示し、各トレース レベルで表示されるメッセージについて説明します。

表 1. トレース レベルとその内容

トレース レベル

説明

Emergency

システムが使用不能になる問題のメッセージです。

Error

システム エラーについてのメッセージです。

Warning

システム警告についてのメッセージです。

Notice

重大な問題に関するメッセージです。ただし、スイッチは通常どおり動作しています。

Informational

単に情報を提供するだけのメッセージです。

Debug

デバッグレベルの出力を提供するメッセージです。

Verbose

生成可能なすべてのトレース メッセージが送信されます。

Noise

モジュールについての生成可能なすべてのトレース メッセージが記録されます。

ノイズ レベルは常に最上位のトレース レベルに相当します。今後、トレース機能の拡張が行われ、さらに低いトレース レベルが導入された場合でも、ノイズ レベルはこの新しい拡張機能のレベルと同じレベルに相当します。

set platform software trace

プロセス内の特定のモジュールのトレース レベルを設定するには、特権 EXEC モードまたはユーザ EXEC モードで set platform software trace コマンドを使用します。

set platform software trace process slot module trace-level

構文の説明

process

トレース レベルが設定されているプロセス。次のオプションがあります。

  • chassis-manager :Chassis Manager プロセス。

  • cli-agent :CLI Agent プロセス。

  • dbm :Database Manager プロセス。

  • emd :Environmental Monitoring プロセス。

  • fed :Forwarding Engine Driver プロセス。

  • forwarding-manager :Forwarding Manager プロセス。

  • host-manager :Host Manager プロセス。

  • iomd :Input/Output Module daemon(IOMd)プロセス。

  • ios :IOS プロセス。

  • license-manager :License Manager プロセス。

  • logger :Logging Manager プロセス。

  • platform-mgr :Platform Manager プロセス。

  • pluggable-services :Pluggable Services プロセス。

  • replication-mgr :Replication Manager プロセス。

  • shell-manager :Shell Manager プロセス。

  • smd :Session Manager プロセス。

  • table-manager :Table Manager サーバ。

  • wireshark :Embedded Packet Capture(EPC)Wireshark プロセス。

slot

トレース レベルが設定されているプロセスを実行中のハードウェア スロット。次のオプションがあります。

  • number :トレース レベルが設定されているハードウェア モジュールの SIP スロットの数。たとえば、スイッチの SIP スロット 2 の SIP を指定する場合は、「2」と入力します。

  • SIP-slot / SPA-bay:SIP スイッチ スロットの数とその SIP の共有ポート アダプタ(SPA)ベイの数。たとえば、スイッチ スロット 3 の SIP のベイ 2 の SPA を指定する場合は、「3/2」と入力します。

  • F0 :スロット 0 の Embedded-Service-Processor。

  • FP active :アクティブな Embedded-Service-Processor。

  • R0 :スロット 0 のルート プロセッサ。

  • RP active :アクティブなルート プロセッサ。

  • switch <number> :指定された番号を持つスイッチ。

  • switch active :アクティブなスイッチ。

  • switch standby :スタンバイ スイッチ。

module

トレース レベルが設定されているプロセス内のモジュール。

trace-level

トレース レベルです。次のオプションがあります。

  • debug :デバッグ レベルのトレーシング。デバッグレベルのトレース メッセージは、モジュールに関する大量の詳細を提供する緊急でないメッセージです。

  • emergency :緊急事態レベルのトレーシング。緊急レベルのトレース メッセージは、システムが使用不能であることを示すメッセージです。

  • error :エラー レベルのトレーシング。エラーレベルのトレース メッセージは、システム エラーを示すメッセージです。

  • info :情報レベルのトレーシング。情報レベルのトレース メッセージは、システムに関する情報を提供する緊急でないメッセージです。

  • noise :ノイズ レベルのトレーシング。ノイズ レベルは、常に可能なトレース レベルの中の最高レベルに相当し、考えられるすべてのトレース メッセージを生成します。

    ノイズ レベルは、モジュールに関して可能な最高レベルのトレース メッセージに相当します。これは、このコマンドの将来の拡張で、ユーザが寄り高いトレース レベルを設定できるオプションが追加された場合にも、当てはまります。

  • notice :重大な問題に関するメッセージです。ただし、スイッチは通常どおり動作しています。

  • verbose :詳細レベルのトレーシング。トレース レベルが verbose に設定されている場合は、考えられるすべてのトレース メッセージが送信されます。

  • warning :警告メッセージ。

コマンド デフォルト

すべてのモジュールのデフォルトのトレース レベルは notice です。

コマンド モード

ユーザ EXEC (>)

特権 EXEC(#)

コマンド履歴

リリース

変更内容

このコマンドが導入されました。

使用上のガイドライン

module オプションは、プロセスおよび hardware-module によって異なります。このコマンドを入力する際に、各キーワード シーケンスで使用可能な module オプションを確認するには、? オプションを使用します。

トレース メッセージを表示するには、show platform software trace message コマンドを使用します。

トレース ファイルは、harddisk: ファイル システムのトレースログ ディレクトリに保存されます。これらのファイルは、スイッチの動作に影響を与えずに削除できます。

トレース ファイル出力は、デバッグに使用されます。トレース レベルは、モジュールに関するどのぐらいの量の情報をトレース ファイルに保存するかを決定する設定です。

次に、dbm プロセスのすべてのモジュールのトレース レベルを設定する例を示します。


Device# set platform software trace dbm R0 all-modules debug

show platform software trace filter-binary

特定のモジュールの最新のトレース情報を表示するには、特権 EXEC モードまたはユーザ EXEC モードで show platform software trace filter-binary コマンドを使用します。

show platform software trace filter-binary modules [ context mac-address]

構文の説明

context mac-address

フィルタ処理に使用されるコンテキストを表します。また、モジュール名とトレース レベルに基づいてフィルタ処理できます。コンテキスト キーワードは、タグが付いているトレースに基づき MAC アドレスまたは他の引数を受け入れます。

コマンド モード

ユーザ EXEC (>)

特権 EXEC(#)

コマンド履歴

リリース

変更内容

このコマンドが導入されました。

使用上のガイドライン

このコマンドは、モジュールに関連するすべてのプロセス全体で /tmp/.../ に存在するすべてのログを照合してソートします。指定されたモジュールに関連するすべてのプロセスのトレース ログがコンソールに出力されます。このコマンドでは、同じコンテンツの collated_log_{system time} という名前のファイルも /crashinfo/tracelogs ディレクトリに生成されます。

show platform software trace message

プロセスのトレース メッセージを表示するには、特権 EXEC モードまたはユーザ EXEC モードで set platform software trace コマンドを使用します。

show platform software trace message process slot

構文の説明

process

設定されているトレース レベル。次のオプションがあります。

  • chassis-manager :Chassis Manager プロセス。

  • cli-agent :CLI Agent プロセス。

  • cmm :CMM プロセス。

  • dbm :Database Manager プロセス。

  • emd :Environmental Monitoring プロセス。

  • fed :Forwarding Engine Driver プロセス。

  • forwarding-manager :Forwarding Manager プロセス。

  • geo :Geo Manager プロセス。

  • host-manager :Host Manager プロセス。

  • interface-manager :Interface Manager プロセス。

  • iomd :Input/Output Module daemon(IOMd)プロセス。

  • ios :IOS プロセス。

  • license-manager :License Manager プロセス。

  • logger :Logging Manager プロセス。

  • platform-mgr :Platform Manager プロセス。

  • pluggable-services :Pluggable Services プロセス。

  • replication-mgr :Replication Manager プロセス。

  • shell-manager :Shell Manager プロセス。

  • sif :Stack Interface(SIF)Manager プロセス。

  • smd :Session Manager プロセス。

  • stack-mgr :Stack Manager プロセス。

  • table-manager :Table Manager サーバ。

  • thread-test :Multithread Manager プロセス。

  • virt-manager :Virtualization Manager プロセス。

slot

トレース レベルが設定されているプロセスを実行中のハードウェア スロット。次のオプションがあります。

  • number :トレース レベルが設定されているハードウェア モジュールの SIP スロットの数。たとえば、スイッチの SIP スロット 2 の SIP を指定する場合は、「2」と入力します。

  • SIP-slot / SPA-bay:SIP スイッチ スロットの数とその SIP の共有ポート アダプタ(SPA)ベイの数。たとえば、スイッチ スロット 3 の SIP のベイ 2 の SPA を指定する場合は、「3/2」と入力します。

  • F0 :Embedded Service Processor スロット 0。

  • FP active :アクティブな Embedded Service Processor。

  • R0 :スロット 0 のルート プロセッサ。

  • RP active :アクティブなルート プロセッサ。

  • switch <number> :指定された番号を持つスイッチ。

  • switch active :アクティブなスイッチ。

  • switch standby :スタンバイ スイッチ。

    • number :トレース レベルが設定されているハードウェア モジュールの SIP スロットの数。たとえば、スイッチの SIP スロット 2 の SIP を指定する場合は、「2」と入力します。

    • SIP-slot / SPA-bay:SIP スイッチ スロットの数とその SIP の共有ポート アダプタ(SPA)ベイの数。たとえば、スイッチ スロット 3 の SIP のベイ 2 の SPA を指定する場合は、「3/2」と入力します。

    • F0 :スロット 0 の Embedded Service Processor。

    • FP active :アクティブな Embedded Service Processor。

    • R0 :スロット 0 のルート プロセッサ。

    • RP active :アクティブなルート プロセッサ。

コマンド モード

ユーザ EXEC (>)

特権 EXEC(#)

コマンド履歴

リリース

変更内容

このコマンドが導入されました。

次に、Stack Manager プロセスおよび Forwarding Engine Driver プロセスのトレース メッセージを表示する例を示します。


Device# show platform software trace message stack-mgr switch active R0
10/30 09:42:48.767 [btrace] [8974]: (note): Successfully registered module [97] [uiutil]
10/30 09:42:48.762 [btrace] [8974]: (note): Successfully registered module [98] [tdl_cdlcore_message]
10/29 13:28:19.023 [stack_mgr] [8974]: (note): Examining peer state
10/29 13:28:19.023 [stack_mgr] [8974]: (note): no switch eligible for standby election presently
10/29 13:28:19.022 [stack_mgr] [8974]: (note): Posting event stack_fsm_event_wait_standby_elect_timer_expired, curstate stack_fsm_state_active_ready
10/29 13:28:19.022 [stack_mgr] [8974]: (note): Timer HDL - STACK_WAIT_STANDBY_ELECT_TIMER expired
10/29 13:26:46.584 [btrace] [8974]: (note): Successfully registered module [99] [tdl_ui_message]
10/29 13:26:46.582 [bipc] [8974]: (note): Pending connection to server 10.129.1.0
10/29 13:26:36.582 [evutil] [8974]: (ERR): Connection attempt for sman-ui-serv (uipeer uplink to slot 1) failed, invoking disconnect
10/29 13:26:36.582 [evutil] [8974]: (ERR): Asynchronous connect failed for [uipeer uplink to slot 1] (fd == -1)
10/29 13:26:36.581 [bipc] [8974]: (note): Pending connection to server 10.129.1.0
10/29 13:26:26.581 [evutil] [8974]: (ERR): Connection attempt for sman-ui-serv (uipeer uplink to slot 1) failed, invoking disconnect

Device# show platform software trace message fed switch active
11/02 10:55:01.832 [btrace]: [11310]:  UUID: 0, ra: 0 (note): Successfully registered module [86] [uiutil]
11/02 10:55:01.848 [btrace]: [11310]:  UUID: 0, ra: 0 (note): Single message size is greater than 1024
11/02 10:55:01.822 [btrace]: [11310]:  UUID: 0, ra: 0 (note): Successfully registered module [87] [tdl_cdlcore_message]
11/01 09:54:41.474 [btrace]: [12312]:  UUID: 0, ra: 0 (note): Successfully registered module [88] [tdl_ngwc_gold_message]
11/01 09:54:11.228 [btrace]: [12312]:  UUID: 0, ra: 0 (note): Successfully registered module [89] [tdl_doppler_iosd_matm_type]
11/01 09:53:37.454 [btrace]: [11310]:  UUID: 0, ra: 0 (note): Successfully registered module [90] [tdl_ui_message]
11/01 09:53:37.382 [bipc]: [11310]:  UUID: 0, ra: 0 (note): Pending connection to server 10.129.1.0
11/01 09:53:34.227 [xcvr]: [18846]:  UUID: 0, ra: 0 (ERR): FRU hardware authentication Fail, result = 1.
11/01 09:53:33.775 [ng3k_scc]: [18846]:  UUID: 0, ra: 0 (ERR): SMART COOKIE: SCC I2C receive failed: rc=10
11/01 09:53:33.775 [ng3k_scc]: [18846]:  UUID: 0, ra: 0 (ERR):
SMART COOKIE receive failed, try again
11/01 09:53:33.585 [ng3k_scc]: [18846]:  UUID: 0, ra: 0 (ERR):

show platform software trace level

特定のプロセスですべてのモジュールのトレース レベルを表示するには、特権 EXEC モードまたはユーザ EXEC モードで show platform software trace level コマンドを使用します。

show platform software trace level process slot

構文の説明

process

トレース レベルが設定されているプロセス。次のオプションがあります。

  • chassis-manager :Chassis Manager プロセス。

  • cli-agent :CLI Agent プロセス。

  • cmm :CMM プロセス。

  • dbm :Database Manager プロセス。

  • emd :Environmental Monitoring プロセス。

  • fed :Forwarding Engine Driver プロセス。

  • forwarding-manager :Forwarding Manager プロセス。

  • geo :Geo Manager プロセス。

  • host-manager :Host Manager プロセス。

  • interface-manager :Interface Manager プロセス。

  • iomd :Input/Output Module daemon(IOMd)プロセス。

  • ios :IOS プロセス。

  • license-manager :License Manager プロセス。

  • logger :Logging Manager プロセス。

  • platform-mgr :Platform Manager プロセス。

  • pluggable-services :Pluggable Services プロセス。

  • replication-mgr :Replication Manager プロセス。

  • shell-manager :Shell Manager プロセス。

  • sif :Stack Interface(SIF)Manager プロセス。

  • smd :Session Manager プロセス。

  • stack-mgr :Stack Manager プロセス。

  • table-manager :Table Manager サーバ。

  • thread-test :Multithread Manager プロセス。

  • virt-manager :Virtualization Manager プロセス。

slot

トレース レベルが設定されているプロセスを実行中のハードウェア スロット。次のオプションがあります。

  • number :トレース レベルが設定されているハードウェア モジュールの SIP スロットの数。たとえば、スイッチの SIP スロット 2 の SIP を指定する場合は、「2」と入力します。

  • SIP-slot / SPA-bay:SIP スイッチ スロットの数とその SIP の共有ポート アダプタ(SPA)ベイの数。たとえば、スイッチ スロット 3 の SIP のベイ 2 の SPA を指定する場合は、「3/2」と入力します。

  • F0 :スロット 0 の Embedded Service Processor。

  • F1 :スロット 1 の Embedded Service Processor。

  • FP active :アクティブな Embedded Service Processor。

  • R0 :スロット 0 のルート プロセッサ。

  • RP active :アクティブなルート プロセッサ。

  • switch <number> :指定された番号を持つスイッチ。

  • switch active :アクティブなスイッチ。

  • switch standby :スタンバイ スイッチ。

    • number :トレース レベルが設定されているハードウェア モジュールの SIP スロットの数。たとえば、スイッチの SIP スロット 2 の SIP を指定する場合は、「2」と入力します。

    • SIP-slot / SPA-bay:SIP スイッチ スロットの数とその SIP の共有ポート アダプタ(SPA)ベイの数。たとえば、スイッチ スロット 3 の SIP のベイ 2 の SPA を指定する場合は、「3/2」と入力します。

    • F0 :スロット 0 の Embedded Service Processor。

    • FP active :アクティブな Embedded Service Processor。

    • R0 :スロット 0 のルート プロセッサ。

    • RP active :アクティブなルート プロセッサ。

コマンド モード

ユーザ EXEC (>)

特権 EXEC(#)

コマンド履歴

リリース

変更内容

このコマンドが導入されました。

次に、トレース レベルを表示する例を示します。


Device# show platform software trace level dbm switch active R0
Module Name                     Trace Level      
-------------------------------------------------
binos                           Notice           
binos/brand                     Notice           
bipc                            Notice           
btrace                          Notice           
bump_ptr_alloc                  Notice           
cdllib                          Notice           
chasfs                          Notice           
dbal                            Informational    
dbm                             Debug            
evlib                           Notice           
evutil                          Notice           
file_alloc                      Notice           
green-be                        Notice           
ios-avl                         Notice           
klib                            Debug            
services                        Notice           
sw_wdog                         Notice           
syshw                           Notice           
tdl_cdlcore_message             Notice           
tdl_dbal_root_message           Notice           
tdl_dbal_root_type              Notice

request platform software trace archive

スイッチでの最後のリロード以降にシステム上で実行されているすべてのプロセスに関連するすべてのトレース ログをアーカイブし、これを指定された場所に保存するには、特権 EXEC モードまたはユーザ EXEC モードで request platform software trace archive コマンドを使用します。

request platform software trace archive [ last number-of-days [ days [ target location]] | target location]

構文の説明

last noofdays

トレース ファイルをアーカイブする必要がある日数を指定します。

target location

アーカイブ ファイルの場所と名前を指定します。

コマンド モード

ユーザ EXEC (>)

特権 EXEC(#)

コマンド履歴

リリース

変更内容

このコマンドが導入されました。

使用上のガイドライン

このアーカイブ ファイルは、tftp コマンドまたは scp コマンドを使用してシステムからコピーできます。

次に、過去 5 日以降にスイッチで実行されているプロセスのすべてのトレース ログをアーカイブする例を示します。


Device# request platform software trace archive last 5 days target flash:test_archive

request platform software trace rotate all

現在のインメモリ トレース ログを crashinfo パーティションに循環させ、プロセスごとの新しいインメモリ トレース ログを開始するには、特権 EXEC モードまたはユーザ EXEC モードで request platform software trace rotate all コマンドを使用します。

request platform software trace rotate all

コマンド モード

ユーザ EXEC (>)

特権 EXEC(#)

コマンド履歴

リリース

変更内容

このコマンドが導入されました。

使用上のガイドライン

トレース ログ ファイルは読み取り専用を目的としています。ファイルの内容は編集しないでください。特定のログ セットを表示するために、ファイルの内容を削除する必要がある場合は、このコマンドを使用して新しいトレース ログ ファイルを開始します。

次に、過去1日以降にスイッチで実行されているプロセスのすべてのインメモリ トレース ログを循環させる例を示します。


Device# request platform software trace slot switch active R0 archive last 1 days target flash:test

request platform software trace filter-binary

トレースログ サブディレクトリに存在するすべてのアーカイブ ログを照合して並べ替えるには、特権 EXEC モードまたはユーザ EXEC モードで request platform software trace filter-binary コマンドを使用します。

request platform software trace filter-binary modules [ context mac-address]

構文の説明

context mac-address

フィルタ処理に使用されるコンテキストを表します。また、モジュール名とトレース レベルに基づいてフィルタ処理できます。コンテキスト キーワードは、タグが付いているトレースに基づき MAC アドレスまたは他の引数を受け入れます。

コマンド モード

ユーザ EXEC (>)

特権 EXEC(#)

コマンド履歴

リリース

変更内容

このコマンドが導入されました。

使用上のガイドライン

このコマンドは、モジュールに関連するすべてのプロセスを対象に、トレースログ サブディレクトリに存在するすべてのアーカイブされたログを照合して並べ替えます。さらに、このコマンドは同じ内容の collated_log_{system time} という名前のファイルを /crashinfo/tracelogs ディレクトリに生成します。