PagerDutyにアラートを通知する

PagerDutyはMackerelのような監視ツールからのアラートを集約し、PagerDuty上に登録した任意の通知ルールに従って様々な通知を送ることが出来るインシデント管理サービスです。通知の例として、音声、SMS、email、プッシュ型のアラート通知ができます。

PagerDutyと連携を行う事で、Mackerelで発生したアラートをPagerDuty上のインシデントとして管理できます。

f:id:mackerelio:20201109113940p:plain

PagerDutyとの連携を追加する

連携の設定は、チャンネルページのPagerDutyフォームから行って下さい。

f:id:mackerelio:20171124160618p:plain

Integration Key

PagerDutyとの連携はEvents APIを通して行います。 PagerDuty上でMackerelと連携する"サービス"を作成して発行されたIntegration Keyを、Mackerelのチャンネル設定画面で入力してください。

  • PagerDuty 画面上部のConfigurationからServiceを選択
  • 画面中央右上のAdd New Serviceを選択し、Mackerelと連携するサービスを作成します
  • Integration TypeUse our API directlyを選択します
    • この際、API の種類は Events API v2 を指定してください
  • 作成完了後、画面にIntegration Keyが表示されます。

Notification Level

PagerDuty連携では、アラート通知をPagerDutyへ送信する監視のステータスを選択すること出来ます。選択肢はWarning & CriticalCritical onlyの2つがあります。

  • Warning & Critical
    • Warning, Criticalいずれかのアラートが発生した際に、PagerDutyにインシデント通知を送ります
    • ステータスが正常に戻った時に、PagerDutyのインシデントは自動的に解決されます
    • WarningとCritical間の状態遷移が生じた際にもPagerDutyに通知を送りますが、一度発生したインシデントに対する経過通知を送るのみとなります
  • Critical only
    • Warning時のアラートでは通知は送らず、Criticalのアラート時のみにPagerDutyにインシデント通知を送ります
    • ステータスが正常に戻った時に、PagerDutyのインシデントは自動的に解決されます
    • Warning状態への遷移時にはPagerDutyに対しては何も行いません

アラート解決時の処理

デフォルトでは、Mackerel上でアラートが閉じた時点でPagerDuty上のインシデントも閉じられますが、"アラートが閉じた時にインシデントも閉じる"オプションをオフにすると、アラートが閉じた場合でもPagerDuty上のインシデントは閉じられません。

Events API v2でのみ通知される内容

API v2を利用している場合にのみ通知される内容に以下の項目が追加されます。

  • 関連するグラフ
  • メモ
  • custom_identifier

API Versionについて

PagerDutyのチャンネル設定画面では利用するEvents APIのバージョンを選べますが、新規に作成する設定ではAPI v2を利用することを推奨しています。 2017年11月時点では通知される内容に大きな違いはありませんが、今後Events API v2経由の場合のみに利用できる通知パラメータを追加する可能性があります。