はじめに
このドキュメントでは、イベントベースのチケット生成のためにCatalyst SD-WANをServiceNowに統合するプロセスを手順を追って説明します。
前提条件
要 件
シスコは以下を推奨します。
- Cisco Catalyst SD-WANソリューションの知識。
- ServiceNowで管理者権限を持つアクティブなアカウント。
- SD-WAN Managerトランスポート仮想プライベートネットワーク(VPN)からのインターネット到達可能性。
- ServiceNowがオンプレミスでホストされている場合は、VPN 0のSD-WAN ManagerからServiceNowへの接続を確認します。
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
- 20.15.3.1バージョンを実行するCisco Catalyst SD-WAN Manager
- Cisco IOS® XE Catalyst SD-WAN 17.15.3バージョンを実行するC8000v
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
ネットワーク図
接続図
コンフィギュレーション
ヒント:この統合では、SD-WAN ManagerからServiceNowに直接Webhookを使用します。
この設定には、次の2つの部分があります。
- ServiceNow APIを設定し、SD-WAN ManagerからのHTTP POSTメッセージを受け入れて処理できるようにする。
- SD-WAN Manager Webhookの設定
ServiceNow設定
インスタンスの作成
- ServiceNowクレデンシャルを使用して、ServiceNowデベロッパポータルhttps://developer.servicenow.com/dev.doにログインします。
- ウェルカムページで、「インスタンスをリクエスト」をクリックし、任意のリリース(チューリッヒ、横浜、Xanadu)を選択します。
図1
図 2
3. インスタンスの準備が完了するまで数分待ちます。
4. 数分後にページを更新し、個人用開発者インスタンス(PDI)を作成します。
図3
アプリの作成
5. App Engine Studioをクリックします。
6. 「ようこそ」ダイアログ・ボックスを閉じます。
7. Create appをクリックします。
図4
8. このアプリに名前を付けて、[続行] をクリックします。
図5
9. ロールをデフォルトのままにして、Continueをクリックします。
図6
10. このアプリが作成されるまで数分待ちます。
11. アプリダッシュボードに移動します。
アプリの作成
12. App Homeから、「試す」をクリックしてServiceNow Studioを開きます。
図7
13. URLに注目してください。これはPDI-ID.service-now.comのようなものです。
14. 左側のナビゲーション・ペインで、アプリケーション名をクリックします。この場合はud-vmanageです。
図8
15. (+)アイコンをクリックし、次にCreate Fileをクリックします。
ファイルの作成
16.スクリプトREST APIを検索して選択します。
図9
17. 「続行」をクリックします。
18. スクリプト化されたRESTサービスの新しいレコードを作成します。
- API名の入力
- API ID
- Default ACLs lock iconをクリックします。
- 検索ボタンをクリックして、ターゲットレコードを選択します。
- アクセスコントロール検索で、検索して「Scripted REST External Default」をクリックします。
図–10
図11
19. Submitをクリックします。
スクリプト化されたRESTサービスの新しいレコード
20. 新しいリソースを作成します。
図12
21. この新しいリソースの名前を入力し、HTTPメソッドにPOSTを選択します。
図13
22. スクリプトセクションで、SD-WAN ManagerからJSONを処理するJavaScriptを作成し、ServiceNowでチケットを作成します。
サンプルスクリプト:
(function process(request, response) {
try {
var payload = request.body.data;
gs.info("🚨 vManage Webhook Received: " + JSON.stringify(payload));
var alertMessage = payload.message || 'No message';
var alertSeverity = payload.severity || 'medium';
var deviceId = payload.deviceId || 'Unknown device';
var inc = new GlideRecord('incident');
inc.initialize();
inc.short_description = "vManage Alert: " + alertMessage;
inc.description = "Device ID: " + deviceId + "\nSeverity: " + alertSeverity + "\n\n" + JSON.stringify(payload);
inc.urgency = (alertSeverity === 'critical') ? 1 : 2;
inc.impact = 2;
inc.insert();
response.setStatus(201);
response.setBody({ message: "Webhook received and processed." });
} catch (err) {
gs.error("❌ vManage Webhook Error: " + err.message);
response.setStatus(500);
response.setBody({ error: "Error processing webhook: " + err.message });
}
})(request, response);
警告:これはサンプルスクリプトです。ラボ環境または実稼働環境で使用する前に、スクリプトを十分に検証してください。
23. Submitをクリックします。
スクリプト化されたRESTリソースの新しいレコード
24. リソースパスをメモします。これは、SD-WAN Manager Webhook設定で入力する必要があるURLです。
25. Webhook URL:https://PDI.service-now.com/Resource_path
このコンフィギュレーションガイドのサンプルURL:https://dev271953.service-now.com/api/x_1831932_ud_vma_0/ud_vm_snow
SD-WAN Managerの設定
このセクションでは、ServiceNow APIにアラームを送信するようにSD-WAN Manager Webhookを設定します:https://dev271953.service-now.com/api/x_1831932_ud_vma_0/ud_vm_snow
ヒント:マルチテナントSD-WAN Managerの場合は、テナントビューでそれぞれの設定を適用し、そのテナントのWebhookイベントを送信します。また、この設定をプロバイダービューで適用して、プロバイダードメインデバイスからアラームを受信することもできます。
SD-WAN Webフック
- SD-WAN Managerにログインし、Monitor > Logs > Alarm Notificationsの順に選択します。
図14
SD-WANアラーム通知
2. [アラーム通知の追加]をクリックします。
図15
3. アラーム通知を設定するには、それぞれのフィールドに入力します。
- 通知名
- アラーム タイプ
- 配信方法:WebHook
- Webhookのチャネルの選択:カスタム
- WebHook URL(ServiceNow側の設定のステップ24で作成されたAPI):https://dev271953.service-now.com/api/x_1831932_ud_vma_0/ud_vm_snow
- WebHookしきい値:100
- ユーザ名とパスワードは空白のままにします。
注意:実稼働環境では、ユーザ名とパスワードのフィールドを空白のままにすると、セキュリティ上のリスクがあります。慎重に動きなさい。
4. Add Notificationをクリックします。
図16
確認
ServiceNowチケットページ
- ServiceNowのチケットページに移動します。
- このため、このURLを使用してServiceNowメインワークスペースにアクセスします。これはPDI.service-now.com/nav_to.doです。
- 例: https://dev271953.service-now.com/nav_to.do
ServiceNowワークスペース
2. Allをクリックし、Incidentsを検索してクリックします。
図17
3. インシデントページが開きます。
インシデントページ
4. SD-WAN Manager CLI vshellから、ServiceNowに対してCURLコマンドを実行します。
curl -X POST "<your_webhook_url_towards_servicenow>"
成功メッセージ:
udutt-krk-dmz-vmanage:~$ curl -X POST "https://dev271953.service-now.com/api/x_1831932_ud_vma_0/ud_vm_snow"
{"result":{"message":"Webhook received and processed."}}
5. ServiceNowでインシデントが作成されたことに注目してください。
図18
CURLで次のような認証エラーが発生した場合:
udutt-krk-dmz-vmanage:~$ curl -X POST "https://dev271953.service-now.com/api/x_1831932_ud_vma_0/ud_vm_snow"
{"error":{"message":"User is not authenticated","detail":"Required to provide Auth information"},"status":"failure"}
認証エラーを修正する手順
- ServiceNow Studioページに戻り、左側のナビゲーションペインからアプリ(例:ud-vmanage)にアクセスし、スクリプト化されたREST API(例:ud-vm-snow)を選択します。
図19
2. [Resources]までスクロールダウンして、リソース(アラームなど)をクリックします。
図–20
3. Securityまでスクロールダウンし、次に示すようにauthenticationとACL authorizationのチェックマークを外します。
a.認証が必要
b. ACL認可が必要です。
c. Updateをクリックします
図–21
4. 今回は成功したSD-WAN Manager vshellからCURLコマンドを再度実行します。
アラームの生成
5. ここで、次のようにSD-WAN Managerでアラームを生成します。
a. SD-WANオーバーレイ内の1つのWANエッジルータのインターフェイスをシャットダウンします。
b. SD-WANマネージャまたは任意のWANエッジルータからの制御接続をクリアします。
c.ポートホップを実行します。
Webhookの設定中にアラームを生成する対象のサイトを確認してください。
6. ServiceNowページでインシデントが作成されていることに注意してください。
図–22
図–23
図–24
トラブルシュート
1. SD-WAN Manager側から、/var/log/nms/vmanage-server.logの内容をチェックし、HTTP POSTメッセージに関連するエラーがないかを確認します。
成功したWebhookの例:
03-Oct-2025 12:21:05,394 UTC INFO [] [udutt-krk-vmanage] [DataCollectionManager] (Thread-157) || ******* Requested device 10.1.1.3, Adding to dataCollectionQueue, Sync type DATA_SYNC.
03-Oct-2025 12:21:05,677 UTC INFO [] [udutt-krk-vmanage] [EventDataCollector] (device-event-processing-2) || Configuration change event from device. Device IP: [10.1.1.3] Device type: [vsmart] User: [admin]
03-Oct-2025 12:21:05,677 UTC INFO [] [udutt-krk-vmanage] [DataCollectionManager] (Thread-157) || ******* Requested device 10.1.1.3, Adding to dataCollectionQueue, Sync type DATA_SYNC.
03-Oct-2025 12:21:06,745 UTC INFO [] [udutt-krk-vmanage] [DeviceHistoryConfigurationDAO] (device-config-0) || saveConfigToElasticDataStore entryTime 1761567666745 personality vsmart
03-Oct-2025 12:21:07,192 UTC INFO [] [udutt-krk-vmanage] [NotificationsConsumer] (pool-59-thread-9) || Response status code after sending webhook: 201
03-Oct-2025 12:21:07,196 UTC INFO [] [udutt-krk-vmanage] [NotificationsConsumer] (pool-59-thread-1) || Response status code after sending webhook: 201
失敗したWebhook要求の例:
03-Oct-2025 12:24:46,949 UTC INFO [] [udutt-krk-vmanage] [DataCollectionManager] (Thread-157) || ******* Requested device 10.1.1.3, Adding to dataCollectionQueue, Sync type DATA_SYNC.
03-Oct-2025 12:24:48,065 UTC INFO [] [udutt-krk-vmanage] [DeviceHistoryConfigurationDAO] (device-config-0) || saveConfigToElasticDataStore entryTime 1761567888065 personality vsmart
03-Oct-2025 12:24:48,305 UTC INFO [] [udutt-krk-vmanage] [NotificationsConsumer] (pool-59-thread-15) || Response status code after sending webhook: 401
03-Oct-2025 12:24:48,305 UTC INFO [] [udutt-krk-vmanage] [NotificationsConsumer] (pool-59-thread-14) || Response status code after sending webhook: 401
2. SD-WAN ManagerとServiceNow間の正常なセッションを確認するために、パケットキャプチャを実行することもできます。
隠れたパブリックIPを使用したパケットキャプチャ
関連情報