Webhookにアラートを通知する

Webhookを利用することでアラートの内容のJSONをPOSTで受け取ることができます。通知を受け取った後の処理を自動化したい場合などに重宝するでしょう。

Webhookへの通知を追加する

通知の設定は、チャンネルページのWebhookのフォームから、追加ができます。MackerelサーバーからのPOSTを受け取るURLを指定して下さい。

JSONフォーマット

通知されるJSONは以下のような内容を含んでいます。 (項目は任意のタイミングで追加される場合があります)

{
  "orgName": "Macker...",
  "event": "alert",
  "host": {
    "id": "22D4...",
    "name": "app01",
    "url": "https://mackerel.io/orgs/.../hosts/...",
    "type": "unknown",
    "status": "working",
    "memo": "",
    "isRetired": false,
    "roles": [
      {
        "fullname": "Service: Role",
        "serviceName": "Service",
        "serviceUrl": "https://mackerel.io/orgs/.../services/...",
        "roleName": "Role",
        "roleUrl": "https://mackerel.io/orgs/.../services/..."
      }
    ]
  },
  "alert": {
    "createdAt": 1473129912693, 
    "criticalThreshold": 1.9588528112516932, 
    "duration": 5, 
    "isOpen": true, 
    "metricLabel": "MetricName", 
    "metricValue": 2.255356387321597, 
    "monitorName": "MonitorName", 
    "monitorOperator": ">", 
    "status": "critical", 
    "trigger": "monitor", 
    "url": "https://mackerel.io/orgs/.../alerts/2bj...",
    "warningThreshold": 1.4665636369580741
  }
}

JSONの各項目

KEY TYPE DESCRIPTION
orgName string アラートが発生しているオーガニゼーションの名前
event string alert固定
host object ホスト情報(ホストメトリック時のアラートのみ出力)
service object サービス情報(サービスメトリック時のアラートのみ出力)
alert object アラート情報

JSONの各項目(ホスト情報)

KEY TYPE DESCRIPTION
id string ホストID
name string ホスト名
url string ホスト詳細のURL
status string ホストステータス(working, standby, poweroff, maintenance)
memo string ホストに登録されているメモ
isRetired boolean 退役済みかどうか
roles array[object] ロール情報(ホストにロールが設定されている場合)

JSONの各項目(ロール情報)

KEY TYPE DESCRIPTION
fullname string サービス名:ロール名
serviceName string サービス名
serviceUrl string サービス詳細のURL
roleName string ロール名
roleUrl string サービス詳細中のロールのURL

JSONの各項目(サービス情報)

KEY TYPE DESCRIPTION
id string サービスID
memo string サービスに登録されているメモ
name string サービス名
orgId string サービスが登録されているオーガニゼーションのID
roles array[object] ロール情報(サービスにロールが登録されている場合)

JSONの各項目(アラート情報)

KEY TYPE DESCRIPTION
status string アラートのステータス(ok, warning, critical, unknown)
isOpen boolean アラートのオープンの状態
trigger string 通知が送信されたトリガー(monitoring(監視), manual(手動操作), monitorDelete(監視設定削除), hostRetire(ホスト退役))
url string アラート詳細のURL
createdAt number アラート発生時刻(エポック秒)
monitorName string アラートを検知した監視項目名
metricLabel string 監視対象のメトリックなどの名称
metricValue number アラート検知時のメトリックの値
criticalThreshold number CRITICALの閾値
warningThreshold number WARNINGの閾値
monitorOperator string > or <
duration number 監視間隔

※アラート情報の項目は、監視対象の種類(ホストメトリック, サービスメトリック, 外形監視, 式による監視)やそれぞれの設定項目によって増減します。たとえば外形監視でURLのみ設定されている場合のアラートではメトリックや閾値などの情報はアラートに含まれません。監視対象の種類と出力される項目は、監視設定画面で入力可能な項目と対応します。

Webhook活用方法

Webhookをセキュアに使うために

Webhookをセキュアに利用するために、以下の対策を組み合わせて利用することを推奨します。