Azure Monitorのアクショングループ作成からテスト通知まで

2020-03-20Azure,Monitor,PowerShell/Azure CLI

Azure Monitorのアクショングループの作成やテスト通知の手順をまとめました。

    • アクショングループ作成(Azure Portal、Azure PowerShell、REST API、Azure CLI)
    • テスト通知(Azure Portal、Azure PowerShell、REST API、Azure CLI)
    • アクショングループ実行確認

メール通知のアクションを例に手順をまとめています。
アクショングループの実行確認方法も記載しています。

※Azure PowerShell(Azモジュール)は11.2.0を利用しています。
※Azure CLIは2.54.0を利用しています。
※Azure REST APIはブラウザから実行しています。実行時のAPI Versionは2021-09-01です。

スポンサーリンク

アクショングループ作成

作成したアクショングループの設定値

作成したアクショングループの設定値です。
作成方法により設定値の末尾に数値を付加しています。

    • 末尾の数値
      • Azure Portal:01
      • Azure PowerShell:02
      • REST API:03
      • Azure CLI:04
タブ名 項目名 設定値
基本 リージョン グローバル
アクショングループ名 actiongroup-xx
表示名 ag-xx
通知 通知タイプ 電子メール/SMS メッセージ/プッシュ/音声
名前 mail-xx
電子メール チェックあり
通知先メールアドレスを設定
共通アラートスキーマ 有効にする
アクション 設定しない

※特定のリージョンにアクショングループを保存したい場合には、個別のリージョンを選択します。

Azure Portal

Azure Portalでアクショングループを作成します。

Azure portal でアクション グループを作成する

MS Learnを確認しながら進めます。

アクショングループ作成
左側のメニューでアラートを選択します。
作成のアクショングループを選択します。
アクショングループ名や表示名を設定します。
リージョンはグローバルを選択しています。

通知設定です。
アラートを通知する電子メール送信先を設定します。
名前を設定します。

※今回は共通アラートスキーマを有効にしています。

アクション設定画面です。
今回は設定していませんがAzure FunctionsやLogic Apps等を設定する事が出来ます。

確認画面です。
設定値を確認します。
作成を選択します。

アクショングループを確認

Azure Portalで作成したアクショングループを確認します。

アクショングループ確認
左側のメニューでアラートを選択します。
アクショングループを選択します。
アクショングループのリストが表示されます。
作成したアクショングループが確認できます。
アクショングループを選択すると通知設定が確認できます。

アクショングループ作成時には通知先にメールが届く

アクショングループを作成した場合、通知先には確認メールが届きます。

通知メール確認
アクショングループ作成時には通知先メールアドレスに確認メッセージが送信されます。
アクショングループの名前や表示名が確認できます。

Azure PowerShell

Azure PowerShellを利用してアクショングループを作成します。
New-AzActionGroupEmailReceiverObject を使用してメール通知の設定を作成し、その設定を変数に格納します。
その後、格納した変数を使用してアクショングループを作成します。
アクショングループ作成にはNew-AzActionGroupを利用します。

通知方法に応じたコマンドレットが用意されています。
SMS通知の場合はNew-AzActionGroupSmsReceiverObjectを利用します。

※Azure PowerShell(Azモジュール)は11.2.0を利用しています。

アクショングループ作成

New-AzActionGroupEmailReceiverObject を使用してメール通知を作成します。
New-AzActionGroup を使用してアクショングループを作成します。
New-AzActionGroup の実行時に Enabled オプションを追加します。
オプションが指定されていない場合、アクショングループは無効な状態でデプロイされます。

$resourcegroupname = “test-rg-01″ #リソースグループ名
$location = “Global" #リージョン
$actiongroupname = “actiongroup-02″ #アクショングループ名
$actiongroupshortname = “ag-02″ #表示名
$emailreceivername = “mail-02″ #通知名
$emailaddress = “通知先メールアドレス" #通知先メールアドレス
$usecommonalertschema = 1 #共通アラートスキーマ(1で有効化)

#メール通知を作成(メール通知設定値を変数 $emailobject01に格納)
$emailobject01 = New-AzActionGroupEmailReceiverObject `
 -EmailAddress $emailaddress `
 -Name $emailreceivername `
 -UseCommonAlertSchema $usecommonalertschema

#アクショングループを作成
New-AzActionGroup -Name $actiongroupname `
 -GroupShortName $actiongroupshortname `
 -ResourceGroupName $resourcegroupname `
 -Location $location `
 -EmailReceiver $emailobject01 `
 -Enabled

