New Relic Alertは、New Relicに収集されたアプリケーションやインフラのデータを元に特定の条件下で通知を送る機能です。機能の詳細はこちら(Infrastructure監視)やこちら(チケットシステム連携)の記事でも紹介していますので、合わせてご参照ください。
アラートが発報された際にどのような通知を受けるかは運用体制に応じて決められていると思いますが、電話やSMSで通知を受けるという運用をされている方も多いと思います。
そんな方々のために、今回はNew Relic Alertによってアラートが発報されたのをトリガーに、電話やSMSで通知を受ける方法について解説します。
Webhookを使った外部API連携
New Relic Alertはどこに通知を送るか、という設定を"Notification channels"というメニューから追加できます。
通知の方法はいくつかありますが、今回は外部APIを実行するためのWebhookを選択します。
Webhookは任意のREST APIにPOSTリクエストを送ることができる仕組みです。今回はこの仕組みを使って、Twilioという電話のAPIを提供するクラウドサービスと連携します。
Twilioは電話を掛ける、SMSを送るといった機能に応じたREST APIを提供しています。これらを実行するために、New Relic側ではそれぞれのAPIに応じたWebhookの設定をするという実装をします。
アラートをトリガーに電話を発信する
まずはTwilioの架電APIを実行するWebhookの設定方法をご紹介します。
New Relic AlertのNotification ChannelメニューからWebhook設定画面を開き、各項目に以下のとおり入力してください。
- Channel name: どのような連携が判別できる任意の文字列
- Base Url: Twilioの架電用APIのURL (https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Calls.json)
- Basic Auth: UsernameにTwilioのAccount SIDを、PasswordにTwilioのAuth Tokenを指定
- Custom Headers: Content-Typeを"application/x-www-form-urlencoded"に指定
- Use Custom Payload: "Form"型を選択し、以下のパラメータを指定
- To: 発信先の電話番号
- From: 発信元の電話番号
- Url: TwiML(架電の詳細を定義したxmlファイル)を配置したパス
この内容を保存し適切なAlert Policyに紐付ければ、アラートが発報したタイミングで電話による通知を受けることができます。
アラートをトリガーにSMSでサマリを受け取る
続いて、TwilioのSMS送信APIを実行するWebhookの設定方法をご紹介します。ほとんど架電APIと共通しているので、相違点のみ解説します。
- Base Url: TwilioのSMS送信用APIのURL (https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Messages.json)
- Use Custom Payload: "Form"型を選択し、以下のパラメータを指定
- To: 発信先の電話番号
- From: 発信元の電話番号
- Body: SMSメッセージの本文を定義
ここで、Custom PayloadのBodyパラメータには、Alertで扱える変数を指定できます。つまり、Alertの詳細をSMSの本文に表現することが可能です。扱える変数は新規Webhookの作成時にデフォルトでCustom Payloadのフォームに記載されていますので、参考にしてください。
一例として、
Body=NewRelic Alert | status: $EVENT_STATE | severity: $SEVERITY | details: $CONDITION_NAME | url: $INCIDENT_URL
と指定すると、実際にアラートが発報されたときのメッセージは以下のようになります。
電話とSMS、いずれも簡単なWebhookの設定だけでアラート連携ができますので、ぜひご活用ください。
本ブログに掲載されている見解は著者に所属するものであり、必ずしも New Relic 株式会社の公式見解であるわけではありません。また、本ブログには、外部サイトにアクセスするリンクが含まれる場合があります。それらリンク先の内容について、New Relic がいかなる保証も提供することはありません。