#はじめに
Azure Logic Apps
と Azure Monitor
をうまく活用すると、コードを1行も書かずにSlackへのサービス正常性アラートを構築することが可能です。
サービス正常性アラートはFaaSで構築するのがトレンドですが、Azureはツールが充実しており、NoCodeツールを組み合わせるだけで構築可能です。
本エントリでは構築手順を3ステップで纏めています。
方針
こちらの公式リファレンスを参考に、
・サービス正常性アラート(Service Health Alert)でAzureリソースのヘルスチェックを行う
・アラートを検知した場合、Logic Apps
経由でSlackへ通知する
の方針で構築していきます。
Logic Apps
を経由するには一つ理由があります。
サービス正常性アラートをそのままSlackへ通知すると、下記の状態となり非常に読みづらいです。
そのため、Logic Apps
でアラート確認に必要な情報に絞り込んでからSlackへ通知します。
構築
下記3ステップで構築していきます。
・Logic Apps
構築
・サービス正常性アラートを作成
・アラートへLogic Apps
定義を組み込む
1. Logic Apps 構築
の手順通り実施。
※2021年7月20日時点の記述にて
手順 7 以降は Microsoft Teams
への連携手順なのでスキップし、下記手順を実行ください。
ロジックアプリデザイナー上で変更が必要なのは
・JSONの解析
・メッセージの投稿
の2箇所です。
JSONの解析を編集
まず、JSONの解析
にて、サービス正常性アラートのJSON加工設定を追加します。
{
"properties": {
"data": {
"properties": {
"context": {
"properties": {
"condition": {
"properties": {
"allOf": {
"items": {
"properties": {
"dimensions": {
"type": "array"
},
"metricName": {
"type": "string"
},
"metricNamespace": {
"type": "string"
},
"metricValue": {
"type": "integer"
},
"operator": {
"type": "string"
},
"threshold": {
"type": "string"
},
"timeAggregation": {
"type": "string"
},
"webTestName": {}
},
"required": [
"metricName",
"metricNamespace",
"operator",
"threshold",
"timeAggregation",
"dimensions",
"metricValue",
"webTestName"
],
"type": "object"
},
"type": "array"
},
"windowSize": {
"type": "string"
}
},
"type": "object"
},
"conditionType": {
"type": "string"
},
"description": {
"type": "string"
},
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"portalLink": {
"type": "string"
},
"resourceGroupName": {
"type": "string"
},
"resourceId": {
"type": "string"
},
"resourceName": {
"type": "string"
},
"resourceType": {
"type": "string"
},
"severity": {
"type": "string"
},
"subscriptionId": {
"type": "string"
},
"timestamp": {
"type": "string"
}
},
"type": "object"
},
"properties": {},
"status": {
"type": "string"
},
"version": {
"type": "string"
}
},
"type": "object"
},
"schemaId": {
"type": "string"
}
},
"type": "object"
}
メッセージの投稿を追加・編集
Logic Apps
上でSlackへのメッセージ通知定義を作成します。
下記内容で、Logic Apps
からSlackへのメッセージ通知設定を構築してください。
初回の連携のみ、Logic Apps
とSlackの連携設定が必要です。
ダイアログの手順に従って連携を行ってください。
正常に連携できるとSlackBotより下記通知が届きます。
2. サービス正常性アラートを作成
下記手順でAzure Portal上でサービス正常性アラートを構築していきます。
- Azure Portalの上部の検索窓からから、
サービス正常性
を検索、選択 - 左のメニューの一番下、 アラート >
正常性アラート
を選択 -
サービス正常性アラートの追加
を選択 - 対象のサブスクリプションとサービス、リージョン、通知対象のイベントを選択
- アクション > アクション グループの選択 から、先程作成したアクショングループを選択
- アラートルールの詳細 から、ルール名、説明、リソースグループを選択
-
アラート ルールの作成
をクリック
3.アラートルールへLogic Apps定義を組み込む
最後に、ステップ2で構築したサービス正常性アラートへLogic Apps
の定義を組み込んでいきます。
アクショングループへLogic Apps
を設定
動作確認
加工されたアラート通知がSlackへ届けばOKです!
#最後に
以上、Azure Logic Apps
と Azure Monitor
を活用して3ステップでSlackへのサービス正常性アラートを構築する手順でした。
NoCodeツールだけでここまでできるのは便利ですよね!
私が所属している株式会社クアンドではエンジニア募集中です。
地域産業のアップデートをミッションに、製造業や建設業など「現場」の課題を解決するためのアプリケーションを開発しています!
私もフルフレックス&フルリモートで働いています。
興味のある方はWantedlyの募集ページをご覧ください!