リソース正常性のアラート通知を構成する

はじめに

Azureサービスの正常性の情報を確認できる「Azure Resource Health」という機能があることをご存知でしょうか。

例えばAzure 仮想マシンであれば、予期しない再起動・停止などが記録され、リソースの状態を確認することができます。

Azureポータルより対象仮想マシン左ペインの[リソース正常性]より確認可能です。

 

例えば予期せず仮想マシンが停止したときなど、アラートが上がったら嬉しいと思いませんか?

「アラート」機能と組み合わせることで、Resource Healthが記録されたときにメールなどで通知することが可能になります。

 

Resource Healthのアラート通知を構成する

アラートのトリガーをResource Healthにすることで、所定のアクションを実行することができます。

本機能は現在プレビュー版となり、一部Azure PowerShellでの設定のみとなります。(現時点ではAzureポータルでの設定ができない箇所がございます。)

設定手順は以下の通りです。

1.アラートのアクショングループを作成する

まずはAzure Monitorのアクショングループを作成します。

アクショングループとは「メール通知をする」という部分の設定になり、こちらはAzureポータルから設定可能です。

 

①[すべてのサービス]より[アラート]をクリックする。

 

②[アクションの管理]をクリックする。

③ [アクショングループの追加]をクリックする。

④ [アクショングループ名]、[短い名前]を入力する。
[サブスクリプション]、[リソースグループ]を選択する。
[アクションの種類]で[電子メール/SMS/プッシュ/音声]を選択し、[詳細の編集]をクリックする。

⑤通知先の種類を選択し、通知先のメールアドレスや電話番号を入力する。

2.Resource ManagerテンプレートでResource Healthのアラートを設定する

次にAzure PowerShellでアラートを構成します。

①以下のコマンドを実行し[Azure Resource Manager ID]を検索する。
<resourceGroup>には1で作成したアクショングループのリソースグループ名、<actionGroup>にはアクショングループ名を入力する。

(Get-AzActionGroup -ResourceGroupName <resourceGroup> -Name <actionGroup>).Id

 

②以下のResource Manager テンプレートをresourcehealthalert.json として任意の場所に保存する。

{
  “$schema”: “https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#”,
  “contentVersion”: “1.0.0.0”,
  “parameters”: {
    “activityLogAlertName”: {
      “type”: “string”,
      “metadata”: {
        “description”: “Unique name (within the Resource Group) for the Activity log alert.”
      }
    },
    “actionGroupResourceId”: {
      “type”: “string”,
      “metadata”: {
        “description”: “Resource Id for the Action group.”
      }
    }
  },
  “resources”: [  
    {
      “type”: “Microsoft.Insights/activityLogAlerts”,
      “apiVersion”: “2017-04-01”,
      “name”: “[parameters(‘activityLogAlertName’)]”,     
      “location”: “Global”,
      “properties”: {
        “enabled”: true,
        “scopes”: [
            “[subscription().id]”
        ],       
        “condition”: {
          “allOf”: [
            {
              “field”: “category”,
              “equals”: “ResourceHealth”
            },
            {
              “field”: “status”,
              “equals”: “Active”
            }
          ]
        },
        “actions”: {
          “actionGroups”:
          [
            {
              “actionGroupId”: “[parameters(‘actionGroupResourceId’)]”
            }
          ]
        }
      }
    }
  ]
}

 

③以下のコマンドを実行しResource Managerデプロイを作成し、アラートを構成する。
<resourceGroup>には1で作成したアクショングループのリソースグループ名、<path\to\resourcehealthalert.json>には2-②で保存したjsonファイルのパスを入力する。

New-AzResourceGroupDeployment -Name ExampleDeployment -ResourceGroupName <resourceGroup> -TemplateFile <path\to\resourcehealthalert.json>

④③のコマンドを実行すると、[activityLogAlertName]と[actionGroupResourceId]の入力を求められる。
[activityLogAlertName]には任意のアラート名を入力し、[actionGroupResourceId]には2-①で検索した[Azure Resource Manager ID]を入力する。

以上でリソース正常性のアラート通知の構成が完了する。

 

 

まとめ

いかがでしたでしょうか。

上記を構成しておくことで、予期せぬ停止などが起きてしまった場合にも即座に確認することが可能となります。

なお、上記は基本構成での設定となります。

「特定のリソースのみ」「重大な記録だけを通知したい」など、カスタマイズをすることも可能なので、要件に合ったアラート通知を構成してみてください。

※参考

https://docs.microsoft.com/ja-jp/azure/service-health/resource-health-alert-arm-template-guide

いいね (←参考になった場合はハートマークを押して評価お願いします)
読み込み中...

注意事項・免責事項

※技術情報につきましては投稿日時点の情報となります。投稿日以降に仕様等が変更されていることがありますのでご了承ください。

※公式な技術情報の紹介の他、当社による検証結果および経験に基づく独自の見解が含まれている場合がございます。

※これらの技術情報によって被ったいかなる損害についても、当社は一切責任を負わないものといたします。十分な確認・検証の上、ご活用お願いたします。