Get-AzActionGroupで作成したアクショングループを確認します。
作成したアクショングループが確認できます。

※Azure Portalで確認すると有効化されている事が確認できます。

PS C:\> $resourcegroupname = “test-rg-01"
PS C:\> Get-AzActionGroup -ResourceGroupName $resourcegroupname

Location Name ResourceGroupName
——– —- —————–
Global actiongroup-02 test-rg-01
Global actiongroup-01 test-rg-01

Get-AzActionGroupを使用してリソースを指定すると、作成したアクショングループの詳細を確認できます。
EmailReceiverの項目では通知設定の詳細が表示されます。
Enabledの値がTrueとなっておりアクショングループが有効化されている事が確認できます。

PS C:\> $resourcegroupname = “test-rg-01"
PS C:\> $actiongroupname = “actiongroup-02"
PS C:\> Get-AzActionGroup -ResourceGroupName $resourcegroupname -name $actiongroupname

ArmRoleReceiver : {}
AutomationRunbookReceiver : {}
AzureAppPushReceiver : {} 
AzureFunctionReceiver : {}
EmailReceiver : {{
  “name": “mail-02",
  “emailAddress": “通知先メールアドレス",
  “useCommonAlertSchema": true,
  “status": “Enabled"
 }}
Enabled : True
EventHubReceiver : {}
GroupShortName : ag-02
Id : /subscriptions/サブスクリプションID/resourceGroups/test-rg-01/providers/microsoft.insights/actionGroups/actiongroup-02
ItsmReceiver : {}
Location : Global
LogicAppReceiver : {}
Name : actiongroup-02
ResourceGroupName : test-rg-01
SmsReceiver : {}
Tag : {
}
Type : Microsoft.Insights/ActionGroups
VoiceReceiver : {}
WebhookReceiver : {}

Azure Portalでアクショングループの設定を確認します。
メール通知設定が確認できます。

Azure REST API

Azure REST APIを利用してアクショングループを作成します。

今回はブラウザから実行しています。MS LearnのREST APIを使ってみるを利用しています。
ブラウザやPostmanを使ったAzure REST APIの操作手順についてはこちらに纏めています。

アクショングループ作成

MS Learn のページでパラメータおよび本文の設定を行い実行します。

【要求URL例(PUT)】
https://management.azure.com/subscriptions/サブスクリプションID/resourceGroups/test-rg-01/providers/Microsoft.Insights/actionGroups/actiongroup-03?api-version=2021-09-01

【本文例】

{
  “location": “Global",
  “tags": {},
  “properties": {
  “groupShortName": “ag-03",
  “enabled": true,
  “emailReceivers": [
  {
    “name": “mail-03",
    “emailAddress": “通知先メールアドレス",
    “useCommonAlertSchema": true
   }
  ]
 }
}

作成したアクショングループを確認します。

【要求URL例(GET)】
https://management.azure.com/subscriptions/サブスクリプションID/resourceGroups/test-rg-01/providers/Microsoft.Insights/actionGroups/actiongroup-03?api-version=2021-09-01

REST APIの応答を確認します。
アクショングループの設定内容が確認できます。
emailReceiversの項目でメール通知の設定内容が確認できます。

{
 “id": “/subscriptions/サブスクリプションID/resourceGroups/test-rg-01/providers/microsoft.insights/actionGroups/actiongroup-03",
 “type": “Microsoft.Insights/ActionGroups",
 “name": “actiongroup-03",
 “location": “Global",
 “kind": null,
 “tags": null,
 “properties": {
   “groupShortName": “ag-03",
   “enabled": true,
   “emailReceivers": [
   {
     “name": “mail-03",
     “emailAddress": “通知先メールアドレス",
     “useCommonAlertSchema": true,
     “status": “Enabled"
   }
  ],
  “smsReceivers": [],
  “webhookReceivers": [],
  “eventHubReceivers": [],
  “itsmReceivers": [],
  “azureAppPushReceivers": [],
  “automationRunbookReceivers": [],
  “voiceReceivers": [],
  “logicAppReceivers": [],
  “azureFunctionReceivers": [],
  “armRoleReceivers": []
 }
}

Azure Portalで確認します。
REST APIで作成したアクショングループが確認できます。

Azure CLI

Azure CLIを使用してアクショングループを作成します。
az monitor action-group createを使用してアクショングループを作成します。
作成したアクショングループを確認する際には、az monitor action-group listやaz monitor action-group showを使用します。

※Azure CLIは2.54.0を利用しています。

