SNMP Discovery の説明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: ; } } SNMP Discovery がどのように動作するかについて、より詳細な情報をお探しですか?この記事では、前提条件、フロー、および一般的なトラブルシューティング手順について詳細な情報を提供します。 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: ; } } 前提条件MID サーバーの機能と要件ベースシステムにおける SNMP ディスカバリーフローよくある問題と調査方法 前提条件 SNMP バージョン: これはターゲットホストに対して確認する必要がある重要なチェックの 1 つです。 ServiceNow Discovery は SNMP バージョン 1、2c、および 3 をサポートします。Discovery はデフォルトでバージョン 1 および 2c を使用します。バージョン 3 のサポートは明示的に有効にする必要があります。MID Server はデフォルトで全ての SNMP プロトコルバージョンをサポートします。MID Server を設定して、特定のバージョンの SNMP のみをサポートさせることもできます。 認証情報 - SNMP の認証情報にはユーザー名は含まれず、コミュニティ文字列と呼ばれるパスワードのみが含まれます。 多くの SNMP デバイスのデフォルトの読み取り専用コミュニティ文字列は public であり、Discovery はこれを自動的に試行します。public コミュニティ文字列と異なる場合は、適切な SNMP 認証情報を入力してください。 MID Server 機能と要件 SNMP デバイスで Discovery を実行するために確認する必要がある追加の機能はありません。MID は DISCOVERY を実行する機能を持っているだけで十分です。 ベースシステムにおける SNMP Discovery フロー ServiceNow の Discovery プロセスには、SNMP で管理されるデバイスを検出する機能があります。デバイスの例: スイッチ (Kingston 以降ではスタックスイッチもサポート)ルータープリンターWireless Access Point のコントローラーロードバランサー Discovery プロセスは、MIB および OID を使用して、ネットワーク対応デバイスを分類、識別、および探索します。 MIB - Management Information Base は、ネットワークデバイスによって定義される統計情報および制御情報を含む値の集合を保持するデータベースのようなものです。デバイスベンダーは、プライベート MIB と呼ばれる独自の MIB を選択することもできます。OID - Object Identifier は SNMP 実装で使用される表現であり、MIB + Object of Interest の組み合わせです。Object of Interest は、ポーリングデバイスが参照できるパラメータ値として定義できます。例えば、デバイスの稼働時間などです。例えば、デバイスが OID = 1.3.6.1.2.1.1.3.0 を持つとします。下の図はそれがどのように構成されているかの例を示しています。最初の 7 つの数字は MIB を表し、最後の 2 つの数字は Object of Interest を表します。 Discovery フェーズの概要 Shazzam または Scan フェーズ - ユーザーが指定した IP アドレスに対して、Shazzam はデバイスをポーリングし、応答しているポートを確認します。例えば、このシナリオでデバイスが応答すると期待されるポートは 161 です。組織によっては SNMP が実行されるポートをカスタマイズしている場合があるため、適切に確認する必要があります。Classification フェーズ - アクティブなポートに対して、port probes モジュールにはトリガーされる Probe または Pattern のセットがあり、SNMP デバイスの場合は通常 SNMP - Classify です。この Probe の主な目的は、ターゲットデバイスから有効な OID を抽出することです。SNMP - Classify の入力ペイロードは、以下の例の画像のようになります。 sysDescr タグはデバイスの種類を定義します。sysObjectID タグは OID を含みます。 デバイス分類は、以下の方法で SNMP Discovery プロセスによって処理されます。 各デバイスタイプごとに定義された特定の SNMP Classifier が存在します。これらは discovery_classy_snmp テーブルで確認できます。各 Classifier には classification criteria が存在します。このセクション/タブには、関連する Classifier をトリガーするためにターゲットホストが満たす必要のある条件が含まれています。異なる classification criteria レコードは discovery_class_criteria で確認できます。取得された OID も、適切な Classifier を選択するために考慮されます(OID が SNMP OID テーブルに存在する場合、また存在しない場合でも分類は続行されますが、利用可能な全ての Classifier の条件が確認されます)。Classifier に定義およびマッピングされた OID の一覧は SNMP OID Classifications タブで確認できます。全ての OID 固有情報は discovery_snmp_oid にあります。適切な Classifier が選択されると、分類中の条件一致に基づいてトリガーされる Probe が Trigger probes セクションで定義されます。また、discovery_classifier_probe でも確認できます。以下は、Standard Network router の SNMP Classifier レコードの例です。 Identification フェーズ - 取得した MIB に基づいて、Classification フェーズはデバイスの種類と、デバイスを識別するためにトリガーする必要のある Probe/Pattern を Identification フェーズへ渡します。ターゲットホストの MIB がポーリングされ、Object of Interest が抽出されます。これらは CI に入力されることが想定される詳細情報です。一般的に、SNMP MIB はインスタンス上の ecc_agent_mib テーブルに存在し、Discovery を実行する MID Server 上にコンパイルおよびロードされている必要があります。全ての MIB が OOTB で提供されるわけではなく、必要に応じて追加する必要があります。関連する MIB が存在しない場合、Discovery は Classification フェーズを超えて進行しません。 Exploration フェーズ - Exploration フェーズでは、Layer-2 Discovery をトリガーすることにより、ターゲットホストをさらに探索し、内部情報を取得します。 SNMP Discovery の詳細なフローは以下の図で示されています。 上記のフロー図の手順に従うと、一般的な問題とその可能な解決策は以下の表に示されています。 ステップインプット予想されるアウトプット発生する可能性のある一般的な問題考えられる解決策 1.1 1.2 1.2.1 ネットワークデバイスの IP SNMP ポート上でのデバイス応答の確認と、SNMP - Classify のトリガー実行 ssue 1: SNMP ポートがアクティブであっても接続が拒否される場合があります。 Issue 2: デバイスが両方のポートで応答する場合、SNMP より SSH が優先されます。結果として SNMP がトリガーされます。 Issue 1: ポートアクセスを有効にしてください。 Issue 2: デバイス用の SNMP Behavior を作成し、それを Discovery Schedule に継承させてください。 2.1 2.2 2.3 デバイス詳細を抽出するために MIB を対象とする SNMPTable および SNMPWalk System OID と、Discovery プロセスに適切な Classifier を選択させるための条件抽出 デバイスが Active, couldn't classify として表示される 関連する OID が discovery_snmp_oid に存在しない可能性があります。どの SNMP Classifier にも条件一致がない可能性があります。 3.1 3.1.1 3.1.2 3.2 NIC やシリアル番号などの詳細を抽出するための SNMPTable、または関連する Pattern MIB から抽出されたデバイス固有の詳細 Issue 1: Classified, couldn't identify エラー Issue 2: Pattern の失敗 Issue 1: SNMP - Identity Probe が成功したか確認してください。成功していない場合は、受信したエラーに基づいて調査してください。 Issue 2: Pattern Debug を実行してエラーを特定するか、Pattern 実行ログでエラーを確認してください。 4.1 4.2 隣接デバイスなどの詳細を抽出するための SNMPTable ネットワークデバイスの隣接デバイスおよび関係タイプ デバイス間の隣接関係が存在しない Device Neighbors [discovery_device_neighbors] の情報は、Exploration 中の Layer 2 protocol cache Probe により収集されます。トリガーされたかどうか、またはエラーがないか確認してください 注: SNMP Probe にパラメータを追加する柔軟性があります。OID Children を識別して探索する必要がある場合や、タイムアウトを設定する必要がある場合があります。これを実施する方法の詳細については、SNMP probe parameters に関する ServiceNow ドキュメントおよび追加方法を参照してください。 SSNMP Probe パラメータ SNMP デバイスの Discovery 実行時に使用できる追加の Probe パラメータがあります。これらは以下の表および SNMP Probe パラメータのドキュメントに記載されています。 パラメーター説明デフォルト値oid_spec_list OID 指定の一覧です。1 行につき 1 つの指定を記述します。各指定は次の 2 つの形式のいずれかでなければなりません。 walk {OID}: OID とその全ての子を Walk しますtable {OID} {OID Children}: テーブル内の全てのエントリを Walk し、指定された子のみを返します(例: "iso.org.dod.internet") {OID Children} は、指定されたテーブルのエントリ内にある子ノードのカンマ区切りリストを指します。例えば、"ifEntry.ifIndex,ifEntry.ifDescr,ifEntry.ifType" は、テーブル "iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable" の OID Children です。利便性のために、テーブルエントリのプレフィックスは省略できます。(前述の子は "ifIndex,ifDescr,ifType" と指定できます。) 任意の子には括弧内にフィルター修飾子を含めることができます。例えば、子 "entPhysicalContainedIn(=0)" は、"entPhysicalContainedIn" の値が 0 に等しい場合にのみテーブルエントリを返すことを指定します。式でサポートされる演算子は次のとおりです。 =次等しい!=等しくない#含む 複数の子にフィルター式がある場合、いずれか 1 つの子が一致するとそのエントリが読み取られます。 "//" を含む位置以降の内容は全て無視されます(コメント)。 "1.3.6.1" または "iso.org.dod.internet" で始まらない OID は、利便性のため自動的に "1.3.6.1." が先頭に付与されます。 requiredsource SNMP クエリ対象デバイスの IP アドレスまたはホスト名。 requiredindex Cisco スタイルのコミュニティ文字列インデックス(VLAN 問い合わせ用)において、コミュニティ文字列の後に適用されるインデックス。 0credential_id 他の認証情報より優先して使用する特定の認証情報の sys_id。このパラメータは内部用途専用であり、サポートされていません。 なしcredential_tag 使用する必要がある認証タグ。このパラメータは内部用途専用であり、サポートされていません。 なしtimeout デフォルト値の代わりに応答を待機するタイムアウト値(ミリ秒)。このパラメータを使用して、mid.snmp.request.timeout SNMP MID Server configuration parameter を上書きできます。 注: use_getbulk が true に設定されている場合、タイムアウト値は個別の GETBULK リクエストに対する値です。 1500established_session_timeout 少なくとも 1 回応答を受信した後に、次の応答を待機する間隔(ミリ秒)。より長い値は、完全かつ正確なデータ収集に役立つ場合があります。このパラメータを使用して、mid.snmp.session.timeout SNMP MID Server configuration parameter を上書きできます。 500debug デバッグログを有効にします。デバッグモードでは true に設定します。 falserequest_interval 応答が受信されていない場合に、timeout(または established_session_timeout)に達するまで、同じ OID に対する連続したリクエスト間の間隔(ミリ秒)。この値が timeout(または established_session_timeout)以上に設定されると、その OID には 1 回だけリクエストが送信されます。 timeout(または established_session_timeout)の値を変更した場合は、環境に応じて同一 OID に対するリクエスト数が多すぎたり少なすぎたりしないよう、同時に request_interval も調整してください。 400request_delay 応答を受信してから次のリクエストを送信するまでの間隔(ミリ秒)。デフォルトは 0(遅延なし)です。この値を設定すると、SNMP クエリ全体の速度を低下させることができます。 0result_format 以下の Probe に対して JSON 形式のペイロードを返します。 SNMP - F5 BIG-IP - SystemSNMP - Netscaler - SystemSNMP - Routing このパラメータは、ペイロードが大きくなった際に Sensor の失敗やノード上のメモリ問題を防ぐため、よりコンパクトな形式でデータを返します。この値を変更したり、このパラメータを削除したりしないでください。 注意: このパラメータを他の Probe で使用すると Sensor が失敗します。 JSONuse_getbulk 複数の SNMP GETNEXT リクエストの代わりに、SNMP GETBULK リクエストを使用して SNMP デバイスから表形式データを取得します。表形式データでは GETBULK の方が効率的です。 リクエストタイプに関係なく、一部のデバイスは他のタスクでビジー状態の場合、結果を返さないことがあります。 このパラメータは Probe レベルで設定されます。GETBULK は個別の MID Server または全 MID Server に対してグローバルに設定することもできます。設定の優先順位は次のとおりです。 SNMP Probe パラメータMID Server configuration parameterMID Server properties use_getbulk が true の場合、established_session_timeout、request_interval、および request_delay パラメータは無視されます。代わりに retries パラメータが利用可能になります。timeout の設定は use_getscalar と同じです。 デフォルトでは、以下の Probe が GETBULK リクエストを使用します(パラメータ値は true)。 SNMP - Switch - VlanSNMP - Switch - BridgePortTableSNMP - Switch - ForwardingTableSNMP - Switch - SpanningTreeTableSNMP - Network - ArpTableSNMP - Layer 2 Protocol CachesSNMP - F5 BIG IP - System(Service Mapping のお客様のみ) 注: これらの Probe の timeout 値は 5000 です。 falseuse_getscalar SNMP デバイスからのスカラー値の取得と処理を簡素化する機能を有効にします。 use_getscalar が true の場合、established_session_timeout、request_interval、および request_delay パラメータは無視されます。代わりに retries および timeout パラメータが利用可能になります。timeout の設定は use_getbulk と同じです。 falseretries Discovery が個々の GETBULK リクエスト(use_getbulk を参照)または GETNEXT リクエスト(use_getscalar パラメータが true の場合)を完了するために行う追加試行回数。 2 SNMP sys_properties glide.discovery.L3_mapping - ネットワーク機器の TCP/IP レイヤーの論理マッピングを抽出することが目的の場合は有効にする必要があります。これは Layer 2 Discovery の範囲外です。 SNMP Script Include 知っておくと役立つ SNMP Script Include をいくつか紹介します。 SnmpSensor この Sensor に対応する Probe から、指定されたフィールド名の OID を取得します。SNMPResponse クラスで利用しやすいように、Table SNMP フィールド OID の最後のオブジェクト名を自動的に削除します。 SNMPResponse SNMP ペイロード応答インスタンスをラップし、SNMP の単一フィールドまたはテーブルを安全かつ容易に取得するためのメソッドを提供します。 SnmpIdentityInfoParser SNMP - Identity Info MultiProbe の結果を解析し、渡された CIData オブジェクトに汎用 NIC およびシリアル番号を追加します。 SNMPNetworkInterfaces JavaScript SNMP Sensor のネットワークインターフェイス作成を処理します。 一般的な問題と調査方法 MID Server からの SNMP 問題のトラブルシューティングおよび SNMP Walk の実行方法については、KB0696727: MID Server SNMP troubleshooting を参照してください。Wireless Access Point (WAP) の Discovery については、KB1511615 を参照してください。 SNMP に関する FAQ Q: SNMP Discovery は V3 認証情報をサポートしていますか? A: はい。SNMPv3 Credentials 認証情報タイプを使用して V3 認証情報を設定できます。 Q: Wireless Access Point Discovery をサポートしていますか? A: はい。WAP が SNMP で応答することが想定されている場合はサポートしています。応答しない場合はサポートしていません。その場合は WAP の親となるコントローラーを対象にする必要があります。 Q: SNMP デバイスの Discovery 中に遅延が発生するのはなぜですか? A: 一部のケースでは、ランタイム時にはより多くの OID が要求されるため、デバッグ実行時とランタイム実行時で違いが発生します。その結果、ネットワークデバイス上の SNMP サービスは優先度が低いため、デバイスが SNMP クエリに適切に応答しない場合があります。不整合や異常な動作が発生する場合は、Wireshark ログを収集して確認できます。 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 Discovery Troubleshooting (SNMP ディスカバリーのトラブルシューティング)MID サーバー SNMP Troubleshooting (MID サーバー SNMP のトラブルシューティング)Why Did SNMP Put my SNMP Device in the Wrong Table or CI Class (SNMP が SNMP デバイスを間違ったテーブルまたは CI クラスに配置する理由)Discovery Deep Dive - SNMP Classification and Properties (ディスカバリーの詳細:SNMP の分類とプロパティ)