New Relic Alertは、New Relicに収集されたアプリケーションやインフラのデータを元に特定の条件下で通知を送る機能です。機能の詳細はこちら(Infrastructure監視)こちら(チケットシステム連携)の記事でも紹介していますので、合わせてご参照ください。

アラートが発報された際にどのような通知を受けるかは運用体制に応じて決められていると思いますが、電話やSMSで通知を受けるという運用をされている方も多いと思います。

そんな方々のために、今回はNew Relic Alertによってアラートが発報されたのをトリガーに、電話やSMSで通知を受ける方法について解説します。

 

Webhookを使った外部API連携

New Relic Alertはどこに通知を送るか、という設定を"Notification channels"というメニューから追加できます。

通知の方法はいくつかありますが、今回は外部APIを実行するためのWebhookを選択します。

Webhookの設定画面

Webhookは任意のREST APIにPOSTリクエストを送ることができる仕組みです。今回はこの仕組みを使って、Twilioという電話のAPIを提供するクラウドサービスと連携します。

Twilioは電話を掛ける、SMSを送るといった機能に応じたREST APIを提供しています。これらを実行するために、New Relic側ではそれぞれのAPIに応じたWebhookの設定をするという実装をします。

Twilio連携の模式図

 

アラートをトリガーに電話を発信する

まずは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ファイル)を配置したパス

電話のWebhook設定

この内容を保存し適切な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メッセージの本文を定義

SMS送信用Webhook

ここで、Custom PayloadのBodyパラメータには、Alertで扱える変数を指定できます。つまり、Alertの詳細をSMSの本文に表現することが可能です。扱える変数は新規Webhookの作成時にデフォルトでCustom Payloadのフォームに記載されていますので、参考にしてください。

Alertで扱える変数

一例として、

Body=NewRelic Alert | status: $EVENT_STATE | severity: $SEVERITY | details: $CONDITION_NAME | url: $INCIDENT_URL

と指定すると、実際にアラートが発報されたときのメッセージは以下のようになります。

送られたSMSの例

電話とSMS、いずれも簡単なWebhookの設定だけでアラート連携ができますので、ぜひご活用ください。