アクショングループ作成

az monitor action-group createを使用してアクショングループを作成します。
メール通知設定はactionのオプションで使用します。
actionのオプション内でusecommonalertschemaを指定する事で共通アラートスキーマを有効化する事が出来ます。

$resourcegroupname = “test-rg-01″ #リソースグループ名
$location = “Global" #リージョン名
$actiongroupname = “actiongroup-04″ #アクショングループ名
$actiongroupshortname = “ag-04″ #表示名
$emailreceivername = “mail-04″ #通知名
$emailaddress = “通知先メールアドレス" #通知先メールアドレス

az monitor action-group create `
    –action-group-name $actiongroupname `
    –resource-group $resourcegroupname  `
    –action email $emailreceivername $emailaddress usecommonalertschema `
    –group-short-name $actiongroupshortname `
    –location $location

アクショングループのリストをaz monitor action-group listで表示します。

PS C:\> az monitor action-group list –output table

Name ResourceGroup GroupShortName Enabled Location Email Sms Webhook Armrole Azureapppush Itsm Automationrunbook Voice Logicapp Azurefunction Eventhub
————– ————— —————- ——— ———- ——- —– ——— ——— ————– —— ——————- ——- ———- ————— ———-
actiongroup-02 test-rg-01 ag-02 True Global 1 0 0 0 0 0 0 0 0 0 0
actiongroup-03 test-rg-01 ag-03 True Global 1 0 0 0 0 0 0 0 0 0 0
actiongroup-04 test-rg-01 ag-04 True Global 1 0 0 0 0 0 0 0 0 0 0
actiongroup-01 test-rg-01 ag-01 True Global 1 0 0 0 0 0 0 0 0 0 0

Azure Portalで確認します。
作成したアクショングループを確認できます。

PS C:\> az monitor action-group show –name actiongroup-04 –resource-group test-rg-01

{
 “armRoleReceivers": [],
 “automationRunbookReceivers": [],
 “azureAppPushReceivers": [],
 “azureFunctionReceivers": [],
 “emailReceivers": [
  {
   “emailAddress": “通知先メールアドレス,
   “name": “mail-04",
   “status": “Enabled",
   “useCommonAlertSchema": true
  }
 ],
 “enabled": true,
 “eventHubReceivers": [],
 “groupShortName": “ag-04",
 “id": “/subscriptions/サブスクリプションID/resourceGroups/test-rg-01/providers/microsoft.insights/actionGroups/actiongroup-04",
 “itsmReceivers": [],
 “location": “Global",
 “logicAppReceivers": [],
 “name": “actiongroup-04",
 “resourceGroup": “test-rg-01",
 “smsReceivers": [],
 “type": “Microsoft.Insights/ActionGroups",
 “voiceReceivers": [],
 “webhookReceivers": []
}

Azure Portalで確認します。
メール通知設定が確認できます。

テスト通知

作成したアラートルールをテストする事が出来ます。

Azure Portal

Azure Portalからテスト通知を行ってみます。

Azureポータルでアクショングループをテストする

MS Learnを参考に進めます。
サンプルにはメトリックアラート – 静的しきい値を使用します。

テスト通知
アクショングループの画面で概要にあるテストを選択します。
サンプルの種類と通知先にチェックを入れます。
Testを選択します。
テストの実行画面が表示されます。
しばらくすると完了メッセージが表示されます。
通知先のメールアドレスにテストメールが届きます。

Azure PowerShell

Azure PowerShellを使用してテスト通知を行います。
サンプルにはメトリックアラート – 静的しきい値を使用します。
テスト実行にはTest-AzActionGroupを使用します。
Get-AzActionGroupで取得した値を利用しています。

※Azure PowerShell(Azモジュール)は11.2.0を利用しています。

テスト通知

Get-AzActionGroupを使用してアクショングループの情報を取得します。
Test-AzActionGroupでテストを実行します。
Test-AzActionGroupのパラメータにはGet-AzActionGroupで取得したアクショングループの設定内容を使用します。
AlertTypeのパラメータを参照設定します。

AlertType

メトリックアラート – 静的しきい値の場合にはAlertTypeにmetricstaticthresholdを指定します。

$resourcegroupname = “test-rg-01″  #リソースグループ名
$actiongroupname = “actiongroup-02″  #アクショングループ名

$actiongroup = Get-AzActionGroup -ResourceGroupName $resourcegroupname -name $actiongroupname

Test-AzActionGroup -ResourceGroupName $resourcegroupname `
 -ActionGroupName $actiongroupname `
 -AlertType metricstaticthreshold `
 -Receiver $actiongroup.EmailReceiver

