SNMPアクティビティのトレース
Junos OSを実行するデバイスでSNMPアクティビティを監視し、SNMPパフォーマンスに影響を与える問題を追跡します
Junos OS デバイスでは、SNMP アクティビティの監視と、SNMP パフォーマンスに影響を与える問題の特定に関する情報を表示できます。
SNMPd に登録されている MIB オブジェクトを確認する
MIBオブジェクトに関連するデータにアクセスするには、MIBオブジェクトをsnmpdに登録する必要があります。SNMPサブエージェントは、オンラインのときに、関連するMIBオブジェクトをsnmpdに登録します。snmpd は、オブジェクトと、オブジェクトが関連付けられているサブエージェントのマッピングを維持します。ただし、登録の試行は時折失敗し、次回サブエージェントが再起動してオブジェクトを正常に登録するまで、オブジェクトはsnmpdへの未登録のままになります。
ネットワーク管理システムが snmpd に登録されていないオブジェクトに関連するデータをポーリングすると、snmpd は noSuchName エラー(SNMPv1 オブジェクトの場合)または noSuchObject エラー(SNMPv2 オブジェクトの場合)のいずれかを返します。
以下のコマンドを使用して、snmpd に登録されている MIB オブジェクトを確認できます。
-
show snmp registered-objects—登録済みオブジェクトのリストと、さまざまなサブエージェントへのマッピングを含む/var/log/snmp_reg_objsファイルを作成します。 -
file show /var/log/snmp_reg_objs—/var/log/snmp_reg_objsファイルの内容を表示します。
以下の例は、 /var/log/snmp_reg_objs ファイルを作成して表示する手順を示しています。
user@host> show snmp registered-objects user@host> file show /var/log/snmp_reg_objs -------------------------------------------------------------- Registered MIB Objects root_name = -------------------------------------------------------------- .1.2.840.10006.300.43.1.1.1.1.2 (dot3adAggMACAddress) (/var/run/mib2d-11) .1.2.840.10006.300.43.1.1.1.1.3 (dot3adAggActorSystemPriority) (/var/run/mib2d-11) .1.2.840.10006.300.43.1.1.1.1.4 (dot3adAggActorSystemID) (/var/run/mib2d-11) .1.2.840.10006.300.43.1.1.1.1.5 (dot3adAggAggregateOrIndividual) (/var/run/mib2d-11) .1.2.840.10006.300.43.1.1.1.1.6 (dot3adAggActorAdminKey) (/var/run/mib2d-11) .1.2.840.10006.300.43.1.1.1.1.7 (dot3adAggActorOperKey) (/var/run/mib2d-11) .1.2.840.10006.300.43.1.1.1.1.8 (dot3adAggPartnerSystemID) (/var/run/mib2d-11) .1.2.840.10006.300.43.1.1.1.1.9 (dot3adAggPartnerSystemPriority) (/var/run/mib2d-11) .1.2.840.10006.300.43.1.1.1.1.10 (dot3adAggPartnerOperKey) (/var/run/mib2d-11) .1.2.840.10006.300.43.1.1.1.1.11 (dot3adAggCollectorMaxDelay) (/var/run/mib2d-11) .1.2.840.10006.300.43.1.1.2.1.1 (dot3adAggPortListPorts) (/var/run/mib2d-11) .1.2.840.10006.300.43.1.2.1.1.2 (dot3adAggPortActorSystemPriority) (/var/run/mib2d-11) .1.2.840.10006.300.43.1.2.1.1.3 (dot3adAggPortActorSystemID) (/var/run/mib2d-11) .1.2.840.10006.300.43.1.2.1.1.4 (dot3adAggPortActorAdminKey) (/var/run/mib2d-11) .1.2.840.10006.300.43.1.2.1.1.5 (dot3adAggPortActorOperKey) (/var/run/mib2d-11) .1.2.840.10006.300.43.1.2.1.1.6 (dot3adAggPortPartnerAdminSystemPriority) (/var/run/mib2d-11) .1.2.840.10006.300.43.1.2.1.1.7 (dot3adAggPortPartnerOperSystemPriority) (/var/run/mib2d-11) .1.2.840.10006.300.43.1.2.1.1.8 (dot3adAggPortPartnerAdminSystemID) (/var/run/mib2d-11) .1.2.840.10006.300.43.1.2.1.1.9 (dot3adAggPortPartnerOperSystemID) (/var/run/mib2d-11) .1.2.840.10006.300.43.1.2.1.1.10 (dot3adAggPortPartnerAdminKey) (/var/run/mib2d-11) .1.2.840.10006.300.43.1.2.1.1.11 (dot3adAggPortPartnerOperKey) (/var/run/mib2d-11) .1.2.840.10006.300.43.1.2.1.1.12 (dot3adAggPortSelectedAggID) (/var/run/mib2d-11) ---(more)---
/var/log/snmp_reg_objsファイルには、snmpdに登録されているJunos OSプロセスに関連付けられたオブジェクトが含まれています。show snmp registered-objectsコマンドを使用してオブジェクトを表示できます。稼働中のJunos OSプロセスに関連するMIBオブジェクトが登録済みオブジェクトのリストに表示されない場合は、ソフトウェアプロセスを再起動して、snmpdへのオブジェクト登録を再試行することができます。
SNMPアクティビティの追跡
SNMP トレース操作は、SNMP エージェントのアクティビティを追跡し、その情報をログ ファイルに記録します。デフォルトでは、Junos OSはSNMPアクティビティを一切トレースしません。Junos OSを実行しているデバイスでSNMPアクティビティの追跡を有効にするには、[edit snmp]階層レベルでset traceoptions flag allステートメントを含めます。
以下のログファイルが作成されます。
-
snmpd
-
mib2d
-
rmopd
show log log-filename操作コマンドを使用して、ログファイルの内容を表示できます。snmpdログファイル(次の例を参照)では、>>>のシーケンスが着信パケットを表し、<<<のシーケンスが発信パケットを表しています。複数のネットワーク管理システムが同時にデバイスをポーリングしている場合は、ソースとリクエストIDの組み合わせを使用してリクエストとレスポンスを照合できます。SNMPマスターエージェントまたはSNMPサブエージェントが要求に応答していない場合、応答ログはログファイルに作成されません。
リクエストとレスポンスにかかる時間を分析して、遅延したレスポンスを特定して理解することができます。
show log snmpdコマンドを使用してログファイルを確認できます。
SNMP統計を監視する
show snmp statistics extensive操作コマンドには、デバイス上のトラップを含むSNMPトラフィックを確認するオプションがあります。show snmp statistics extensiveコマンドの出力にはリアルタイム値が表示され、スロットルドロップ、現在アクティブ、最大アクティブ、見つかりません、タイムアウト、最大遅延、現在のキュー、キューの合計、オーバーフローなどの値を監視するために使用できます。現在アクティブなカウントが常に増加すると、SNMPリクエストへの応答が遅い、またはまったく応答しないことに直接関係するため、現在アクティブなカウントを監視することで、SNMP応答の遅さを特定できます。
CPU使用率を確認する
snmpdやmib2dなど、クエリーされているソフトウェアプロセスのCPU使用率が高いことも、応答が遅い、または応答がない原因となる要因です。 show system processes extensive 操作コマンドを使用して、Junos OSプロセスのCPU使用率を確認できます。
カーネルとパケット転送エンジンの応答を確認する
Junos OS での SNMP 実装についてで説明したように、一部の SNMP MIB データはカーネルまたはパケット転送エンジンによって維持されます。このようなデータをネットワーク管理システムで利用できるようにするには、カーネルは mib2d 内の SNMP サブエージェントに必要な情報を提供する必要があります。カーネルからの応答が遅いと、ネットワーク管理システムにデータを返すmib2dに遅延が生じる可能性があります。Junos OSは、インターフェイスがインターフェイス統計のリクエストに応答するのに10,000マイクロ秒以上かかるたびに、mib2dログファイルにエントリを追加します。show log log-filename | grep “kernel response time”コマンドを使用すると、カーネルにかかった応答時間を確認できます。
カーネル応答時間の確認
user@host> show log mib2d | grep “kernel response time” Aug 17 22:39:37 == kernel response time for COS_IPVPN_DEFAULT_OUTPUT-t1-7/3/0:10:27.0-o: 9.126471 sec, range (0.000007, 11.000806) Aug 17 22:39:53 == kernel response time for COS_IPVPN_DEFAULT_INPUT-t1-7/2/0:5:15.0-i: 5.387321 sec, range (0.000007, 11.000806) Aug 17 22:39:53 == kernel response time for ct1-6/1/0:9:15: 0.695406 sec, range (0.000007, 11.000806) Aug 17 22:40:04 == kernel response time for t1-6/3/0:6:19: 1.878542 sec, range (0.000007, 11.000806) Aug 17 22:40:22 == kernel response time for lsq-7/0/0: 2.556592 sec, range (0.000007, 11.000806)
Junos OSを実行しているデバイスでのSNMPアクティビティをトレースする
SNMP トレース操作は、SNMP エージェントのアクティビティを追跡し、その情報をログ ファイルに記録します。ログに記録されたエラーの説明には、問題を解決するための詳細な情報が記載されています。
デフォルトでは、Junos OSはSNMPアクティビティを一切トレースしません。[edit snmp]階層レベルにtraceoptionsステートメントを含める場合、デフォルトのトレース動作は次のとおりです。
-
重要なアクティビティは、/var/logディレクトリにあるファイルに記録されます。各ログには、それを生成するSNMPエージェントにちなんで名付けられています。現在、
traceoptionsステートメントを使用すると、/var/logディレクトリに以下のログファイルが作成されます。-
シャーシ
-
クラフト
-
ILMID
-
mib2d
-
rmopd
-
サービス済み
-
snmpd
-
-
filenameという名前のトレースファイルが最大サイズに達すると、トレースファイルの最大数に達するまで名前がfilename.0、filename.1などに変更されます。その後、最も古いトレース ファイルが上書きされます。(ログファイルの作成方法については、システムログエクスプローラを参照してください)。
-
ログファイルには、トレース操作を設定したユーザーのみがアクセスできます。
トレース ファイルが配置されているディレクトリ(/var/log)は変更できません。ただし、 [edit snmp] 階層レベルで以下のステートメントを含めることで、他のトレース ファイルの設定をカスタマイズできます。
[edit snmp] traceoptions { file <files number> <match regular-expression> <size size> <world-readable | no-world-readable>; flag flag; memory-trace; no-remote-trace; no-default-memory-trace; }
これらのステートメントは、次のセクションで説明されています。
SNMPログファイルの数とサイズを設定する
デフォルトでは、トレース ファイルのサイズが 128 キロバイト(KB)に達すると、トレース ファイルが 3 つになるまで名前が filename.0、 filename.1 などに変更されます。次に、最も古いトレース ファイル(filename.2)が上書きされます。
トレース ファイルの数とサイズの制限を設定するには、 [edit snmp traceoptions] 階層レベルで以下のステートメントを含めます。
[edit snmp traceoptions] file files number size size;
例えば、最大ファイルサイズを2MB、最大ファイル数を20に設定します。トレース操作(filename)の出力を受信するファイルが2MBに達すると、 filename の名前が filename.0に変更され、 filename という新しいファイルが作成されます。新しい filename が2MBに達すると、 filename.0 は filename.1 、 filename は filename.0に名前が変更されます。このプロセスは、トレース ファイルが 20 個になるまで繰り返されます。次に、最も古いファイル(filename.19)が最新のファイル(filename.0)で上書きされます。
ファイル数は2〜1000ファイルです。各ファイルのファイルサイズは、10KBから1ギガバイト(GB)の範囲です。
ログファイルへのアクセスを設定する
デフォルトでは、トレース操作を設定したユーザーのみがログファイルにアクセスできます。
すべてのユーザーがすべてのログファイルを読み取れるように指定するには、[edit snmp traceoptions]階層レベルでfile world-readableステートメントを含めます。
[edit snmp traceoptions] file world-readable;
デフォルトの動作を明示的に設定するには、[edit snmp traceoptions]階層レベルでfile no-world-readableステートメントを含めます。
[edit snmp traceoptions] file no-world-readable;
ログに記録する回線の正規表現を設定する
デフォルトでは、トレース操作の出力には、ログに記録されたアクティビティに関連するすべての行が含まれます。
[edit snmp traceoptions file filename]階層レベルでmatchステートメントを含め、一致させる正規表現(正規表現)を指定することで、出力を絞り込むことができます。
[edit snmp traceoptions] file filename match regular-expression;
トレース操作を設定する
デフォルトでは、重要なアクティビティのみが記録されます。ログに記録するトレース操作を指定するには、以下の flag ステートメント(1つ以上のトレースフラグ付き)を [edit snmp traceoptions] 階層レベルで記述します。
[edit snmp traceoptions]
flag {
all;
configuration;
database;
events;
general;
interface-stats;
nonvolatile-sets;
pdu;
policy;
protocol-timeouts;
routing-socket;
server;
subagent;
timer;
varbind-error;
}
表1に 、SNMPトレースフラグの意味を示します。
|
フラグ |
説明 |
デフォルト設定 |
|---|---|---|
|
|
すべての操作をログに記録します。 |
オフ |
|
|
|
オフ |
|
|
イベントデータベースへの保存と取得を含むイベントのログ記録。 |
オフ |
|
|
重要なイベントを記録します。 |
オフ |
|
|
一般的なイベントをログに記録します。 |
オフ |
|
|
物理および論理インターフェイスの統計情報をログに記録します。 |
オフ |
|
|
不揮発性SNMPセットリクエストの処理をログに記録します。 |
オフ |
|
|
SNMPリクエストとレスポンスパケットを記録します。 |
オフ |
|
|
ログポリシー処理。 |
オフ |
|
|
SNMP応答タイムアウトをログに記録します。 |
オフ |
|
|
ルーティングソケットコールをログに記録します。 |
オフ |
|
|
イベントを生成しているプロセスとの通信をログに記録します。 |
オフ |
|
|
ログサブエージェントが再起動します。 |
オフ |
|
|
内部タイマーイベントをログに記録します。 |
オフ |
|
|
変数バインディングエラーをログに記録します。 |
オフ |
エージェントのログの最後を表示するには、 show log agentd | last 運用モードコマンドを発行します。
[edit] user@host# run show log agentd | last
ここで、 agent はSNMPエージェントの名前です。
証明書有効期限トラップを設定するには、 証明書の検証を参照してください。
例:SNMPアクティビティのトレース
SNMP パケットに関する情報をトレースします。
[edit]
snmp {
traceoptions {
file size 10k files 5;
flag pdu;
flag protocol-timeouts;
flag varbind-error;
}
}
ピアダウンおよびIPsecトンネルダウントラップを有効にする
このトピックでは、 peer-down トラップを有効にしてトラップ ipsec-tunnel-down する方法について説明します。