はじめに
Azure MonitorのAlert時のアクションを以下の構成でmattermostに通知させる方法を記載します。
想定する構成
AzureにはSMSや通話、EmailなどAlert時に発砲させるアクションが事前に準備されていますが、mattermostへの通知はありません。従って環境の構築と実装を行い実現する必要があります。
前提
- mattermostはAzureでbitnamiから購入した仮想マシンで準備してます(無料)
- 以下の記事からmattermostのbotを構築していること
- Application Insightsのurl check機能で取得したログを監視対象とします
1.Azure Monitorからアクショングループを構成する
Azureにログインして以下の画面のようにAzure Monitorからアクションの管理・アクショングループの追加を行います。
以下のようにしてアクションの種類をWebhookにして作成します。
URIはFunctionのポータルから取得することができます。
以下のような形式になります。
https://<function_app_name>.azurewebsites.net/api/HttpTrigger?code=<code>
項目を入力したらOKを押下し、次にアラートルールを作成します。
2.アラートルールの作成
以下の画面に従ってアラートルールを作成します。
必要な項目を埋めます。
リソースには監視する対象を選択します。今回application insightsのurl checkを事前に作成していますので選択します。
上記画像の条件で、application insightsのurlチェックの結果をKUSTと呼ばれるクエリで検索し、検索ヒット数が3件よりも大きい場合にmattermostへalertを発砲させるようにします。
画像中の検索クエリではsuccess == 1
(成功クエリ数を検索する)となっていますがsuccess == 0
が妥当です。ここではわざと発砲させるため意図的に1とします。
アクショングループ名は上記手順にて作成したアクショングループを選択します。そして「アクションをカスタマイズする」、からWebhook用のカスタムJsonペイロードを入力します。Jsonペイロードでは公式ドキュメントに記載がある通り、Alert用に用意された変数がありますので活用することができます。
完了を押下し構築したmattermostにAlert通知されることを確認します。クエリが発行されるのは5分ごとですので気長に待ちましょう。
終わりに
Azureのアクショングループ設定は直感的かつ、Functionともwebhook経由で簡単に行うことができました。時間があれば次は別のアクションについても試してみたいと思います。
以上