組み込みコレクターでは、デバイスでサポートされている OID に基づく SNMP ベースのデータ収集がサポートされます。SNMP OID ベースの収集ジョブは、Cisco Crosswork UI から、または API を使用して作成でき、SNMP
トラップは API を使用して作成できます。
SNMP コレクターは、設定プロファイル(収集する MIB オブジェクトのリストと取得先のデバイスのリスト)を取得するためのポーリング要求を Crosswork ネットワークコントローラ に行います。事前にパッケージ化された MIB モジュールのリストまたは MIB モジュールのカスタムリストを検索して、対応する OID を決定します。

(注)
|
組み込みコレクターは、システムにすでに含まれている標準的な MIB について、サードパーティ製デバイスでの SNMP ポーリングを有効にします。独自の MIB は、収集要求が独自の MIB から MIB テーブル名またはスカラー名を参照する場合にのみ必要です。ただし、要求が
OID ベースの場合、MIB は必要ありません。
|
OID が解決されると、SNMP コレクターへの入力として提供されます。
セクションカスタムパッケージの追加の説明に従って、組み込みコレクターインスタンスにデバイスパッケージをインポートできます。
データポーリングとトラップでサポートされている SNMP バージョンは次のとおりです。
-
ポーリングデータ
-
SNMP V2
-
SNMP V3(no auth nopriv、auth no priv、authpriv)
-
サポートされている認証プロトコル:SHA-1、MD5
-
サポートされている priv プロトコル:AES-128、AES-192、AES-256、CiscoAES192、CiscoAES256、DES、および 3-DES。
-
トラップ
デバイスでの設定例:
次の表に、さまざまな SNMP 機能を有効にするサンプルコマンドを示します。詳細については、プラットフォーム固有のドキュメントを参照してください。
表 2. デバイスで SNMP を有効にする設定例
|
バージョン
|
コマンド
|
目的
|
|
V2c
|
snmp-server group <group_name> v2c
snmp-server user <user_name> <group_name> v2c
|
SNMP バージョン、ユーザー/ユーザーグループの詳細を定義します。
|
|
snmp-server host <host_ip> traps SNMP version <community_string> udp-port 31062
snmp-server host a.b.c.d traps version 2c v2test udp-port 31062
|
トラップデータの転送先を定義します。
|
(注)
|
ここに記載されている IP アドレスは、組み込みコレクターの仮想 IP アドレスである必要があります。
|
|
|
snmp-server traps snmp linkup
snmp-server traps snmp linkdown
|
リンクステータスを通知するトラップを有効にします。
|
|
V3
|
(注)
|
SNMPv3 ユーザーのパスワードは、8 バイト以上にする必要があります。
|
|
snmp-server host <host_IP> traps version 3 priv <user_name> udp-port 31062
|
トラップデータの転送先を定義します。
|
(注)
|
ここに記載されている IP アドレスは、組み込みコレクタの仮想 IP アドレスである必要があります。
|
|
|
snmp-server user <user_name> <group_name> v3 auth md5 <password> priv aes 128 <password>
|
指定した名前付きアクセス リストのメンバに対して認証をイネーブルにするように SNMP サーバ グループを設定します。
|
|
snmp-server view <user_name> < MIB > included
|
何を報告する必要があるかを定義します。
|
|
snmp-server group <group_name> v3 auth notify <user_name> read <user_name> write <user_name>
|
SNMP バージョン、ユーザー/ユーザーグループの詳細を定義します。
|
|
snmp-serverenabletrapssnmp [authentication] [linkup] [linkdown] [warmstart] [coldstart]
|
-
オプションのキーワードを一切指定せずに使用した場合、authenticationFailure、linkUp、linkDown、warmStart、および coldStart の各トラップをイネーブルにします。
-
キーワード指定で使用した場合は、指定したタイプのトラップのみがイネーブルになります。たとえば、すべてのインターフェイスに対して linkUp と linkDown の SNMP トラップだけをグローバルにイネーブルにするには、このコマンドの snmp-serverenablesnmplinkuplinkdown という形式を使用します。
|
SNMP コレクターは、次の操作をサポートしています。
-
スカラー

(注)
|
1 つの収集で複数のスカラー OID を要求する場合は、デバイスへの 1 つの getbulkrequestquery で複数の SNMP GET 要求をパックできます。
|
-
TABLE
-
WALK
-
COLUMN
これらの操作は、センサー設定で定義されます(以下のペイロード例を参照)。

