収集ジョブについて
収集ジョブは、Cisco Crosswork Data Gateway が実行することが期待されるタスクを記述します。 アプリケーションは、収集ジョブを介してデータ収集を要求します。次に、Cisco Crosswork はこれらの収集ジョブを Cisco Crosswork Data Gateway に割り当てて、要求に対応できるようにします。
個別の収集ジョブを使用して、一度に複数のタイプのデータを収集できます。
作成した収集ジョブごとに、Cisco Crosswork Data Gateway は収集要求を実行し、収集したデータを優先データ先に保管します。
Cisco Crosswork Data Gateway では、次のタイプの収集ジョブを作成できます。
(注) |
|
アクティブ収集ジョブのスマートライセンス
データをサードパーティの宛先に転送できる収集ジョブを作成できるようにするには、次のスマートライセンス要件が満たされていることを確認してください。
-
メインメニューから、[管理(Administration)] > [アプリケーション管理(Application Management)] > [スマートライセンス(Smart License)] に移動し、Cisco Crosswork アプリケーションを選択します。
-
ステータスが次のようになっていることを確認します。
-
[登録ステータス(Registration Status )]:[登録済み(Registered)]
Cisco Smart Software Manager(CSSM)に登録済みであり、予約済みライセンス機能の使用が許可されていることを示します。
-
[ライセンス認証ステータス(License Authorization Status)]:[認証済み(Authorized)]([準拠(In Compliance)])
外部収集ジョブのデバイス数を超えていないことを示します。
-
評価期間([登録ステータス(Registration Status)] が未登録、[ライセンス承認ステータス(License Authorization Status)] が評価モード)では、評価期間が終了するまで収集ジョブを作成することができます。この後、ライセンス機能を使用するには、Cisco Smart Software Manager(CSSM)に登録する必要があります。詳細については、「ライセンスの管理」セクションを参照してください。
評価期間の終了後に Cisco Smart Software Manager(CSSM)に登録しないと、収集ジョブを作成できません。ただし、この場合も収集ジョブは表示および削除できます。
CLI 収集ジョブ
Cisco Crosswork Data Gateway は、ネットワークデバイスからの CLI ベースのデータ収集をサポートしています。このタイプの収集ジョブでは、show コマンドのみがサポートされています。
(注) |
|
以下は、CLI 収集ジョブのサンプルです。詳細については、Cisco DevNet の API ドキュメントを参照してください。
{
"collection_job": {
"application_context": {
"context_id": "collection-job1",
"application_id": "APP1"
},
"collection_mode": {
"lifetime_type": "APPLICATION_MANAGED",
"collector_type": "CLI_COLLECTOR"
},
"job_device_set": {
"device_set": {
"devices": {
"device_ids": [
"658adb03-cc61-448d-972f-4fcec32cbfe8"
]
}
}
},
"sensor_input_configs": [
{
"sensor_data": {
"cli_sensor": {
"command": "show platform"
}
},
"cadence_in_millisec": "tel:60000"
}
],
"sensor_output_configs": [
{
"sensor_data": {
"cli_sensor": {
"command": "show platform"
}
},
"destination": {
"destination_id": "1e71f2fb-ea65-4242-8efa-e33cec71b369",
"context_id": "topic1"
}
}
]
}
}
SNMP 収集ジョブ
Cisco Crosswork Data Gateway では、デバイスでサポートされている OID に基づく SNMP ベースのデータ収集をサポートしています。
SNMP コレクタは、設定プロファイル(収集する MIB オブジェクトのリストと取得先のデバイスのリスト)を取得するためのポーリング要求を Cisco Crosswork に行います。事前にパッケージ化された MIB モジュールのリストまたは MIB モジュールのカスタムリストを検索して、対応する OID を決定します。
(注) |
Cisco Crosswork Data Gateway は、システムにすでに含まれている標準的な MIB のサードパーティ製デバイスで SNMP ポーリングを有効にします。独自の MIB は、収集要求が独自の MIB から MIB テーブル名またはスカラー名を参照する場合にのみ必要です。ただし、要求が OID ベースの場合、MIB は必要ありません。 |
OID が解決されると、SNMP コレクタへの入力として提供されます。
カスタム ソフトウェア パッケージの追加の説明に従って、Crosswork Data Gateway VM にデバイスパッケージをインポートできます。
次の SNMP バージョンがサポートされています。
-
SNMPv1
-
SNMPv2c
-
SNMPv3
次の表に、サポートされているプライバシープロトコルと、SNMP および SNMP トラップ収集ジョブの収集ペイロードで指定する必要のある値を示します。
プロトコル |
SNMP 収集ペイロード |
SNMP トラップ収集ペイロード |
---|---|---|
aes |
AES |
該当なし |
des56 |
DES |
該当なし |
3des |
3DES |
該当なし |
aes 128 |
AES128 |
該当なし |
aes 192 |
AES192 または CiscoAES192(シスコ固有) |
該当なし |
aes 256 |
AES256 または CiscoAES256(シスコ固有) |
該当なし |
(注) |
|
デバイスでの設定例:
バージョン |
コマンド |
目的 |
---|---|---|
V1 |
|
SNMP バージョン、ユーザー/ユーザーグループの詳細を定義します。 |
次の例を参考にしてください。
|
トラップデータの転送先を定義します。 |
|
|
リンクステータスを通知するトラップを有効にします。 |
|
V2c |
|
SNMP バージョン、ユーザー/ユーザーグループの詳細を定義します。 |
|
トラップデータの転送先を定義します。 |
|
|
リンクステータスを通知するトラップを有効にします。 |
|
V3 |
|
SNMP バージョン、ユーザー/ユーザーグループの詳細を定義します。 |
|
トラップデータの転送先を定義します。 |
|
|
リンクステータスを通知するトラップを有効にします。 |
SNMP コレクタは、次の操作をサポートしています。
-
スカラー
-
TABLE
-
MIB_WALK
-
TRAP
-
DEVICE_PACKAGE
これらの操作は、センサー設定で定義されます(以下のペイロード例を参照)。
(注) |
デバイスの応答時間が非常に長い場合に使用する必要があるオプションの deviceParams属性 snmpRequestTimeoutMillis (サンプルペイロードには表示されていません)があります。デバイスの応答時間が非常に長いことが確実でない限り、snmpRequestTimeoutMillis を使用することは推奨されません。 snmpRequestTimeoutMillis の値はミリ秒単位で指定する必要があります。 デフォルト値は 1500 ミリ秒です。 最小値は 1500 ミリ秒です。 ただし、この属性の最大値に制限はありません。 |
次に、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 トラップも同様の方法で処理されます。トラップリスナーはポートでリッスンし、(関心のあるトピックに基づいて)受信者にデータをディスパッチします。
Cisco Crosswork Data Gateway は、次の 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) |
(注) |
|
トラップを受信すると、Cisco Crosswork Data Gateway は次の検証を行います。
-
デバイスに対して収集ジョブが作成されているかどうかを確認します。
-
トラップバージョンとコミュニティ文字列を確認します。
-
SNMP v3 の場合は、ユーザー認証と priv プロトコルとログイン情報を検証します。
Cisco Crosswork Data Gateway は、センサーパスに示されたトラップ OID に基づいてトラップをフィルタ処理し、要求されたトラップのみを送信します。
Cisco Crosswork Data Gateway は、次の YANG パスをサポートしています。
センサーパス | 目的 |
---|---|
snmp-trap-raw-oper:traps/data | フィルタなしでデバイスからプッシュされたすべてのトラップを取得します。 |
IF-MIB:notifications | すべての IF-MIB 通知(例:linkUp、linkDown など)を取得します。 |
ISIS-MIB:notifications | すべての ISIS-MIB 通知を取得します。 |
SNMPv2-MIB:notifications | すべての SNMPv2 MIB 通知を取得します。 |
次に、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"
}
}
]
}
}
外部アプリケーションへのトラップ転送の有効化
現在の実装では、SNMP トラップ収集ジョブの場合、SNMP トラップ OID がセンサーパスに指定されていなくても、すべてのトラップが指定されたデータ宛先に送信されます。
(注) |
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"
}
]
}
MDT 収集ジョブ
Crosswork Data Gateway は、モデル駆動型テレメトリ(MDT)を使用してネットワークデバイスからのデータ収集をサポートし、デバイスからのテレメトリストリームを直接消費します(IOS-XR ベースのプラットフォームのみ)。
(注) |
|
次のトランスポートモードのデータ収集をサポートします。
-
MDT TCP ダイヤルアウトモード
次に、MDT 収集のペイロードの例を示します。
{
"collection_job": {
"job_device_set": {
"device_set": {
"device_group": "mdt"
}
},
"sensor_output_configs": [{
"sensor_data": {
"mdt_sensor": {
"path": "Cisco-IOS-XR-infra-statsd-oper:infra-statistics/interfaces/interface/latest/generic-counters"
}
},
"destination": {
"context_id": "cw.mdt_sensor.cisco-ios-xr-infra-statsd-oper.gpb",
"destination_id": "c2a8fba8-8363-3d22-b0c2-a9e449693fae"
}
},
{
"sensor_data": {
"mdt_sensor": {
"path": "Cisco-IOS-XR-infra-statsd-oper:infra-statistics/interfaces/interface/data-rate"
}
},
"destination": {
"context_id": "cw.mdt_sensor.cisco-ios-xr-infra-statsd-oper.gpb",
"destination_id": "c2a8fba8-8363-3d22-b0c2-a9e449693fae"
}
}
],
"sensor_input_configs": [{
"sensor_data": {
"mdt_sensor": {
"path": "Cisco-IOS-XR-infra-statsd-oper:infra-statistics/interfaces/interface/data-rate"
}
},
"cadence_in_millisec": "70000"
}, {
"sensor_data": {
"mdt_sensor": {
"path": "Cisco-IOS-XR-infra-statsd-oper:infra-statistics/interfaces/interface/latest/generic-counters"
}
},
"cadence_in_millisec": "70000"
}
],
"application_context": {
"context_id": "c4",
"application_id": "a4-mdt"
},
"collection_mode": {
"lifetime_type": "APPLICATION_MANAGED",
"collector_type": "MDT_COLLECTOR"
}
}
}
gNMI 収集ジョブ
Cisco Crosswork は、Cisco Crosswork Data Gateway を介した gRPC ネットワーク管理インターフェイス(gNMI)ベースのテレメトリデータの収集をサポートしています。サブスクリプションに基づく gNMI ダイヤルイン(gRPC ダイヤルイン)ストリーミングのテレメトリデータと、要求した宛先への後続のサブスクリプション応答(通知)のリレーのみをサポートします。
(注) |
モデルがターゲットのデバイスプラットフォームでサポートされている限り、gNMI 収集はサポートされます。 gNMI 収集ジョブを送信するには、デバイスで gNMI を設定しておく必要があります。プラットフォーム固有のマニュアルを確認します。 |
デバイスの設定例については、「デバイスの設定例:gNMI」を参照してください。
gNMI では、セキュアモードと非セキュアモードの両方をデバイスで共存させることができます。Cisco Crosswork は、インベントリで渡された情報に基づいて、非セキュアモードよりもセキュアモードを優先します。
デバイスがリロードされると、gNMI コレクタは既存のサブスクリプションがデバイスに再サブスクライブされるようにします。
gNMI 仕様には、メッセージの終わりをマークする方法がありません。したがって、宛先またはディスパッチのパターンは gNMI コレクタではサポートされません。
Cisco Crosswork Data Gateway は、すべてのタイプのストリームベースのサブスクリプションをサポートしています。
-
サンプル:パターンベースの収集。
-
ON_CHANGE:最初の応答には、サブスクライブしているパスのすべての要素の状態が含まれ、その後に、変更リーフ値に対する後続の更新が含まれています。
-
TARGET_DEFINED:ルータ/デバイスは、サブスクライブしているパス(つまり、SAMPLE または ON_CHANGE のいずれか)に基づいてリーフ単位でサブスクリプションのモードを選択します。
(注) |
|
次に、gNMI 収集ペイロードのサンプルを示します。
{
"collection_job": {
"job_device_set": {
"device_set": {
"device_group": "gnmi"
}
},
"sensor_input_configs": [
{
"sensor_data": {
"gnmi_sensor": {
"path":{
"origin":"",
"elem":[
{
"name":"interfaces"
},
{
"name":"interface",
"key":{
"name":"GigabitEthernet0/0/0/4"
}
}
]
},
"mode" : "SAMPLE"
}
},
"cadence_in_millisec": "30000"
}
],
"sensor_output_configs": [
{
"sensor_data": {
"gnmi_sensor": {
"path":{
"origin":"",
"elem":[
{
"name":"interfaces"
},
{
"name":"interface",
"key":{
"name":"GigabitEthernet0/0/0/4"
}
}
]
},
"mode" : "SAMPLE"
}
},
"destination": {
"context_id": "topic_gnmi",
"destination_id": "c2a8fba8-8363-3d22-b0c2-a9e449693fae"
}
}
],
"application_context": {
"context_id": "gnmi_test_context",
"application_id": "gnmi"
},
"collection_mode": {
"lifetime_type": "APPLICATION_MANAGED",
"collector_type": "GNMI_COLLECTOR"
}
}
}
デバイスの設定例:gNMI
Cisco IOS XR デバイス
-
HTTP/2 接続で gRPC を有効にします。
Router#configure Router(config)#grpc Router(config-grpc)#port <port-number>
ポート番号の範囲は 57344 ~ 57999 です。ポート番号が使用できない場合は、エラーが表示されます。
-
セッション パラメータを設定します。
Router(config)#grpc{ address-family | dscp | max-request-per-user | max-request-total | max-streams | max-streams-per-user | no-tls | service-layer | tls-cipher | tls-mutual | tls-trustpoint | vrf }
値は次のとおりです。
-
address-family:
アドレス ファミリ識別子タイプを設定します -
dscp:
送信された gRPC で QoS マーキング DSCP を設定します -
max-request-per-user:
ユーザーあたりの同時要求の最大数を設定します -
max-request-total:
合計同時要求の最大数を設定します -
max-streams:
同時 gRPC 要求の最大数を設定します。サブスクリプションの上限は 128 要求です。デフォルトは 32 要求です -
max-streams-per-user:
ユーザーあたりの同時 gRPC 要求の最大数を設定します。サブスクリプションの上限は 128 要求です。デフォルトは 32 要求です -
no-tls:
トランスポート レイヤ セキュリティ(TLS)を無効化します。TLS はデフォルトで有効になっています。 -
service-layer:
gRPC サービス レイヤの設定を有効にします -
tls-cipher:
gRPC TLS 暗号スイートを有効にします -
tls-mutual:
相互認証を設定します -
tls-trustpoint:
トラストポイントを設定します -
vrf:
サーバー VRF を有効にします
-
-
TPA(サードパーティ製アプリケーションのトラフィック保護)を有効にします。
tpa vrf default address-family ipv4 default-route mgmt update-source dataports MgmtEth0/RP0/CPU0/0
次に、gNMI サーバを非セキュア モードで有効にする例を示します。
Device# configure terminal
Device(config)# gnmi-yang
Device(config)# gnmi-yang server
Device(config)# gnmi-yang port 50000 <The default port is 50052.>
Device(config)# end
Device
次に、gNMI サーバをセキュア モードで有効にする例を示します。
証明書とトラストポイントは、セキュア gNMI サーバにのみ必要です。
Device# configure terminal
Device(config)# gnmi-yang server
Device(config)# gnmi-yang secure-server
Device(config)# gnmi-yang secure-trustpoint trustpoint1
Device(config)# gnmi-yang secure-client-auth
Device(config)# gnmi-yang secure-port 50001 <The default port is 50051.>
Device(config)# end
Device
証明書とトラストポイントは、セキュア gNMI サーバにのみ必要です。
Linux での OpenSSL を使用した証明書の作成
次に、Linux マシン上で OpenSSL を使用して証明書を作成する例を示します。
# Setting up a CA
openssl genrsa -out rootCA.key 2048
openssl req -subj /C=/ST=/L=/O=/CN=rootCA -x509 -new -nodes -key rootCA.key -sha256 -out rootCA.pem
# Setting up device cert and key
openssl genrsa -out device.key 2048
openssl req -subj /C=/ST=/L=/O=/CN=<hostnameFQDN> -new -key device.key -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -sha256
# Encrpyt device key - needed for input to IOS
openssl rsa -des3 -in device.key -out device.des3.key -passout pass:<password - remember this for later>
# Setting up client cert and key
openssl genrsa -out client.key 2048
openssl req -subj /C=/ST=/L=/O=/CN=gnmi_client -new -key client.key -out client.csr
openssl x509 -req -in client.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out client.crt -sha256
Cisco IOS XR デバイスへの証明書のインストール
Cisco IOS XR に証明書をインストールするには、次のパスのファイルを置き換えます。
-
XR マシンにログインします。
-
端末プロンプトで run コマンドを入力します。
RP/0/RP0/CPU0:xrvr-7.2.1#run
-
次のディレクトリに移動します。
cd /misc/config/grpc
-
次のファイルの内容を置き換えます。
-
ems.pem の内容を device.crt に置き換えます。
-
ems.key の内容を device.key に置き換えます。
-
ca.cert の内容を rootCA.pem に置き換えます。
-
Cisco IOS XE デバイスへの証明書のインストール
次に、Cisco IOS XE デバイスに証明書をインストールする例を示します。
# Send:
Device# configure terminal
Device(config)# crypto pki import trustpoint1 pem terminal password password1
# Receive:
% Enter PEM-formatted CA certificate.
% End with a blank line or "quit" on a line by itself.
# Send:
# Contents of rootCA.pem, followed by newline + 'quit' + newline:
-----BEGIN CERTIFICATE-----
<snip>
-----END CERTIFICATE-----
quit
# Receive:
% Enter PEM-formatted encrypted private General Purpose key.
% End with "quit" on a line by itself.
# Send:
# Contents of device.des3.key, followed by newline + 'quit' + newline:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,D954FF9E43F1BA20
<snip>
-----END RSA PRIVATE KEY-----
quit
# Receive:
% Enter PEM-formatted General Purpose certificate.
% End with a blank line or "quit" on a line by itself.
# Send:
# Contents of device.crt, followed by newline + 'quit' + newline:
-----BEGIN CERTIFICATE-----
<snip>
-----END CERTIFICATE-----
quit
# Receive:
% PEM files import succeeded.
Device(config)#
# Send:
Device(config)# crypto pki trustpoint trustpoint1
Device(ca-trustpoint)# revocation-check none
Device(ca-trustpoint)# end
Device#
デバイスと Crosswork Data Gateway 間でのセキュア gNMI 通信の有効化
セキュアな gNMI 設定ワークフロー:
-
トラストチェーンを Cisco Crosswork の Crosswork Crosswork 証明書管理 UI にアップロードします。「gNMI 証明書の設定」を参照してください。
-
Cisco Crosswork の UI からセキュア gNMI ポートの詳細を使用してデバイス設定を更新します。Cisco Crosswork の UI からのデバイス設定を参照してください
gNMI 証明書の設定
Crosswork Data Gateway は gNMI クライアントとして機能し、デバイスは gNMI サーバーとして機能します。Crosswork Data Gateway は、信頼チェーンを使用してデバイスを検証します。すべてのデバイスにグローバルな信頼チェーンがあることが期待されます。信頼チェーンが複数ある場合は、すべてのデバイス信頼チェーン(単一または複数のベンダー)を 1 つの .pem ファイルに追加し、この .pem ファイルを Crosswork 証明書管理の UI にアップロードします。デバイスにトラストポイントを設定するためのサンプルデバイス設定については、「デバイスの設定例:gNMI」を参照してください。
(注) |
Crosswork にアップロードできる gNMI 証明書は 1 つのみです。 |
gNMI 証明書を設定するには、次の手順を実行します。
手順
ステップ 1 |
Cisco Crosswork の UI から、[管理(Administration)] > [証明書管理(Certificate Management)] に移動します。 |
||
ステップ 2 |
[+] アイコンをクリックして証明書を追加します。 |
||
ステップ 3 |
[証明書の追加(Add Certificate)] ウィンドウで、次の詳細情報を入力します。
|
||
ステップ 4 |
[保存(Save)] をクリックします。 |
gNMI 証明書が正常に追加されると、設定済みの証明書のリストに表示されます。
Cisco Crosswork の UI からのデバイス設定
Crosswork UI で gNMI 証明書を設定したら、安全なプロトコルの詳細でデバイスを更新します。
-
Cisco Crosswork UI から、[デバイス管理(Device Management)] > [ネットワークデバイス(Network Devices)]に移動します。
-
デバイスを選択し、[編集(Edit)] をクリックして、[プロトコル(Protocol)] フィールドの詳細を次のように更新します。
安全な通信のための [プロトコル(Protocol)]:GNMI_SECURE ポート。
Syslog 収集ジョブ
Cisco Crosswork Data Gateway は、デバイスからの Syslog ベースのイベント収集をサポートしています。サポートされている Syslog 形式は次のとおりです。
-
RFC5424 syslog 形式
-
RFC3164 syslog 形式
(注) |
Syslog 収集ジョブを送信する前に、デバイスで Syslog を設定する必要があります。プラットフォーム固有のドキュメントを参照してください。 |
デバイスの設定例については、「RFC3164/RFC5424 形式の Syslog の設定」を参照してください。
以下は、Syslog 収集ペイロードの例です。
{
"collection_job": {
"job_device_set": {
"device_set": {
"devices": {
"device_ids": [
"c6f25a33-92e6-468a-ba0d-15490f1ce787"
]
}
}
},
"sensor_output_configs": [
{
"sensor_data": {
"syslog_sensor": {
"pris": {
"facilities": [0, 1, 3, 23,4],
"severities": [0, 4, 5, 6, 7]
}
}
},
"destination": {
"context_id": "syslogtopic",
"destination_id": "c2a8fba8-8363-3d22-b0c2-a9e449693fae"
}
}
],
"sensor_input_configs": [
{
"sensor_data": {
"syslog_sensor": {
"pris": {
"facilities": [0,1, 3, 23,4],
"severities": [0,4, 5, 6, 7]
}
}
},
"cadence_in_millisec": "60000"
}
],
"application_context": {
"context_id": "demomilesstone2syslog",
"application_id": "SyslogDemo2"
},
"collection_mode": {
"lifetime_type": "APPLICATION_MANAGED",
"collector_type": "SYSLOG_COLLECTOR"
}
}
}
ペイロードに記載されている機能と重大度に基づいて、一致する Syslog イベントが指定された宛先に送信されます。一致しない他のすべての syslog イベントはドロップされます。
RFC3164/RFC5424 形式の Syslog の設定
この項では、デバイスで RFC3164 形式または RFC5424 形式の syslog を設定するための設定例を示します。同じ設定を、デバイスの非セキュア Syslog 設定に使用することもできます。
RFC3164 Syslog 形式の設定
(注) |
次のコードで強調表示されている設定は、解析された出力でのフォーマットの問題を回避するために必要です。 |
Cisco IOS XR デバイスの場合:
logging <server 1> port 9514 OR logging <server 1> vrf <vrfname> port 9514
logging trap [severity]
logging facility [facility value]
logging suppress duplicates
service timestamps log datetime msec show-timezone year
logging hostnameprefix <some host related prefix e.g.iosxrhost2>
Cisco IOS XE デバイスの場合:
no logging message-counter syslog
logging trap <serverity>
logging facility <facility>
logging host 172.29.194.174 transport tcp port 9898 session-id string <sessionidstring> --> To use TCP channel
OR
logging host 172.29.194.174 transport udp port 9514 session-id string <sessionidstring> ---> To use UDP channel
OR
logging host <cdg ip> vrf Mgmt-intf transport udp port 9514 session-id string <sessionidstring> --> To use UDP via vrf
service timestamps log datetime msec year show-timezone
RFC5424 Syslog 形式の設定
Cisco IOS XR デバイスの場合:
logging <server 1> port 9514 OR logging <server 1> vrf <vrfname> port 9514
logging trap [severity]
logging facility [facility value]
logging suppress duplicates
service timestamps log datetime msec show-timezone year
logging hostnameprefix <some host related prefix e.g.iosxrhost2>
logging format rfc5424
Cisco IOS XE デバイスの場合:
no logging message-counter syslog
logging trap <serverity>
logging facility <facility>
logging host 172.29.194.174 transport tcp port 9898 session-id string <sessionidstring> --> To use TCP channel
OR
logging host 172.29.194.174 transport udp port 9514 session-id string <sessionidstring> ---> To use UDP channel
OR
logging host <cdg ip> vrf Mgmt-intf transport udp port 9514 session-id string <sessionidstring> --> To use UDP via vrf
service timestamps log datetime msec year show-timezone
logging trap syslog-format 5424 --> if applicable
デバイスでのセキュア Syslog の設定
デバイスへのセキュアな syslog 通信を確立するには、次の手順を実行します。
-
Crosswork の [証明書管理UI(Certificate Management UI)] ページから Cisco Crosswork 信頼チェーンをダウンロードします。
-
syslog 設定用の Crosswork トラストチェーンを使用してデバイスを設定します。
Syslog 証明書のダウンロード
-
Cisco Crosswork の UI で、[管理(Administration)] > [証明書管理(Certificate Management)] に移動します。
-
下の画像に示すように、「device-syslog」行で i をクリックします。
-
[すべてエクスポート(Export All)] をクリックして、証明書をダウンロードします。
次のファイルがシステムにダウンロードされます。
デバイスの Syslog 設定
TLS を有効にする XR デバイスの設定例RP/0/RSP0/CPU0:ASR9k(config)#crypto ca trustpoint syslog-root
RP/0/RSP0/CPU0:ASR9k(config-trustp)#enrollment terminal
RP/0/RSP0/CPU0:ASR9k(config-trustp)#crl optional
RP/0/RSP0/CPU0:ASR9k(config-trustp)#commit
RP/0/RSP0/CPU0:ASR9k(config-trustp)#end
RP/0/RSP0/CPU0:ASR9k#
RP/0/RSP0/CPU0:ASR9k#crypto ca authenticate syslog-root
Fri Jan 22 11:07:41.880 GMT
Enter the base 64 encoded certificate.
End with a blank line or the word "quit" on a line by itself
-----BEGIN CERTIFICATE-----
MIIGKzCCBBOgAwIBAgIRAKfyU89yjmrXVDRKBWuSGPgwDQYJKoZIhvcNAQELBQAw
bDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMREwDwYDVQQHEwhTYW4gSm9zZTEa
................................................................
................................................................
jPQ/UrO8N3sC1gGJX7CIIh5cE+KIJ51ep8i1eKSJ5wHWRTmv342MnG2StgOTtaFF
vrkWHD02o6jRuYXDWEUptDOg8oEritZb+SNPXWUc/2mbYog6ks6EeMC69VjkZPo=
-----END CERTIFICATE-----
Read 1583 bytes as CA certificate
Serial Number : A7:F2:53:CF:72:8E:6A:D7:54:34:4A:05:6B:92:18:F8
Subject:
CN=Crosswork Device Root CA,O=CISCO SYSTEMS INC,L=San Jose,ST=CA,C=US
Issued By :
CN=Crosswork Device Root CA,O=CISCO SYSTEMS INC,L=San Jose,ST=CA,C=US
Validity Start : 02:37:09 UTC Sat Jan 16 2021
Validity End : 02:37:09 UTC Thu Jan 15 2026
SHA1 Fingerprint:
209B3815271C22ADF78CB906F6A32DD9D97BBDBA
Fingerprint: 2FF85849EBAAB9B059ACB9F5363D5C9CDo you accept this certificate? [yes/no]: yes
RP/0/RSP0/CPU0:ASR9k#config
RP/0/RSP0/CPU0:ASR9k(config)#crypto ca trustpoint syslog-inter
RP/0/RSP0/CPU0:ASR9k(config-trustp)#enrollment terminal
RP/0/RSP0/CPU0:ASR9k(config-trustp)#crl optional
RP/0/RSP0/CPU0:ASR9k(config-trustp)#commit
RP/0/RSP0/CPU0:ASR9k#crypto ca authenticate syslog-inter
Fri Jan 22 11:10:30.090 GMT
Enter the base 64 encoded certificate.
End with a blank line or the word "quit" on a line by itself
-----BEGIN CERTIFICATE-----
MIIGFDCCA/ygAwIBAgIRAkhqHQXcJzQzeQK6U2wn8PIwDQYJKoZIhvcNAQELBQAw
bDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMREwDwYDVQQHEwhTYW4gSm9zZTEa
................................................................
................................................................
5lBk617z6cxFER5c+/PmJFhcreisTxXg1aJbFdnB5C8f+0uUIdLghykQ/zaZGuBn
AAB70c9r9OeKGJWzvv1e2U8HH1pdQ/nd
-----END CERTIFICATE-----
Read 1560 bytes as CA certificate
Serial Number : 02:48:6A:1D:05:DC:27:34:33:79:02:BA:53:6C:27:F0:F2
Subject:
CN=device-syslog,O=CISCO SYSTEMS INC,L=San Jose,ST=CA,C=US
Issued By :
CN=Crosswork Device Root CA,O=CISCO SYSTEMS INC,L=San Jose,ST=CA,C=US
Validity Start : 02:37:11 UTC Sat Jan 16 2021
Validity End : 02:37:11 UTC Mon Jan 16 2023
SHA1 Fingerprint:
B06F2BFDE95413A8D08A01EE3511BC3D42F01E59
CA Certificate validated using issuer certificate.
RP/0/RSP0/CPU0:ASR9k#show crypto ca certificates
Fri Jan 22 15:45:17.196 GMT
Trustpoint : syslog-root
==================================================
CA certificate
Serial Number : A7:F2:53:CF:72:8E:6A:D7:54:34:4A:05:6B:92:18:F8
Subject:
CN=Crosswork Device Root CA,O=CISCO SYSTEMS INC,L=San Jose,ST=CA,C=US
Issued By :
CN=Crosswork Device Root CA,O=CISCO SYSTEMS INC,L=San Jose,ST=CA,C=US
Validity Start : 02:37:09 UTC Sat Jan 16 2021
Validity End : 02:37:09 UTC Thu Jan 15 2026
SHA1 Fingerprint:
209B3815271C22ADF78CB906F6A32DD9D97BBDBA
Trustpoint : syslog-inter
==================================================
CA certificate
Serial Number : 02:48:6A:1D:05:DC:27:34:33:79:02:BA:53:6C:27:F0:F2
Subject:
CN=device-syslog,O=CISCO SYSTEMS INC,L=San Jose,ST=CA,C=US
Issued By :
CN=Crosswork Device Root CA,O=CISCO SYSTEMS INC,L=San Jose,ST=CA,C=US
Validity Start : 02:37:11 UTC Sat Jan 16 2021
Validity End : 02:37:11 UTC Mon Jan 16 2023
SHA1 Fingerprint:
B06F2BFDE95413A8D08A01EE3511BC3D42F01E59
RP/0/RSP0/CPU0:ASR9k(config)#logging tls-server syslog-tb131
RP/0/RSP0/CPU0:ASR9k(config-logging-tls-peer)#tls-hostname 10.13.0.159
RP/0/RSP0/CPU0:ASR9k(config-logging-tls-peer)#trustpoint syslog-inter
RP/0/RSP0/CPU0:ASR9k(config-logging-tls-peer)#severity debugging
RP/0/RSP0/CPU0:ASR9k(config-logging-tls-peer)#vrf default
RP/0/RSP0/CPU0:ASR9k(config-logging-tls-peer)#commit
RP/0/RSP0/CPU0:ASR9k(config-logging-tls-peer)#exit
RP/0/RSP0/CPU0:ASR9k(config)#exit
RP/0/RSP0/CPU0:ASR9k#exit
RP/0/RSP0/CPU0:ASR9k#show running-config logging
Fri Jan 22 11:17:19.385 GMT
logging tls-server syslog-tb131
vrf default
severity debugging
trustpoint syslog-inter
tls-hostname <CDG Southbound IP>
!
logging trap debugging
logging format rfc5424
logging facility user
logging hostnameprefix ASR9k
logging suppress duplicates
RP/0/RSP0/CPU0:ASR9k#
TLS を有効にする XE デバイスの設定例
csr8kv(config)#crypto pki trustpoint syslog-root
csr8kv(ca-trustpoint)#enrollment terminal
csr8kv(ca-trustpoint)#revocation-check none
csr8kv(ca-trustpoint)#chain-validation stop
csr8kv(ca-trustpoint)#end
csr8kv(config)#crypto pki authenticate syslog-root
Enter the base 64 encoded CA certificate.
End with a blank line or the word "quit" on a line by itself
-----BEGIN CERTIFICATE-----
MIIFPjCCAyYCCQCO6pK5AOGYdjANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQGEwJV
UzELMAkGA1UECAwCQ0ExETAPBgNVBAcMCE1pbHBpdGFzMQ4wDAYDVQQKDAVDaXNj
................................................................
................................................................
JbimOpXAncoBLo14DXOJLvMVRjn1EULE9AXXCNfnrnBx7jL4CV+qHgEtF6oqclFW
JEA=
-----END CERTIFICATE-----
Certificate has the following attributes:
Fingerprint MD5: D88D6D8F E53750D4 B36EB498 0A435DA1
Fingerprint SHA1: 649DE822 1C222C1F 5101BEB8 B29CDF12 5CEE463B
% Do you accept this certificate? [yes/no]: yes
Trustpoint CA certificate accepted.
% Certificate successfully imported
csr8kv(config)#crypto pki trustpoint syslog-intermediate
csr8kv(ca-trustpoint)#enrollment terminal
csr8kv(ca-trustpoint)#revocation-check none
csr8kv(ca-trustpoint)#chain-validation continue syslog-root
csr8kv(ca-trustpoint)#end
csr8kv(config)#crypto pki authenticate syslog-intermediate
Enter the base 64 encoded CA certificate.
End with a blank line or the word "quit" on a line by itself
-----BEGIN CERTIFICATE-----
MIIFfTCCA2WgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwXDELMAkGA1UEBhMCVVMx
EzARBgNVBAgMCkNhbGlmb3JuaWExDjAMBgNVBAoMBUNpc2NvMQ4wDAYDVQQLDAVT
................................................................
................................................................
Nmz6NQynD7bxdQa9Xq9kyPuY3ZVKXkf312IRH0MEy2yFX/tAen9JqOeZ1g8canmw
TxsWA5TLzy1RmxqQh88f0CM=
-----END CERTIFICATE-----
Trustpoint 'syslog-intermediate' is a subordinate CA.
but certificate is not a CA certificate.
Manual verification required
Certificate has the following attributes:
Fingerprint MD5: FE27BDBE 9265208A 681670AC F59A2BF1
Fingerprint SHA1: 03F513BD 4BEB689F A4F4E001 57EC210E 88C7BD19
csr8kv(config)#logging host <CDG Southbound IP> transport tls port 6514
csr8kv(config)#logging trap informational syslog-format rfc5424
csr8kv(config)#logging facility user
csr8kv(config)#service timestamps log datetime msec year show-timezone
csr8kv(config)#logging tls-profile tlsv12
Syslog 収集ジョブの出力
Cisco Crosswork の UI からデバイスを追加する場合([デバイス管理(Device Management)] > [ネットワークデバイス(Network Devices)] > [デバイスの詳細(Device Details)])、[Syslog形式(Syslog Format)] フィールドで選択した値によって、デバイスから受信した syslog イベントを Syslog コレクタで解析する形式が設定されます。[不明(UNKNOWN)]、[RFC5424]、または [RFC3164] のいずれかを選択できます。
次に、各オプションの出力例を示します。
-
不明:Syslog 収集ジョブの出力に、デバイスから受信した syslog イベントが含まれています。
(注)
デバイスは RFC5424/RFC3164 形式で syslog イベントを生成するように設定されていても [Syslog 形式(Syslog Format)] フィールドに形式が指定されていない場合、デフォルトでは [不明(UNKNOWN)] と見なされます。
サンプル出力: node_id_str: "xrv9k-VM8" node_id_uuid: ":i\300\216>\366BM\262\270@\337\225\2723&" collection_id: 1056 collection_start_time: 1616711596200 msg_timestamp: 1616711596201 data_gpbkv { timestamp: 1616711596201 name: "syslogsensor.path" fields { name: "RAW" string_value: "<6>1 Mar 25 15:34:41.321 PDT - SSHD_ 69570 - - 98949: RP/0/RP0/CPU0:SSHD_[69570]: %SECURITY-SSHD-6-INFO_SUCCESS : Successfully authenticated user \'admin\' from \'40.40.40.116\' on \'vty0\'(cipher \'aes128-ctr\', mac \'hmac-sha1\') \n" } fields { name: "DEVICE_IP" string_value: "40.40.40.30" } } collection_end_time: 1616711596200 collector_uuid: "17328736-b726-4fe3-b922-231a4a30a54f:SYSLOG_COLLECTOR" status { status: SUCCESS } model_data { } sensor_data { syslog_sensor { pris { facilities: 0 facilities: 3 facilities: 4 facilities: 23 severities: 0 severities: 5 severities: 6 severities: 7 } } } application_contexts { application_id: "SyslogApp-xr-8-job1" context_id: "xr-8-job1" } version: "1"
-
[RFC5424]:デバイスが syslog イベントを RFC5424 形式で生成するように設定され、[Syslog形式(Syslog Format)] フィールドで [RFC5424] 形式が選択されている場合、Syslog 収集ジョブの出力には、デバイスから受信した syslog イベント(未処理)とデバイスからの RFC5424 のベストエフォート解析済みの syslog イベントが含まれます。
(注)
syslog コレクタは、次の Java RegEx パターンに従って syslog イベント(ベストエフォート解析)を解析します。
サンプル出力:
.... .... collection_start_time: 1596307542398 msg_timestamp: 1596307542405 data_gpbkv { timestamp: 1596307542405 name: "syslogsensor.path" fields { name: "RAW" string_value: "<13>1 2020 Aug 1 12:03:32.461 UTC: iosxr254node config 65910 - - 2782: RP/0/RSP0/CPU0:2020 Aug 1 12:03:32.461 UTC: config[65910]: %MGBL-SYS-5-CONFIG_I : Configured from console by admin on vty0 (10.24.88.215) \n" } fields { name: "RFC5424" string_value: "pri=13, severity=5, facility=1, version=1, date=2020-08-01T12:03:32.461, remoteAddress=/172.28.122.254, host=\'iosxr254node\', message=\'2782: RP/0/RSP0/CPU0:2020 Aug 1 12:03:32.461 UTC: config[65910]: %MGBL-SYS-5-CONFIG_I : Configured from console by admin on vty0 (10.24.88.215) \', messageId=null, processName=config, structuredDataList=null" } fields { name: "DEVICE_IP" string_value: "172.28.122.254" } } collection_end_time: 1596307542404 collector_uuid: "ac961b09-8f67-4c93-a99a-31eef50f7fa9:SYSLOG_COLLECTOR" status { status: SUCCESS } ... ...
-
[RFC3164]:デバイスが syslog イベントを RFC3164 形式で生成するように設定され、[Syslog形式(Syslog Format)] フィールドで [RFC3164] 形式が選択されている場合、Syslog 収集の出力には、未処理(デバイスから受信したもの)syslog イベントとデバイスからの RFC3164 のベストエフォート解析済みの syslog イベントの両方が含まれます。
(注)
syslog コレクタは、次の Java RegEx パターンに従って syslog イベント(ベストエフォート解析)を解析します。
サンプル出力: .... ..... collection_id: 20 collection_start_time: 1596306752737 msg_timestamp: 1596306752743 data_gpbkv { timestamp: 1596306752743 name: "syslogsensor.path" fields { name: "RAW" string_value: "<14>2020 Aug 1 11:50:22.799 UTC: iosxr254node 2756: RP/0/RSP0/CPU0:2020 Aug 1 11:50:22.799 UTC: config[65910]: %MGBL-CONFIG-6-DB_COMMIT : Configuration committed by user \'admin\'. Use \'show configuration commit changes 1000000580\' to view the changes. \n" } fields { name: "RFC3164" string_value: "pri=14, severity=6, facility=1, version=null, date=2020-08-01T11:50:22.799, remoteAddress=/172.28.122.254, host=\'iosxr254node\', message=\'RP/0/RSP0/CPU0:2020 Aug 1 11:50:22.799 UTC: config[65910]: %MGBL-CONFIG-6-DB_COMMIT : Configuration committed by user \'admin\'. Use \'show configuration commit changes 1000000580\' to view the changes. \', tag=2756" } fields { name: "DEVICE_IP" string_value: "172.28.122.254" } } collection_end_time: 1596306752742 collector_uuid: "ac961b09-8f67-4c93-a99a-31eef50f7fa9:SYSLOG_COLLECTOR" status { status: SUCCESS } .... ....
Syslog コレクタが [Syslog形式(Syslog Format)] フィールドで指定された形式に従って syslog イベントを解析できない場合、Syslog 収集ジョブの出力には、デバイスから受信した syslog イベントが含まれます。