インテグレーション機能(Webhook)ガイド

【Webコンソール操作】

【1】「[Webコンソールのログイン]サービスURL」にWebブラウザでアクセスし、モニタリングトライアル用ユーザーアカウントでログインします。

※ログインの際にはSMSによるmPLAT/Tour統合認証が必要となることがあります。

【2】[設定変更]-[共通設定]-[インテグレーション]に移動します。

【3】新規にWebhook設定を作成する場合、[Script]へ移動し、[+Create New]をクリック、以下のように設定・保存する。
  (任意のWebhook設定を新規作成しない場合は作成済みの設定[script_curl_webhook01]をそのまま利用可能のため本手順は不要です。)

設定項目 設定値 設定例
Name 任意の名称を入力 script_curl_webhook01
Comment 任意のコメントを入力
ScriptType Lua Lua
Script 受け取ったAPIの加工方法 return {
  Code = "WHOOK01",
  Level = "E",
  Message = string.format("Alert_TITLE:%s, Alert_Metoric:%s, Alert_Type:%s, Alert_Status:%s, Metorics_Value:%s, Link:%s",
    SdcGetJsonPathToString("$.title"),
    SdcGetJsonPathToString("$.alert_metoric"),
    SdcGetJsonPathToString("$.alert_type"),
    SdcGetJsonPathToString("$.alert_status"),
    SdcGetJsonPathToString("$.metrics_value"),
    SdcGetJsonPathToString("$.link"))
}
ScriptTest
(InputJson/Test)
API受信時のScript動作テスト
(InputJsonで受信想定のAPI内容の記載・[Test]ボタンクリックで受信想定APIのScriptによる加工実施)
{
  "version": "1",
  "id": "AGGREG_KEY",
  "title": "ALERT_TITLE",
  "alert_metric": "ALERT_METRIC",
  "alert_type": "ALERT_TYPE",
  "alert_status": "ALERT_STATUS",
  "metrics_value": "TEXT_ONLY_MSG",
  "link": "LINK"
}

【4】[インテグレーション]に戻り、[Endpoint]へ移動、[Comment:endpoint_webhook01]の[Edit]をクリックする。

【5】以下設定を行い、保存する。

設定項目 設定値
EndpointID 変更不可
(【API発行側操作(curl例)】の【2】で利用するため控えておく)
Comment 任意のコメントを入力
Status チェックする
(チェックを外すと本設定は無効となります)
WebhookToken [NewToken]ボタンをクリックし、WebhookTokenを発行する
(【API発行側操作(curl例)】の【2】で利用するため控えておく)
ActionID 変更不要
ScriptID 【Webコンソール操作】の【2】で作成したScriptのIDを設定する
(作成済みの設定[script_curl_webhook01]を利用する場合は変更不要)

【API発行側操作(curl例)】

【1】任意のインターネットに接続可能な環境でcurlコマンドを実行してAPIを発行する。

Windows環境におけるcurlコマンド実行例

Linux環境におけるcurlコマンド実行例


curlコマンドのパラメータ。
設定項目 設定値 設定例
URL https://[千手ウェブサービスのホスト名またはIPアドレス]/smc/webhook/gw/endpoints/[【Webコンソール操作】の【5】で控えたEndpointID] https://mlsdc006.mplatwork4.net/smc/webhook/gw/endpoints/a9a592e1f007476fbeb92efe35d3d6da
メソッド POST POST
Authorizationヘッダー Bearer [【Webコンソール操作】の【5】で控えたWebhookToken] Authorization:Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ3ZWJob29rIiwiZW5kcG9pbnQiOiJhOWE1OTJlMWYwMDc0NzZmYmViOTJlZmUzNWQzZDZkYSIsInRva2VuX3ZlciI6IjUiLCJ0b2tlbl9kYXRlIjoiMjAyMi8wOC8yMyAxMDoyMzozMiIsImlzcyI6InNlbmp1IiwiYXVkIjoibXBsYXQtdG91ci1hZG1pbiJ9.wkcN410t7yNqBYooqGHZgMGznfM6DpFKHw6Mcq-5wLn37eEbKuiAER_qWV0zmcpnjxcUy0lmKKvIOrPPCV2ArA"
Content-Typeヘッダー application/json Content-Type: application/json
Body イベント情報(JSON形式)
webhook.txtを作成し、@webhook.txtと指定
{
  "version": "1",
  "id": "AGGREG_KEY",
  "title": "ALERT_TITLE",
  "alert_metric": "ALERT_METRIC",
  "alert_type": "ALERT_TYPE",
  "alert_status": "ALERT_STATUS",
  "metrics_value": "TEXT_ONLY_MSG",
  "link": "LINK"
}
イベント送信に成功した場合、HTTPステータスコード 200 で以下の内容が返却されます。
{
  "message" : "success.",
  "endpointTicketId" : "__TicketId__"
}

【2】Webhookの受信を確認する。
  Webコンソールに戻りログイン、[設定変更]-[共通設定]-[インテグレーション]-[Ticket]に移り、
  Webhook連携に成功しチケットが起票されていること、[Status:2]であることを確認。
  (0:実行前 / 1:アクション実行中 / 2:終了 /11:内部処理開始失敗 / 12:スクリプト実行失敗 / 13:アクション実行失敗)

【3】「[千手ブラウザのログイン]サービスURL」にWebブラウザでアクセスし、千手ブラウザでログイン、
  [ツール]タブから[メッセージモニタ(M)]を選択する。

【4】メッセージモニタで[すべて]タブを選択し、Webhook連携によって発行された千手メッセージが存在することを確認する。
  (【Webコンソール操作】の【3】でWebhookにより発行される千手メッセージのメッセージIDは[WHOOK01]と設定しています。)

【付録】

千手WebコンソールのScript設定について

curlコマンドによるWebhookを受信するSenju/DCでは、[インテグレーション]の[Script]で受信したAPIを千手メッセージに加工します。
Webhook連携後のAPIの千手メッセージへの加工を任意の形に行いたい場合は、以下を参考に自由に設定してください。
また、複数のWebhook連携設定を行いたい場合は[Script]・[Endpoint]を任意の数だけ作成し、Webhook送信側で連携に必要な情報を設定してください。
Script設定値
(curlコマンド連携の場合)
return {
  Code = "WHOOK01",
  Level = "E",
  Message = string.format("Alert_TITLE:%s, Alert_Metric:%s, Alert_Type:%s, Alert_Status:%s, Metrics_Value:%s, Link:%s",
    SdcGetJsonPathToString("$.title"),
    SdcGetJsonPathToString("$.alert_metric"),
    SdcGetJsonPathToString("$.alert_type"),
    SdcGetJsonPathToString("$.alert_status"),
    SdcGetJsonPathToString("$.metrics_value"),
    SdcGetJsonPathToString("$.link"))
}
Code 千手メッセージID(7文字であることが必須)
Level メッセージレベル(E:障害、W:警告、I:通常)
Message 千手メッセージ内容
「Alert_TITLE:%s, Alert_Metric:%s」で「Alert_TITLE:<$.titleで連携されたAPI内容>, Alert_Metric:<$.alert_metricで連携されたAPI内容>」のように
メッセージ内容が設定されます。(%sには、SdcGetJsonPathToStringで設定された値が上から順に格納されます)