Azure MonitorのアクショングループをARMテンプレートを使ってデプロイ

 

Azure Monitorでアラートが発生した場合に、どのように通知を行うのかを定義する機能として、アクショングループがあります。

アクショングループにはメールやSMS、Webhookなどがあります。

今回はアクショングループの作成をAzure PortalとARMテンプレートを利用してメール送信のアクショングループを作成してみました。

ARMテンプレートはマイクロソフト様のサイトを参考に作成しています。

https://docs.microsoft.com/ja-jp/azure/azure-monitor/platform/action-groups-create-resource-manager-template

今回作成した内容はGithubにも公開しています。

アクションルールについては、Azure Portalを使った設定を試しております。こちらは下記記事に纏めております。

Azure Monitorのアクションルールを使って非監視設定(非通知)を試す

.Azure Monitorのアクショングループで設定する内容

Azure Monitorのメニューでアラートを選択します。

アクションの管理が表示されるので選択し、表示されるアクショングループの追加をクリックすると、下記画面が表示されます。

画面を確認した結果、アクショングループ作成時に指定が必要になる内容が分かりました。

      • アクショングループ名
      • 短い名前
      • サブスクリプション(デプロイ時に指定します)
      • リソースグループ(デプロイ時に指定します)
      • 操作名
      • アクションの種類(今回は電子メールを想定します。)
      • 電子メールアドレス(アクションの種類で電子メールを選択すると入力できます)

.アクショングループのARMテンプレートを作成する

電子メールを送信するアクショングループのテンプレートは下記のようになります。

ARMテンプレート内のvariables 関数で以下の内容を変数を指定するようにしてます。

      • アクショングループ名
      • 短い名前
      • 操作名 
      • 電子メールアドレス(アクションの種類で電子メールを選択すると入力できます)

電子メールに関するアクションの指定は、テンプレート内のemailReceivers項目を利用する事で定義されます。

{
 ”$schema”: “https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#”,
 ”contentVersion”: “1.0.0.0”,
 ”variables”: {
   “actionGroupName”: “アクショングループ名”,
   “actionGroupShortName”: “短い名前”,
   “OperationName”: “操作名”,
   “emailAddress”: “送信先の電子メールアドレス”
    },

  },
  ”resources”: [
  {
   ”type”: “Microsoft.Insights/actionGroups”,
   ”apiVersion”: “2018-03-01”,
   ”name”: “[variables(‘actionGroupName’)]”,
   ”location”: “Global”,
   ”properties”: {
    ”groupShortName”: “[variables(‘actionGroupShortName’)]”,
    ”enabled”: true,
    ”emailReceivers”: [
     {
     ”name”: “[variables(‘OperationName’)]”,
     ”emailAddress”: “[variables(‘emailAddress’)]”
     }
    ]
   }
  }
 ],
 ”outputs”:{
  ”actionGroupId”:{
  ”type”:”string”,
  ”value”:”[resourceId(‘Microsoft.Insights/actionGroups’,variables(‘actionGroupName’))]”
  }
 }
}

.Power ShellでARMテンプレートをデプロイする

最後に、作成したARMテンプレートをPower Shellでデプロイします。デプロイ方法は下記を参考にしています。Power Shell実行時に、Action Groupを作成するリソースグループ名を指定します。

https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/templates/deploy-powershell#deploy-local-template

#テンプレートをデプロイするPowerShell
$resourceGroupName = Read-Host -Prompt “Enter the Resource Group name”
$TemplateFilePath = “テンプレートファイルのパス(ex;”C:\tmp\ActionGroup_templete.json”)”

New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName `
-TemplateFile $TemplateFilePath
 

最後に以下のPower Shellで実際にAction Groupができているか確認します。

$resourceGroupName = “リソースグループ名”
$actionGroupName = “アクショングループ名”

Get-AzActionGroup -ResourceGroupName $resourceGroupName -Name $actionGroupName