Azure MonitorのアクショングループをARMテンプレートを使ってデプロイ
Azure Monitorでアラートが発生した場合に、どのように通知を行うのかを定義する機能として、アクショングループがあります。
アクショングループにはメールやSMS、Webhookなどがあります。
今回はアクショングループの作成をAzure PortalとARMテンプレートを利用してメール送信のアクショングループを作成してみました。
ARMテンプレートはマイクロソフト公式サイトを参考に作成しています。
Resource Manager テンプレートを使用したアクション グループの作成(公式サイト)
今回作成した内容はGithubにも公開しています。
アクションルールについては、Azure Portalを使った設定を試しております。こちらは下記記事に纏めております。
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’))]" } } } |
アクショングループのARMテンプレートをPower Shell使ってデプロイ
最後に、作成したARMテンプレートをPower Shellでデプロイします。デプロイ方法はマイクロソフト公式サイトを参考にしています。Power Shell実行時に、Action Groupを作成するリソースグループ名を指定します。
#テンプレートをデプロイする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 |