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と統合する設定の流れは次の通りです。
ServiceNowにWebhook受信用のユーザを作成する
ServiceNowでScripted REST API を作成する
AMCでWebhook設定をする
Webhook通報用のパターン登録をする
ServiceNowにWebhook受信用のユーザを作成する
AMCから送信されるWebhookを受信するためのユーザをServiceNowに作成します。
ServiceNowの [Organization]セクションの[Users]をクリックします。
[New]をクリックして、ユーザを新しく作成します。
[User ID]にユーザの名前を入力します。
例:rest.amcuser
[Web service access only]のチェックボックスにチェックを入れます。
[Time zone]のドロップダウンリストをクリックして、
Asia/Tokyo
を選択します。[Submit]をクリックします。
ユーザ一覧の画面から作成したユーザを選択して、ユーザ詳細画面に移動します。
[Set Password]をクリックします。
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認証を使用します。
ServiceNowの [System Web Services]セクションの[Scripted REST APIs]をクリックします。
[New]をクリックして、Scripted REST APIを新しく作成します。
[Name]にREST APIの名前を入力して、[API ID]に
amcwebhook
と入力します。[Submit]をクリックします。
作成したREST APIを選択し、[Resources]タブの[New]をクリックして新しいリソースを作成します。
[Name]に
incident
と入力し、[HTTP method]のドロップダウンリストをクリックしてPOST
を選択します。[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);[Security]タブの[Requires authentication]にチェックを入れ、[Requires ACL authorization]のチェックを外します。
[Submit]をクリックして、新しいリソースの作成を完了します。
作成したScripted REST APIの画面に戻って、[Base API path]の値を確認します。
以下のように結合して、Webhook送信先URLを作成します。
https://<InstanceName>.service-now.com/<Base API path>
AMCでWebhook設定をする
AMCの[プロジェクト]をクリックしてプロジェクト一覧を表示します。
プロジェクト一覧からWebhookを設定するプロジェクトの[編集]をクリックします。
[Webhook設定]のセクションの[Webhook設定]を
有効
に設定します。カスタムWebhookで追加をクリックします。
[Webhook名称]には識別しやすい名前を入力し、[WebhookURL]に、[ServiceNowでScripted REST API を作成する]で作成したWebhook送信先URLを入力します。
[ペイロード]にServiceNowに渡すデータをjson形式で設定します。Scriptで設定した情報を渡します。他のデータも渡したい場合は、ペイロードで利用可能なマクロ一覧を参照ください。
{
"esca_log_id": "${ESCA_LOG_ID}",
"mail_subject": "${MAIL_SUBJECT}",
"mail_body": "${MAIL_BODY}",
"esca_comment": "${COMMENT}"
}[カスタムパラメータ]の[+追加]をクリックします。
追加したカスタムパラメータに以下のように設定します
[キー]に
Authorization
を入力します。[値]に
Basic (BASE64エンコード)Webhook受信用ユーザ名:パスワード
を入力します。(例) (BASE64エンコード) rest.amcuser:12345 → cmVzdC5hbWN1c2VyOjEyMzQ1
[確認]をクリックし、[更新]をクリックしてプロジェクト更新を完了します。
Webhook通報用のパターン登録をする
AMCの[パターン]をクリックしてパターン一覧を表示します。
[+パターン追加]をクリックして、新しいパターンを作成してください。
パターン登録画面で[通報設定]セクションの[Webhook]を
有効
にし、Webhook通報先にはプロジェクトに登録したWebhook名称を設定してください。
ServiceNowは米国およびその他の国における ServiceNow, Inc.の商標または登録商標です。