Pitraceバイナリトレーシングの概要
PiTrace(ピクセルトレーシング)は、インシデント後のトラブルシューティングと根本原因分析のために、プロトコル操作イベントとルーティングワークフローアクティビティをコンパクトなトレースファイルに継続的に記録する、オーバーヘッドの少ないバイナリトレースインフラストラクチャを提供します。従来の冗長なテキストベースのトレースとは異なり、PiTrace は運用オーバーヘッドを最小限に抑えるため、通常のシステム操作中に拡張性やパフォーマンスに大きな影響を与えることなくアクティブな状態を維持できます。
PiTrace はトレース レコードをメモリに保存し、 定期的に /var/log/pitrace ディレクトリの下のバイナリ トレース ファイルに書き込みます。メモリのしきい値に達すると、またはユーザーが手動でフラッシュ操作を開始したときに、システムはトレースデータをディスクにフラッシュします。PiTraceは、後で分析するために最近の運用アクティビティを保持するために、設定可能なトレースファイル保持制限を使用して、ローリングトレース履歴を維持します。
トレースフレームワークは、マルチスレッドおよびマルチコア環境をサポートしており、最小限の実行オーバーヘッドで効率的なイベント収集を可能にします。ユーザーは、従来のテキストベースのログ記録と同時にバイナリトレースを実行できます。
PiTraceは、IS-ISプロトコルイベント、BGPとルーティングプロトコルデーモン(rpd)のCPU使用率が高い状態、RSVPとMPLSの運用履歴データのトレースを可能にします。管理者は、個々のルーティングまたはプロトコルインスタンスのIS-ISピクセルトレーシングを選択的に無効にすることができます。
常時オンのPiTraceバイナリトレースのメリット
-
最近のプロトコルアクティビティを保持して、インシデント後のトラブルシューティングと根本原因分析を迅速化します。
-
診断の可視性を維持しながら、冗長なテキストベースのトレースと比較して運用オーバーヘッドを削減します。
-
再現が困難な断続的および一時的な問題のトラブルシューティングを改善します。
-
CPUスパイクが持続する際に、ルーティングプロトコルとrpdのCPUアクティビティが高い状態を可視化します。
-
操作コマンドの履歴データを保持することで、RSVP と MPLS のトラブルシューティングの可視性を拡張します。
-
トレースノイズを最小限に抑え、IS-ISインスタンスの選択的トレースフィルタリングを通じてストレージ使用量を削減します。
-
プロトコルの遷移、運用ワークフロー、システムイベントを経時的に関連付けることができます。
PiTraceの仕組み
有効にすると、PiTraceはルーティングプロトコルと運用ワークフローからコンパクトなバイナリトレースレコードを継続的に生成します。プロトコルは、PiTraceインフラストラクチャを介してトレース情報をメモリ内バッファーに書き込みます
ライタースレッドは、バッファリングされたトレースレコードを収集し、 /var/log/pitrace ディレクトリに保存されている PiTrace ファイルに書き込みます。トレースデータは、メモリのしきい値に達すると、または手動のフラッシュ操作によってディスクにフラッシュされます。
トレースフレームワークは、インシデント発生後に分析できるローリング運用履歴を維持します。このアプローチは、事後対応型のデバッグ方法を使用して見逃す可能性のある断続的または一時的な問題のトラブルシューティングをサポートします。
ログを収集する前に、メモリ内のトレースバッファを手動でディスクフラッシュして、最新のプロトコルイベントがトレースファイルに含まれていることを確認できます。
サポートされているプロトコルと運用コンテキスト
IS-IS
LSP変更処理、SPF実行、ルートダウンロードアクティビティ、インターフェイス状態遷移、過負荷状態、エラーイベントなどのイベントを含む、IS-ISコントロールプレーンの遷移と運用ワークフローのバイナリトレースイベントを記録します。
選択的トレースフィルタリングが設定されていない限り、複数のIS-ISインスタンスが同じトレースストリームに貢献する可能性があります。トレースは、個々のルーティングまたはプロトコルインスタンスに対して選択的に無効にすることもできます。
BGPおよびrpd高CPUイベント
ルーティングプロトコルデーモン(rpd)でCPU使用率が高い状態が持続しているときのジョブレベルの実行詳細をキャプチャします。トレースデータは、CPUの急増をルーティングアクティビティやスケジュールされたプロトコルジョブ(CPUを大量に消費するBGP操作など)と関連付けるのに役立ちます。
RSVP と MPLS
RSVP および MPLS 操作コマンドの履歴データを PiTrace ファイルに保持し、限られたメモリ内の操作履歴バッファを超えてトラブルシューティングの可視性を拡張します。
サポートされている運用コマンド履歴には、RSVPセッション、ネイバー、インターフェイスの運用データ、およびMPLS LSP運用状態情報が含まれます。
トレース設定
PiTraceトレースレベルは、 system pixel-tracing 階層下で設定できます。
サポートされているトレースレベルは次のとおりです。
-
any -
critical -
debug -
info -
none
64ビットRPD環境では、 情報 イベントと クリティカル イベントのピクセルトレーシングは、すべてのモジュールでデフォルトで有効になります。これらのレベルを有効にするために明示的な設定は必要ありません。
また、トレースコンテキストごとに保持されるPiTraceダンプファイルの最大数を設定することもできます。デフォルトでは、コンテキストごとに最大20個のPiTraceファイルが保持されます。
IS-IS トレース制御
特定のIS-ISプロトコルまたはルーティングインスタンスのPiTraceトレースを選択的に無効にすることができます。
1つのIS-ISインスタンスのトレースを無効にしても、他のインスタンスのトレースには影響しません。
ピクセルトレースを無効にするには、次のコマンドを使用します。
set protocols isis pixel-tracing disable
手動トレースフラッシュ
次のコマンドを使用して、メモリ内のトレース情報をディスク上のPiTraceファイルにフラッシュします。
request system pixel-tracing routing flush
この操作により、ログの収集または分析前に、最新のプロトコルイベントがトレースファイルに書き込まれます。