こんにちは。
Azureのサービスでは、メモリの使用率などが設定した閾値を超えたときや下回ったときに通知できるサービスが備わっています。
この記事ではCentOSにアラート設定をして、そのアラートをSlackに通知方法をご紹介します。
Azureのアラートはwebhookに対応しており、Logic Appでwebhookを受け、それをslackに流します。
大まかな流れとして
- アラート検知
↓ - Logic Apps
↓ - slack
です。
事前準備
・Slackに通知用のChannelを作成しておく。
・監視対象のリソースの「監視」を有効にしておく。
「監視」はリソース作成後でも有効化できます。
https://docs.microsoft.com/ja-jp/azure/virtual-machines/virtual-machines-linux-vm-monitoring
事前準備が終わったら設定していきます。
Logic Appの設定
設定上の都合でLogic Appの設定から行います。
Azure Portal から「Logic Apps」を新規で作成します。
デプロイメントが成功したら、「Logic Apps デザイナー」を開き、「空のLogicApp」を選択します。
トリガーは「要求」を選択します。
「要求本文の JSON スキーマ」は、このような便利なサイトがあるのでこちらから作成します。
https://jsonschema.net/
「jsonschema.net」の左側の「JSON」の部分に次のサイトのPayload schemeを貼り付けます。
https://docs.microsoft.com/ja-jp/azure/monitoring-and-diagnostics/insights-webhooks-alerts
そして、「Generate Scheme」を選択すると、JSON スキーマを作成してくれます。
設定はデフォルトのままで大丈夫です。
こんな感じです。
この画面右側のJSON スキーマを「Logic Apps デザイナー」の「要求本文の JSON スキーマ」に貼り付けます。
Slackの設定
次に新しいステップでslackを選択して、接続します。
Channel名は「azure」
メッセージテキストは次のようにしました。
MetricNameは、監視する内容の名前
statusは、Alertのステータス
resourceNameは監視対象のリソース名
です。
詳しくは「Configure a webhook on an Azure metric alert」をご覧ください。
「詳細なオプションを表示する」を選択するとBotの名前やBotのアイコンなどを設定することができます。
保存をするとHTTP POSTのURLをが生成されるので、これをメモしておきます。
アラートの設定
次にアラートの設定をします。
設定は簡単で、Azure Portalから監視したいリソースを選択して、「監視中」の「アラートルール」を選択します。
「アラートの追加」を選択して、必要事項をこんな感じで入力します。
期間は、どのくらいの期間メトリックルールが適応された後にトリガーが引かれるかです。
この場合、閾値が1を5分間超えていたらトリガーが引かれます。
通知手段は、メールとWebhookがあります。Webhookに先程Logic Appで生成した「HTTP POSTのURL」を貼り付けます。
以上で設定が完了です。
これでアラートの条件が満たされたら、slackに通知が来るはずです。
因みに閾値がより下回った場合にも通知が来ます。
終わり。
まとめ
設定はとても簡単でした。Azureルールに合致したらWebhookで自動的に何かアクションできるので、これ以外にもいろいと活用できそうですね。