(注)
|
デバイスの応答時間が 1,500 ミ リ秒を超える場合は、オプションの deviceParams 属性 snmpRequestTimeoutMillis (ペイロード例には表示されていない)を使用する必要があります。デバイスの応答時間が長いことが確実でない限り、snmpRequestTimeoutMillis を使用することは推奨されません。
snmpRequestTimeoutMillis の値はミリ秒単位で指定する必要があります。
デフォルトの最小値は 1,500 ミリ秒です。ただし、この属性の最大値に制限はありません。
|
次に、SNMP 収集ジョブの例を示します。
{
"collection_job": {
"application_context": {
"context_id": "collection-job1",
"application_id": "APP1"
},
"collection_mode": {
"lifetime_type": "APPLICATION_MANAGED",
"collector_type": "SNMP_COLLECTOR"
},
"job_device_set": {
"device_set": {
"devices": {
"device_ids": [
"c70fc034-0cbd-443f-ad3d-a30d4319f937",
"8627c130-9127-4ed7-ace5-93d3b4321d5e",
"c0067069-c8f6-4183-9e67-1f2e9bf56f58"
]
}
}
},
"sensor_input_configs": [
{
"sensor_data": {
"snmp_sensor": {
"snmp_mib": {
"oid": "1.3.6.1.2.1.1.3.0",
"snmp_operation": "SCALAR"
}
}
},
"cadence_in_millisec": "60000"
},
{
"sensor_data": {
"snmp_sensor": {
"snmp_mib": {
"oid": "1.3.6.1.2.1.31.1.1",
"snmp_operation": "TABLE"
}
}
},
"cadence_in_millisec": "60000"
}
],
"sensor_output_configs": [
{
"sensor_data": {
"snmp_sensor": {
"snmp_mib": {
"oid": "1.3.6.1.2.1.1.3.0",
"snmp_operation": "SCALAR"
}
}
},
"destination": {
"destination_id": "4c2ab662-2670-4b3c-b7d3-b94acba98c56",
"context_id": "topic1_461cb8aa-a16a-44b8-b79f-c3daf3ea925f"
}
},
{
"sensor_data": {
"snmp_sensor": {
"snmp_mib": {
"oid": "1.3.6.1.2.1.31.1.1",
"snmp_operation": "TABLE"
}
}
},
"destination": {
"destination_id": "4c2ab662-2670-4b3c-b7d3-b94acba98c56",
"context_id": "topic2_e7ed6300-fc8c-47ee-8445-70e543057f8a"
}
}
]
}
}
SNMP トラップ収集ジョブ
SNMP トラップ収集ジョブは、API を介してのみ作成できます。トラップリスナーはポートでリッスンし、(関心のあるトピックに基づいて)受信者にデータをディスパッチします。

重要
|
SNMP トラップ収集を開始する前に、Common EMS Services アプリケーションをインストールし、SNMP のホスト情報を構成します。
|
組み込みコレクターは、UDP ポート 31062 でトラップをリッスンします。

(注)
|
SNMP トラップ収集ジョブを送信する前に、SNMP トラップをデバイス上で正しく設定して、組み込みコレクターの仮想 IP アドレスに送信する必要があります。
|
SNMP トラップ収集ジョブのワークフロー
SNMP トラップを受信すると、 次のように動作します。
-
デバイスに対して収集ジョブが作成されているかどうかを確認します。
-
トラップバージョンとコミュニティ文字列を確認します。

(注)
|
組み込みコレクターが SNMP トラップのコミュニティストリングをチェックしないようにするには、Crosswork UI を介してデバイスを追加するときに、[SNMPでトラップチェックを無効化(SNMP Disable Trap Check)]
チェックボックスをオンにします。このオプションの詳細については、ユーザーインターフェイスを使用したデバイスの追加を参照してください。
|
-
SNMP v3 の場合は、ユーザー認証と priv プロトコルとクレデンシャルも検証します。

