メインコンテンツまでスキップ

ServiceNowにインシデント登録する ~Webhook通報の使い方【Scripted REST APIs編】~

概要の説明

AMCのWebhook通報機能を使って、監視システムで発生したアラートをServiceNowと統合する方法を説明します。

Webhook通報とServiceNowの統合の設定をすると、AMCが受信したアラートメールをServiceNowへWebhookして、ServiceNowのScripted REST APIを介してインシデントを登録することができます。

Scripted REST APIsを使用したインシデント登録はServiceNowにインシデント登録する ~Webhook通報の使い方【テーブルAPI編】を参照してください。

AMCのWebhook通報機能を使って、アラートをServiceNowと統合する設定の流れは次の通りです。

  1. ServiceNowにWebhook受信用のユーザを作成する

  2. ServiceNowでScripted REST API を作成する

  3. AMCでWebhook設定をする

  4. Webhook通報用のパターン登録をする

ServiceNowにWebhook受信用のユーザを作成する

AMCから送信されるWebhookを受信するためのユーザをServiceNowに作成します。

  1. ServiceNowの [Organization]セクションの[Users]をクリックします。

  2. [New]をクリックして、ユーザを新しく作成します。

  3. [User ID]にユーザの名前を入力します。

    例:rest.amcuser

  4. [Web service access only]のチェックボックスにチェックを入れます。

  5. [Time zone]のドロップダウンリストをクリックして、Asia/Tokyoを選択します。

  6. [Submit]をクリックします。

  7. ユーザ一覧の画面から作成したユーザを選択して、ユーザ詳細画面に移動します。

  8. [Set Password]をクリックします。

  9. Set Password画面で[Generate]をクリックしてパスワードを生成し、[Save Password]をクリックして保存します。

    作成したパスワードは後程、Webhookの設定で利用します。

ServiceNowでScripted REST API を作成する

AMCから送信されるWebhookを受信して、ServiceNowのインシデントテーブルに登録するためのREST APIを作成します。

手順中に説明するJavaScriptコードを設定することで、ServiceNowの[Service Desk]セクションの[Incidents]に次の内容で登録されます。

登録内容をカスタマイズしたい場合は、リクエストJSONサンプル とServiceNowのドキュメントを参考にJavaScriptコードを修正してください。

  • Short Description ・・・ アラートの件名
  • Description・・・アラートの本文
  • Comments・・・AMCのパターンで設定した通報時のコメント

Webhook送信の認証方式としてBasic認証を使用します。

  1. ServiceNowの [System Web Services]セクションの[Scripted REST APIs]をクリックします。

  2. [New]をクリックして、Scripted REST APIを新しく作成します。

  3. [Name]にREST APIの名前を入力して、[API ID]amcwebhookと入力します。

  4. [Submit]をクリックします。

  5. 作成したREST APIを選択し、[Resources]タブの[New]をクリックして新しいリソースを作成します。

  6. [Name]incidentと入力し、[HTTP method]のドロップダウンリストをクリックしてPOSTを選択します。

  7. [Script]で以下のJavaScriptコードを設定します。

    (function process( /*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
    var responseBody = {};
    var event = request.body.data;
    var inc = new GlideRecord('incident');
    var sys_id;
    inc.initialize();
    inc.short_description = event.mail_subject;
    inc.impact = 2; //1:High, 2:Medium, 3:Low
    inc.urgency = 2; //1:High, 2:Medium, 3:Low
    var description = "WebSAM Automatic Message Call Webhook Escalation\n";
    description += "esca_log_id = " + event.esca_log_id + "\n";
    description += event.mail_body + "\n";
    inc.description = description;
    inc.comments = event.esca_comment;
    sys_id = inc.insert();

    //return
    responseBody.incidentnumber = inc.getValue('number');
    responseBody.sys_id = sys_id;
    response.setBody(responseBody);
    })(request, response);
  8. [Security]タブの[Requires authentication]にチェックを入れ、[Requires ACL authorization]のチェックを外します。

  9. [Submit]をクリックして、新しいリソースの作成を完了します。

  10. 作成したScripted REST APIの画面に戻って、[Base API path]の値を確認します。

  11. 以下のように結合して、Webhook送信先URLを作成します。

    https://<InstanceName>.service-now.com/<Base API path>

AMCでWebhook設定をする

  1. AMCの[プロジェクト]をクリックしてプロジェクト一覧を表示します。

  2. プロジェクト一覧からWebhookを設定するプロジェクトの[編集]をクリックします。

  3. [Webhook設定]のセクションの[Webhook設定]有効に設定します。

  4. カスタムWebhookで追加をクリックします。

  5. [Webhook名称]には識別しやすい名前を入力し、[WebhookURL]に、[ServiceNowでScripted REST API を作成する]で作成したWebhook送信先URLを入力します。

  6. [ペイロード]にServiceNowに渡すデータをjson形式で設定します。Scriptで設定した情報を渡します。他のデータも渡したい場合は、ペイロードで利用可能なマクロ一覧を参照ください。

    {
    "esca_log_id": "${ESCA_LOG_ID}",
    "mail_subject": "${MAIL_SUBJECT}",
    "mail_body": "${MAIL_BODY}",
    "esca_comment": "${COMMENT}"
    }
  7. [カスタムパラメータ][+追加]をクリックします。

  8. 追加したカスタムパラメータに以下のように設定します

    [キー]Authorizationを入力します。

    [値]Basic (BASE64エンコード)Webhook受信用ユーザ名:パスワードを入力します。

    (例) (BASE64エンコード) rest.amcuser:12345 → cmVzdC5hbWN1c2VyOjEyMzQ1

  9. [確認]をクリックし、[更新]をクリックしてプロジェクト更新を完了します。

Webhook通報用のパターン登録をする

  1. AMCの[パターン]をクリックしてパターン一覧を表示します。

  2. [+パターン追加]をクリックして、新しいパターンを作成してください。

  3. パターン登録画面で[通報設定]セクションの[Webhook]有効にし、Webhook通報先にはプロジェクトに登録したWebhook名称を設定してください。


ServiceNowは米国およびその他の国における ServiceNow, Inc.の商標または登録商標です。