実行結果です。
Statusを確認するとSucceededとなっており、テストが成功していることが分かります。
Azure Portalでのテスト実行と同様に、通知先メールアドレスでテストメールを確認できます。

EmailReceiver

ActionDetail : {{
“MechanismType": “Email",
“Name": “mail-02",
“Status": “Succeeded",
“SendTime": “2024-01-21T06:35:46.708231+00:00"
}}
CompletedTime : 2024-01-21T06:37:29.5070993+00:00
ContextNotificationSource : Microsoft.Insights/TestNotification
ContextType :
CreatedTime : 2024-01-21T06:35:46.3977426+00:00
State : Complete

Azure REST API

Azure REST APIを使用してテストを実行します。
通知先には、Azure Portalでのテスト実行と同じく、テストメールが送信されます。

ブラウザやPostmanを使ったAzure REST APIの操作手順についてはこちらに纏めています。

テスト通知

MS Learn のページでパラメータおよび本文の設定を行い実行します。

【要求URL例(POST)】
https://management.azure.com/subscriptions/サブスクリプションID/providers/Microsoft.Insights/createNotifications?api-version=2021-09-01

【本文例】

{
 “alertType": “metricstaticthreshold",
 “emailReceivers": [
  {
   “name": “mail-03",
   “emailAddress": “通知先メールアドレス",
   “useCommonAlertSchema": true
  }
 ]
}

Azure CLI

Azure CLIを使用してテスト通知を行います。
サンプルにはメトリックアラート – 静的しきい値を使用します。
テスト実行にはaz monitor action-group test-notificationsを使用します。

※Azure CLIは2.54.0を利用しています。

テスト通知

az monitor action-group test-notifications createを使用してテスト実行します。
メール通知は-a(–add-action)のオプションで設定します。
-a(–add-action)のオプション内でusecommonalertschemaを指定する事で共通アラートスキーマを有効化します。

$resourcegroupname = “test-rg-01" #リソースグループ名
$location = “Global" #リージョン
$actiongroupname = “actiongroup-04″ #アクショングループ名
$emailreceivername = “mail-04" #通知名
$emailaddress = “通知先メールアドレス"  #通知先メールアドレス

az monitor action-group test-notifications create `
–action-group-name $actiongroupname `
–resource-group $resourcegroupname `
-a email $emailreceivername $emailaddress usecommonalertschema `
–alert-type metricstaticthreshold

実行結果です。
Statusを確認するとSucceededとなっており、テストが成功していることが分かります。
Azure Portalでのテスト実行と同様に、通知先メールアドレスでテストメールを確認できます。

{
  “actionDetails": [
    {
     “MechanismType": “Email",
     “Name": “mail-04",
     “SendTime": “2024-01-21T12:41:18.6092267+00:00",
     “Status": “Succeeded"
    }
   ],
   “completedTime": “2024-01-21T12:43:12.0184741+00:00",
   “context": {
   “notificationSource": “Microsoft.Insights/TestNotification"
  },
 “createdTime": “2024-01-21T12:41:18.3839798+00:00",
 “state": “Complete"
}

アクショングループの実行を確認

アラートが発生した際、アクショングループが実行されたかどうかを確認する方法です。

アラートの詳細で確認

発生したアラートの詳細の履歴タブで確認出来ます。

アラートの詳細で確認
アラートの詳細の履歴タブを選択します。
トリガーされたアクショングループが確認出来ます。

アラート通知メールで確認

アラート通知メール内でも、どのアクショングループからのメールか確認できます。

アラート通知メールで確認
アラート通知メールの一番下を確認します。
アクショングループの表示名が記載されています。

※テスト実行時には表示されないようです。

アクショングループの有効・無効化

アクショングループの有効・無効化についてはこちらに纏めています。
併せて見て頂けると有難いです。

最後に

Azure Portal、Azure PowerShell、Azure CLI、REST APIを使ったアクショングループの作成からテストまでの手順をまとめてみました。
実行されたアクショングループの確認方法についてもまとめています。
アクショングループのテストは通知されない場合の確認などにも利用出来ます。
今後も色々試してみたいと思います。

※使用しているAzure PowerShellやAzure CLIのバージョン、REST APIのAPI Versionにより挙動や手順が異なる場合があります。

アラート処理ルールを利用した非監視設定手順についてはこちらに纏めています。
併せて見て頂けると有難いです。

スポンサーリンク