ディスカバリー、サービスマッピング、オーケストレーションのための MID サーバー SNMP の問題をトラブルシューティングする方法Issue <!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } ディスカバリー、サービスマッピング、オーケストレーションに影響する MID サーバー SNMP の問題をトラブルシューティングします。この記事では、MID サーバーを介したターゲット CI からの SNMP データ収集に関する問題を診断するためのツールと手法について説明します。 トラブルシューティングツール SNMP を使用するアプリケーション (ディスカバリー、オーケストレーション、サービスマッピング) の一般的な問題は、SNMP データが完全に返されないか、まったく返されないことです。データが返された場合は、スクリプトインクルードやビジネスルールなど、アプリケーションの別の領域に焦点を当てて調査を行う必要があります。開始点として、データが正常に収集されているかどうかを確認することをお勧めします。 SNMP クエリーで目的のデータが収集されない主な理由の 2 つは次のとおりです。 無効な SNMP 認証情報SNMP クエリタイムアウト 次のツールは、データが返されるかどうかを確認するのに役立ちます。 MID サーバーログSNMP ウォークツールWireshark 認証情報テスト SNMP 認証情報をテストするには: ディスカバリー > 認証情報 に移動します。SNMP ディスカバリーに使用する SNMP 認証情報を選択します。認証情報をテストリンクを選択します。ターゲット および MID サーバー の値を入力します。[OK] を選択します。 注: Shazzam プローブと SNMP 資格情報テストは、OID 1.3.6.1.2.1.1.1 (sysDescr) をクエリします。 ただし、SNMP プローブは、認証情報が有効かどうかを判断するために、実際の SNMP 要求を実行する前に OID 1.3.6.1.2.1.1.2 (sysObjectID) を要求します。正常に検出するには、ターゲットデバイスが 1.3.6.1.2.1.1.1 と 1.3.6.1.2.1.1.2 の両方に応答する必要があります。SNMP ディスカバリーの問題をトラブルシューティングするときは、両方の OID をテストします。 MID サーバーログの確認 SNMP クエリーの MID サーバーログでより詳細な情報を取得するには、パラメーター mid.log.level を debug に設定します。手順については、「MID Server パラメーターの追加」を参照してください。 デバッグログを有効にした後、問題を再現し、MID サーバーのログファイルを確認します。ログファイルの収集手順については、次のドキュメントを参照してください。 MID サーバーの監視MID サーバーの ECC キューコンテンツの管理 詳細な SNMP ログを有効にする MID サーバーの agent\conf フォルダーに移動します。ラッパー上書きファイルを開きます。追加の Java パラメーターに次の行を追加します。wrapper.java.additional.201=-Dsnmp4j.LogFactory=com.service_now.mid.extension.trap.Snmp4j2DiscoLogFactoryMID サーバーを再起動します。問題を再現します。 例:成功した SNMP クエリー 次のログは、SNMP - 分類プローブのすべての OID が返された正常なクエリーを示しています。分類プローブは、デフォルトのタイムアウトである 1500 ミリ秒で実行されました。 08/29/18 11:32:52 (911) Worker-Interactive:SNMP Worker starting: SNMP source: 08/29/18 11:32:52 (926) Worker-Interactive:SNMP DEBUG: Timeout: 1500, Retries: 2 08/29/18 11:32:53 (004) Worker-Interactive:SNMP DEBUG: Using GETBULK 08/29/18 11:32:53 (004) Worker-Interactive:SNMP DEBUG: First attempt of getTable on target: /161, OIDs: [1.3.6.1.2.1.4.20.1.1, 1.3.6.1.2.1.4.20.1.2, 1.3.6.1.2.1.4.20.1.3], max rows: 10 08/29/18 11:32:53 (051) Worker-Interactive:SNMP DEBUG: First attempt of getTable on target: /161, OIDs: [1.3.6.1.4.1.9.9.46.1.3.1.1.3], max rows: 10 08/29/18 11:32:53 (051) Worker-Interactive:SNMP DEBUG: First attempt of getTable on target: /161, OIDs: [1.3.6.1.2.1.2.2.1.1, 1.3.6.1.2.1.2.2.1.2, 1.3.6.1.2.1.2.2.1.3, 1.3.6.1.2.1.2.2.1.6, 1.3.6.1.2.1.2.2.1.7, 1.3.6.1.2.1.2.2.1.8], max rows: 10 08/29/18 11:32:53 (114) Worker-Interactive:SNMP DEBUG: First attempt of getTable on target: /161, OIDs: [1.3.6.1.2.1.47.1.1.1.1.11, 1.3.6.1.2.1.47.1.1.1.1.13, 1.3.6.1.2.1.47.1.1.1.1.2, 1.3.6.1.2.1.47.1.1.1.1.12, 1.3.6.1.2.1.47.1.1.1.1.4], max rows: 10 08/29/18 11:32:53 (161) Worker-Interactive:SNMP DEBUG: First attempt of getTable on target: /161, OIDs: [1.3.6.1.2.1.4.22.1.1, 1.3.6.1.2.1.4.22.1.2, 1.3.6.1.2.1.4.22.1.3], max rows: 10 08/29/18 11:32:53 (161) Worker-Interactive:SNMP DEBUG: First attempt of getTable on target: /161, OIDs: [1.3.6.1.2.1.25.3.2.1.2, 1.3.6.1.2.1.25.3.2.1.3], max rows: 10 08/29/18 11:32:53 (161) Worker-Interactive:SNMP DEBUG: First attempt of getTable on target: /161, OIDs: [1.3.6.1.2.1.43.5.1.1.17], max rows: 10 08/29/18 11:32:53 (176) Worker-Interactive:SNMP DEBUG: Event: GenericScalarMetricEvent 08/29/18 11:32:53 (176) Worker-Interactive:SNMP DEBUG: Event: CheckSessionCanceledEvent, correlator: , sysID: 405c1f5cdb54a7008597d8c75e961967, canceled: false 08/29/18 11:32:53 (176) Worker-Interactive:SNMP Enqueuing: C:\ServiceNow\emprcoeljak\agent\work\monitors\ECCSender\output_0\ecc_queue.405c1f5cdb54a7008597d8c75e961967.xml 08/29/18 11:32:53 (176) Worker-Interactive:SNMP DEBUG: Event: GenericCounterMetricEvent 08/29/18 11:32:53 (192) Worker-Interactive:SNMP DEBUG: ** enqueued C:\ServiceNow\emprcoeljak\agent\work\monitors\ECCSender\output_0\ecc_queue.405c1f5cdb54a7008597d8c75e961967.xml 08/29/18 11:32:53 (192) Worker-Interactive:SNMP DEBUG: Event: MessageProcessedEvent, sysID: 405c1f5cdb54a7008597d8c75e961967 08/29/18 11:32:53 (192) Worker-Interactive:SNMP DEBUG: Event: SendMessageEvent, message: SNMP SNMP - Classify: 61 OIDs 08/29/18 11:32:53 (192) Worker-Interactive:SNMP Worker completed: SNMP source: time: 0:00:00.250 例:SNMP クエリーの失敗 (タイムアウト) 次のログは、部分的に成功したクエリーで、一部の OID のみが返されたことを示しています。タイムアウト条件をシミュレートするために、タイムアウトを 10 ミリ秒に設定しました。 08/30/18 07:29:03 (997) Worker-Interactive:SNMP DEBUG: Timeout: 10, Retries: 2 08/30/18 07:29:03 (997) Worker-Interactive:SNMP DEBUG: Snmp4jSessionFactory: connection created for key SnmpSessionPoolKey[target: &port:161&fixed_cred:&tag:] 08/30/18 07:29:04 (075) Worker-Interactive:SNMP DEBUG: Using GETBULK 08/30/18 07:29:04 (075) Worker-Interactive:SNMP DEBUG: First attempt of getTable on target: /161, OIDs: [1.3.6.1.2.1.4.22.1.1, 1.3.6.1.2.1.4.22.1.2, 1.3.6.1.2.1.4.22.1.3], max rows: 10 08/30/18 07:29:04 (075) Worker-Interactive:SNMP DEBUG: First attempt of getTable on target: /161, OIDs: [1.3.6.1.2.1.4.20.1.1, 1.3.6.1.2.1.4.20.1.2, 1.3.6.1.2.1.4.20.1.3], max rows: 10 08/30/18 07:29:04 (122) Worker-Interactive:SNMP DEBUG: First attempt of getTable failed on target: /161, OIDs: [1.3.6.1.2.1.4.20.1.1, 1.3.6.1.2.1.4.20.1.2, 1.3.6.1.2.1.4.20.1.3], error: Request timed out. 08/30/18 07:29:04 (122) Worker-Interactive:SNMP DEBUG: Second attempt of getTable on target: /161, OIDs: [1.3.6.1.2.1.4.20.1.1, 1.3.6.1.2.1.4.20.1.2, 1.3.6.1.2.1.4.20.1.3], max rows: 5 08/30/18 07:29:04 (169) Worker-Interactive:SNMP DEBUG: Second attempt of getTable failed on target: /161, OIDs: [1.3.6.1.2.1.4.20.1.1, 1.3.6.1.2.1.4.20.1.2, 1.3.6.1.2.1.4.20.1.3], error: Request timed out. 08/30/18 07:29:04 (169) Worker-Interactive:SNMP DEBUG: Third attempt of getTable on target: /161, OIDs: [1.3.6.1.2.1.4.20.1.1, 1.3.6.1.2.1.4.20.1.2, 1.3.6.1.2.1.4.20.1.3], max rows: 5, forcing GETNEXT pdu type 08/30/18 07:29:04 (215) Worker-Interactive:SNMP DEBUG: Event: GenericScalarMetricEvent 08/30/18 07:29:04 (215) Worker-Interactive:SNMP DEBUG: Event: CheckSessionCanceledEvent, correlator: , sysID: 561ea3acdbdca7008597d8c75e96191a, canceled: false 08/30/18 07:29:04 (215) Worker-Interactive:SNMP Enqueuing: C:\ServiceNow\emprcoeljak\agent\work\monitors\ECCSender\output_0\ecc_queue.561ea3acdbdca7008597d8c75e96191a.xml 08/30/18 07:29:04 (215) Worker-Interactive:SNMP DEBUG: Event: GenericCounterMetricEvent 08/30/18 07:29:04 (231) Worker-Interactive:SNMP DEBUG: ** enqueued C:\ServiceNow\emprcoeljak\agent\work\monitors\ECCSender\output_0\ecc_queue.561ea3acdbdca7008597d8c75e96191a.xml 08/30/18 07:29:04 (231) Worker-Interactive:SNMP DEBUG: Event: MessageProcessedEvent, sysID: 561ea3acdbdca7008597d8c75e96191a 08/30/18 07:29:04 (231) Worker-Interactive:SNMP DEBUG: Event: SendMessageEvent, message: SNMP SNMP - Classify: 12 OIDs 08/30/18 07:29:04 (231) Worker-Interactive:SNMP Worker completed: SNMP source: time: 0:00:00.218 SNMP ウォークツール SNMP ウォークツールは、結果が期待どおりに返されるかどうかを確認できます。サードパーティツールが失敗するか、部分的な結果を返す場合は、問題が MID サーバー SNMP 実装に固有のものではないことが確認されます。サードパーティツールが常に成功する場合は、MID サーバーのログで潜在的な問題がないか確認します。 次の例では、SnmpWalk.exe を使用して MID サーバーから OID 1.3.6.1.2.1.1.1 (sysDescr) のクエリを実行し、デバイスの説明を返します。コマンドは、使用する SNMP ツールによって異なる場合があります。最初のテストでは、認証情報が「publi」に設定されていましたが、これはこのデバイスの正しくないコミュニティ文字列です。正しいコミュニティ文字列は「public」です。 C:\SNMPWalk>.\SnmpWalk.exe -r:10.127.212.181 -c:"publi" -os:.1.3.6.1.2.1.1 -op:.1.3.6.1.2.1.1.1.0%SNMP 変数の値の取得に失敗しました。タイムアウトしました。 認証情報の失敗エラーは返されません。代わりに、クエリはタイムアウトします。 次の例では、コミュニティ文字列が「public」に修正されています。 C:\SNMPWalk>.\SnmpWalk.exe -r:10.127.212.181 -c:"public" -os:.1.3.6.1.2.1.1 -op:.1.3.6.1.2.1.1.1.0OID=.1.3.6.1.2.1.1.1.0, Type=OctetString, Value=Linux Linux-Tomcat 3.10.0-327.el7.x86_64 31 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 コミュニティ文字列を修正した後、タイムアウトではなく sysDescr 値が返されました。 注:同じ認証情報構成を使用して、MID サーバーがインストールされている同じホストから SNMP ウォークテストを実行します。 ネットワークトラフィックモニタリングツール(Wiresharkの例) ネットワークトラフィックモニタリングツールは、パケットが送信されるかどうか、応答が返されるかどうかなど、問題が発生した場所を判断するのに役立ちます。 セットアップ Wireshark ダウンロードページ から Wireshark をダウンロードしてインストールします。 Wireshark アプリケーションを開きます。トラフィックの収集に使用するインターフェイスを選択します。次の画像では、[Ethernet] が選択されています。 例:SNMP クエリートラフィックの確認 次の例では、テーブル mgmt.mib-2.printmib.prtMarkerColorant.prtMarkerColorantTable prtMarkerColorantValue の SNMP クエリーのトラフィックを確認します。 ecc_queueレコードには、返された内容が表示されます。 ターゲットデバイスへの SNMP トラフィックのみを表示するには、次の表示フィルタを使用します。 udp && ip.addr == <target_ip> スクリーンショットでは、パケットが収集された後にターゲット IP がループバック IP に置き換えられました。 次のスクリーンショットは、いずれかの OID についてデバイスから返されたデータを詳細に示しています。 注:Wiresharkにはキャプチャフィルタと表示フィルタの両方があります。 キャプチャ フィルター(TCP ポート 80 など)は、生のパケット キャプチャのサイズを縮小し、キャプチャを開始する前に設定されます。表示フィルター (tcp.port == 80 など) は、パケット リストから特定のパケットを非表示にし、キャプチャ中に変更できます。 大きなパケット キャプチャの場合、キャプチャを開始する前にキャプチャ フィルターを設定すると、システム パフォーマンスを向上させることができます。 Wireshark での SNMPv3 トラフィックの復号化 SNMPv3 トラフィックは暗号化されており、レビューのために復号化する必要があります。次の手順では、メモリ内のパケットのみを復号化します。 キャプチャされたパケットを Wireshark で開きます。編集 > 設定 > プロトコルに移動します。プロトコルリストから SNMP を選択します。ユーザーテーブル行で、編集を選択します。[ Add を選択し、次の詳細を入力します。 Engine ID: Wireshark 暗号化されたキャプチャから収集します。この値は暗号化されません。SNMP パケットヘッダーを開き、エンジン ID 文字列を確認します。ユーザー名:SNMPv3 ユーザー名を入力します。認証モデル: 認証モデル (MD5 または SHA1) を選択し、パスワードを入力します。プライバシープロトコル : プライバシープロトコル (DES、AES、AES192、または AES256) を選択し、プライバシーパスワードを入力します。 パケットコンテンツが復号化されていることを確認します。 Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } サポートされているすべてのリリース Resolution<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } 認証情報が正しいことを確認する 最も一般的な根本原因は、不正な認証情報です。SNMP v1 および v2 はコミュニティ文字列のみを使用するため、設定が簡単です。SNMP v3 の場合、ユーザー名、認証プロトコル、認証キー、プライバシープロトコル、およびプライバシーキーの値がターゲットデバイスで設定されている値と一致していることを確認します。サードパーティの SNMP ウォークツールを使用して、認証情報が正しいことも確認できます。 SNMP タイムアウトを増やす デバイスが設定されたタイムアウト内に応答できないか、ネットワークの問題により遅延が発生する可能性があります。ほとんどの場合、タイムアウトを増やすと OID を取得できる可能性が高くなります。SNMP タイムアウトは、MID サーバーごとに設定することも、プローブで直接設定することもできます。 使用可能なパラメーターについては、次のドキュメントを参照してください。 SNMP プローブMID サーバー SNMP 設定パラメーター 範囲外の応答 一部のデバイスは、開始 OID で構成できます。このようなデバイスに対してウォークが実行されると、開始 OID が返されます。この OID は要求範囲内にないため、値は使用されません。認証情報が正しい場合でも、プローブに結果は返されません。プローブはデバイスを分類および更新するために特定の値を要求し、要求された範囲外の値は無視されるため、これは正常な動作です。 次のログの例は、デバッグログが有効になっている場合に MID サーバーに表示されます。 DefaultUDPTransportMapping_0.0.0.0/0 DEBUG:応答が範囲外です。受領: iso.org.dod.internet.private.enterprises.f5.bigipTrafficMgmt.bigipSystem.sysGlobals.sysGlobalAttrs.sysGlobalAttr.sysAttrArpMaxEntries.0 (1.3.6.1.4.1.3375.2.1.1.1.1.1.1.0);範囲:1.3.6.1.2.1.1.2 - 1.3.6.1.2.1.1.3。要求 ID:1853998886 この例では、要求は OID 1.3.6.1.2.1.1.2 - 1.3.6.1.2.1.1.3 に対するものですが、デバイスは 1.3.6.1.4.1.3375.2.1.1.1.1.1.1.0 を返しました。 注: この例の OID は例示的なものです。実際の値はデバイスによって異なります。 この問題を解決するには、デバイス構成を確認し、要求された OID をデバイスが返すように調整します。具体的な手順はデバイスによって異なります。 コンテキスト 一部のプローブでは、Cisco デバイスの検出時にコンテキストを使用して情報を収集する必要があります。たとえば、SNMP - スイッチプローブによってトリガーされたプローブは、各 VLAN の情報を収集するためにコンテキスト情報を渡す必要があります。コンテキストがない場合、デフォルトの VLAN 情報のみが返されます。 詳細については、次の記事を参照してください。 SNMP - スイッチプローブ認証エラーとレイヤー 2 データが収集されないSNMPv3 がデフォルト以外の VLAN のレイヤ 2 テーブルに関する情報の収集に失敗する(Cisco スイッチのみ) Related Links<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } ディスカバリー:詳細 - SNMP 分類の機能とプロパティディスカバリーが SNMP デバイスのシリアル番号を返さない理由SNMP プローブ