LoginSignup
8
5

New RelicのアラートをWebhookを使ってMicrosoft Teamsに通知する

Last updated at Posted at 2024-03-26

はじめに

New Relicのアラート機能は、システムの異常やパフォーマンスの低下を即座に検知するための強力なツールです。一方、Microsoft Teamsはチームコミュニケーションの効率を高めるために広く利用されています。この記事では、New RelicのアラートをMicrosoft Teamsに通知する方法を簡単に解説します。これにより、運用チームは迅速に問題へ対処できるようになります。

最新のアップデートの詳細はこちら。 New Relic アップデート一覧

 New Relic は、無料アカウントでも利用できます。是非永久無償ライセンスをこちらから試してみてください。

設定のステップ

  1. Microsoft Teams での Webhook URL の設定
  2. New Relic でのアラート設定

Microsoft Teams での Webhook URL の設定

まず、 Microsoft のドキュメントを参考に Microsoft Teams で Webhook URL を設定することから始めましょう。

1. Teams で、通知を受け取りたいチャネルを選択します
2. チャネル名の横にある「その他のオプション」(...)をクリックし、「チャネルの管理」を選択します

3. 「コネクタ」の「編集」クリックして、「Webhook」を検索して「Incoming Webhook」選択し、「追加」をクリックします

4. Webhook に名前を付け、作成します。これにより、 Webhook URL が生成されます。この URL をコピーしておきましょう

5. Webhook URL は、「Incoming Webhook」の構成から確認することもできます

New Relic でのアラート設定

次に、 New Relic でアラートの「Destination」と「Workflow」を設定し、先ほどの Webhook URL に通知を送るようにします。

Destination の設定

  1. New Relic にログインし、メニューから「Alerts & AI」に移動します
  2. 「ENRICH & NOTIFY」の「Destinations」をクリックします
  3. 「Add a destination」で「Webhook」を選択してクリックします
  4. 「Webhook name」を入力し、「Endpoint URL」に、 Microsoft Teams の Webhook URL を貼り付けます
    スクリーンショット 2024-03-20 5.27.24.png
  5. 「Use authorization」の設定は必要ないため、「Save destination」をクリックして保存します

Workflow の設定

Workflow設定の流れ

  1. 「ENRICH & NOTIFY」 の 「Workflows」 をクリックします

  2. 「Add a workflow」 をクリックして新しい Wokflow を作成します

  3. 「Filter data」 で通知するアラートの条件を設定します。今回は Priority が 「CRITICAL」のものを通知する設定にします
    image.png

  4. 「Notify」 の 「Add channel」 から 「Webhook」 を選択します

  5. 「Destination」 から 先ほど作成した Microsoft Teams の destination を選択します
    destinationの選択.png

  6. TemplateをカスタマイズしてPayloadの設定を行います。詳細は後ほど紹介します

  7. 「Save message」をクリックし設定内容を保存します

  8. 「Notify」 に Webhook が追加されていることが確認できたら、「Activate workflow」をクリックしてworkflowの設定は完了です

Payloadの設定

Webhookでどういった内容が通知されるかはPayloadの設定内容によって決まります。
下記の内容を「Template」にコピー&ペーストして内容を確認してみましょう。

Webhookで設定するPayload
{
    "@type": "MessageCard",
    "@context": "http://schema.org/extensions",
    "summary": "New Relic Alert",
    "sections": [{
        "activityTitle": {{ json annotations.title.[0] }},
        "activitySubtitle": {{ json issuePageUrl }},
        "facts": [
        {
            "name": "Priority",
            "value": {{ json priority }}
        },
        {
            "name": "Created date",
            "value": {{#timezone createdAt 'Asia/Tokyo'}}{{/timezone}}
        },
        {
            "name": "Updated date",
            "value": {{#timezone updatedAt 'Asia/Tokyo'}}{{/timezone}}
        },
        {
            "name": "Status",
            "value": {{ json state }}
        }
        ],
        "markdown": true
    }],
    "potentialAction": [{
        "@type": "OpenUri",
        "name": "Learn More",
        "targets": [{
            "os": "default",
            "uri": {{ json issuePageUrl }}
        }]
    }]
}

すると 「Preview」に連携される通知内容が表示されます。

変数が置換された通知内容
{
    "@type": "MessageCard",
    "@context": "http://schema.org/extensions",
    "summary": "New Relic Alert",
    "sections": [{
        "activityTitle": "website-monitoring | simple-browser-monitor | http://XXXXXXXXXXXXXXXX.amazonaws.com:8080/ - Success query result is < 25.0 on 'Service Levels default alert condition'",
        "activitySubtitle": "https://radar-api.service.newrelic.com/accounts/1/issues/xxxxxxx-xxxxx-xxxx-xxxx-xxxxxxx?notifier=SLACK",
        "facts": [
        {
            "name": "Priority",
            "value": "CRITICAL"
        }, 
        {
            "name": "Created date",
            "value": "2024-03-20 12:43:07 JST"
        }, 
        {
            "name": "Updated date",
            "value": "2024-03-20 12:47:53 JST"
        },
        {
            "name": "Status",
            "value": "ACTIVATED"
        }
        ],
        "markdown": true
    }],
    "potentialAction": [{
        "@type": "OpenUri",
        "name": "Learn More",
        "targets": [{
            "os": "default",
            "uri": "https://radar-api.service.newrelic.com/accounts/1/issues/xxxxxxx-xxxxx-xxxx-xxxx-xxxxxxx?notifier=SLACK"
        }]
    }]
}

通知のテストと確認

 設定が完了したら、テスト通知を送信して、Microsoft Teamsで正しく表示されるかを確認しましょう。New Relic の workflow 設定ページで「Send a test notification」をクリックすると、テスト通知を送信できます。Teams のチャネルに通知が届けば成功です。
スクリーンショット 2024-03-21 9.10.06.png

このサンプルではカードの形式で通知しています。内容をカスタマイズする際は、こちらのドキュメントをご確認ください。

カスタマイズと最適化

 Microsoft Teams で受け取る通知の内容は、Workflow の Filter と Payload の設定内容でカスタマイズできます。例えば、Filterの設定で特定の条件や閾値を満たしたときにのみ通知を送るように設定することが可能です。また、Payload の設定をカスタマイズすることでチームのニーズに合わせて、必要な情報が通知されるように最適化できます。
 Payload の設定をカスタマイズする際は、template に {{ を入力すると表示される補完機能を活用するのが便利です。設定可能な変数の候補を表示してくれます。
Payloadの補完機能.png

 Payload のカスタマイズについてはこちらのブログでも紹介されています。

まとめ

 New RelicのアラートをMicrosoft Teamsに通知する設定は、運用チームがシステムの問題に迅速に対処するための効率的な手段です。この記事で紹介したステップに従えば、簡単に設定を行うことができます。問題が発生した際には、運用チームが即座に通知を受け取り、迅速な対応が可能になります。

最新のアップデートの詳細はこちら
New Relic アップデート一覧

New Relic株式会社のQiita Organizationでは、新機能を含む活用方法を公開していますので、ぜひフォローをお願いします。

8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5