(注)
|
SNMPV3 auth-priv トラップは、デバイスまたはルータの engineId に依存して、ローカル USM ユーザーテーブルを維持します。したがって、デバイスまたはルータの engineId が変更されるたびに、トラップの受信が中断されます。トラップの受信を再開するには、それぞれのデバイスを取り外して取り付けてください。
|
センサーパスに示されたトラップ OID に基づいてトラップをフィルタ処理し、要求されたトラップのみを送信します。
収集ジョブが無効か、デバイスに設定がないか、またはトラップが受信されない場合、ジョブのステータスは [不明(Unknown)] のままです。サポートされているトラップと MIB のリストについては、「SNMP での収集用に事前にロードしたトラップと MIB のリスト」を参照してください。
次の 3 つのタイプの非 YANG/OID ベースのトラップをサポートします。
表 3. サポートされている非 YANG/OID ベースのトラップのリスト
| センサーパス |
目的 |
| * |
フィルタなしでデバイスからプッシュされたすべてのトラップを取得します。 |
| MIB レベルトラップ |
1 つの MIB 通知の OID
(例:すべての isis-mib レベルトラップを取得する場合は 1.3.6.1.2.1.138.0)
|
| 特定のトラップ |
特定のトラップの OID
(例:linkUp トラップを取得する場合は 1.3.6.1.6.3.1.1.5.4)
|
次に、SNMP トラップ収集ジョブの例を示します。
{
"collection_job": {
"application_context": {
"context_id": "collection-job1",
"application_id": "APP1"
},
"collection_mode": {
"lifetime_type": "APPLICATION_MANAGED",
"collector_type": "TRAP_COLLECTOR"
},
"job_device_set": {
"device_set": {
"devices": {
"device_ids": [
"a9b8f43d-130b-4866-a26a-4d0f9e07562a",
"8c4431a0-f21d-452d-95a8-84323a19e0d6",
"eaab2647-2351-40ae-bf94-6e4a3d79af3a"
]
}
}
},
"sensor_input_configs": [
{
"sensor_data": {
"trap_sensor": {
"path": "1.3.6.1.6.3.1.1.4"
}
},
"cadence_in_millisec": "60000"
}
],
"sensor_output_configs": [
{
"sensor_data": {
"trap_sensor": {
"path": "1.3.6.1.6.3.1.1.4"
}
},
"destination": {
"destination_id": "4c2ab662-2670-4b3c-b7d3-b94acba98c56",
"context_id": "topic1_696600ae-80ee-4a02-96cb-3a01a2415324"
}
}
]
}
}
外部アプリケーションへのトラップ転送の有効化
デバイス上の Crosswork に必要なトラップのみを選択して有効にすることをお勧めします。
接続先で受信したデータのトラップタイプを識別するには、oid (OBJECT_IDENTIFIER。1.3.6.1.6.3.1.1.4.1.0 など)と OidRecords の oid に関連付けられている strValue を検索します(アプリケーションは対象の OID を照合してトラップの種類を特定できます)。
次に、トラップを外部アプリケーションに転送するための値とペイロードの例を示します。
-
リンク アップ
1.3.6.1.6.3.1.1.4.1.0 = 1.3.6.1.6.3.1.1.5.4
-
Link Down
1.3.6.1.6.3.1.1.4.1.0 = 1.3.6.1.6.3.1.1.5.3
-
Syslog
1.3.6.1.6.3.1.1.4.1.0 = 1.3.6.1.4.1.9.9.41.2.0.1
-
Cold Start
1.3.6.1.6.3.1.1.4.1.0 = 1.3.6.1.6.3.1.1.5.1
{
"nodeIdStr": "BF5-XRV9K1.tr3.es",
"nodeIdUuid": "C9tZ5lJoSJKf5OZ67+U5JQ==",
"collectionId": "133",
"collectionStartTime": "1580931985267",
"msgTimestamp": "1580931985267",
"dataGpbkv": [
{
"timestamp": "1580931985267",
"name": "trapsensor.path",
"snmpTrap": {
"version": "V2c",
"pduType": "TRAP",
"v2v3Data": {
"agentAddress": "172.70.39.227",
"oidRecords": [
{
"oid": "1.3.6.1.2.1.1.3.0",
"strValue": "7 days, 2:15:17.02"
},
{
"oid": "1.3.6.1.6.3.1.1.4.1.0", // This oid is the Object Identifier.
"strValue": "1.3.6.1.6.3.1.1.5.3" // This is the value that determines the kind of trap.
},
{
"oid": "1.3.6.1.2.1.2.2.1.1.8",
"strValue": "8"
},
{
"oid": "1.3.6.1.2.1.2.2.1.2.8",
"strValue": "GigabitEthernet0/0/0/2"
},
{
"oid": "1.3.6.1.2.1.2.2.1.3.8",
"strValue": "6"
},
{
"oid": "1.3.6.1.4.1.9.9.276.1.1.2.1.3.8",
"strValue": "down"
}
]
}
}
}
],
"collectionEndTime": "1580931985267",
"collectorUuid": "YmNjZjEzMTktZjFlOS00NTE5LWI4OTgtY2Y1ZmQxZDFjNWExOlRSQVBfQ09MTEVDVE9S",
"status": {
"status": "SUCCESS"
},
"modelData": {},
"sensorData": {
"trapSensor": {
"path": "1.3.6.1.6.3.1.1.5.4"
}
},
"applicationContexts": [
{
"applicationId": "APP1",
"contextId": "collection-job-snmp-traps"
}
]
}