クイック スタート:ARM テンプレートを使用して新しい推奨事項に基づいてアドバイザー アラートを作成する
この記事では、Azure Resource Manager テンプレート (ARM テンプレート) を使用して、Azure Advisor からの新しい推奨事項に合わせてアラートを設定する方法を示します。
Azure Resource Manager テンプレートは JavaScript Object Notation (JSON) ファイルであり、プロジェクトのインフラストラクチャと構成が定義されています。 このテンプレートでは、宣言型の構文が使用されています。 デプロイを作成するプログラミング コマンドのシーケンスを記述しなくても、そのデプロイに関する意図を記述できます。
アドバイザーがいずれかのリソースに対する新しい推奨事項を検出するたびに、イベントが Azure アクティビティ ログに格納されます。 これらのイベントのアラートは、Azure Advisor から推奨事項固有のアラート作成操作を使用して設定できます。 サブスクリプションを選択し、必要に応じてリソース グループを選択して、アラートを受信するリソースを指定することができます。
また、次のプロパティを使用して、推奨事項の種類を指定することもできます。
- カテゴリ
- 影響レベル
- 推奨事項の種類
アラートがトリガーされたときに実行されるアクションは、次の方法で構成することもできます。
- 既存のアクション グループを選択する。
- 新しいアクション グループを作成する。
アクション グループの詳細については、アクション グループの作成および管理に関するページを参照してください。
Note
現在、Advisor アラートは、高可用性、パフォーマンス、コストに関する推奨事項にのみ使用できます。 セキュリティに関する推奨事項はサポートされていません。
前提条件
- Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。
- ローカル コンピューターからコマンドを実行するには、Azure CLI または Azure PowerShell モジュールをインストールします。 詳細については、「Azure CLI のインストール」および「Azure PowerShell をインストールする」を参照してください。
テンプレートを確認する
次のテンプレートでは、電子メール ターゲットを使用してアクション グループを作成し、ターゲット サブスクリプションのすべてのサービス正常性通知を有効にします。 このテンプレートを CreateAdvisorAlert.json として保存します。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"actionGroups_name": {
"defaultValue": "advisorAlert",
"type": "string"
},
"activityLogAlerts_name": {
"defaultValue": "AdvisorAlertsTest",
"type": "string"
},
"emailAddress": {
"defaultValue": "<email address>",
"type": "string"
}
},
"variables": {
"alertScope": "[concat('/','subscriptions','/',subscription().subscriptionId)]"
},
"resources": [
{
"comments": "Action Group",
"type": "microsoft.insights/actionGroups",
"apiVersion": "2019-06-01",
"name": "[parameters('actionGroups_name')]",
"location": "Global",
"scale": null,
"dependsOn": [],
"tags": {},
"properties": {
"groupShortName": "[parameters('actionGroups_name')]",
"enabled": true,
"emailReceivers": [
{
"name": "[parameters('actionGroups_name')]",
"emailAddress": "[parameters('emailAddress')]"
}
],
"smsReceivers": [],
"webhookReceivers": []
}
},
{
"comments": "Azure Advisor Activity Log Alert",
"type": "microsoft.insights/activityLogAlerts",
"apiVersion": "2017-04-01",
"name": "[parameters('activityLogAlerts_name')]",
"location": "Global",
"scale": null,
"tags": {},
"properties": {
"scopes": [
"[variables('alertScope')]"
],
"condition": {
"allOf": [
{
"field": "category",
"equals": "Recommendation"
},
{
"field": "properties.recommendationCategory",
"equals": "Cost"
},
{
"field": "properties.recommendationImpact",
"equals": "Medium"
},
{
"field": "operationName",
"equals": "Microsoft.Advisor/recommendations/available/action"
}
]
},
"actions": {
"actionGroups": [
{
"actionGroupId": "[resourceId('microsoft.insights/actionGroups', parameters('actionGroups_name'))]",
"webhookProperties": {}
}
]
},
"enabled": true,
"description": ""
},
"dependsOn": [
"[resourceId('microsoft.insights/actionGroups', parameters('actionGroups_name'))]"
]
}
]
}
このテンプレートでは、次の 2 つのリソースが定義されます。
テンプレートのデプロイ
ARM テンプレートをデプロイするための標準的な方法を使ってテンプレートをデプロイします。たとえば次の例では、CLI と PowerShell を使用しています。 ResourceGroup
、emailAddress
のサンプル値を環境に適した値に置き換えます。 ワークスペース名は、すべての Azure サブスクリプションで一意である必要があります。
az login
az deployment group create --name CreateAdvisorAlert --resource-group my-resource-group --template-file CreateAdvisorAlert.json --parameters emailAddress='user@contoso.com'
デプロイの検証
次のコマンドのいずれかを使用して、ワークスペースが作成されたことを確認します。 [リソース グループ] のサンプル値を、前の例で使用した値に置き換えます。
az monitor activity-log alert show --resource-group my-resource-group --name AdvisorAlertsTest
リソースをクリーンアップする
後続のクイック スタートおよびチュートリアルを引き続き実行する場合は、これらのリソースをそのまま残しておくことができます。 リソースが不要になった場合は、リソース グループを削除すると、アラート ルールと関連するリソースが削除されます。 CLI または PowerShell を使用してリソース グループを削除する方法を次に示します。
az group delete --name my-resource-group
関連するコンテンツ
- アクティビティ ログ アラートの概要を把握し、アラートを受信する方法について学習します。
- アクション グループについて学習します。