クイック スタート:ARM テンプレートを使用して新しい推奨事項に基づいて Azure Advisor アラートを作成する
この記事では、Azure Resource Manager テンプレート (ARM テンプレート) を使用して、Azure Advisor からの新しい推奨事項に合わせてアラートを設定する方法を示します。
Azure Resource Manager テンプレートは JavaScript Object Notation (JSON) ファイルであり、プロジェクトのインフラストラクチャと構成が定義されています。 このテンプレートでは、宣言型の構文が使用されています。 デプロイしようとしているものを、デプロイを作成する一連のプログラミング コマンドを記述しなくても記述できます。
Azure Advisor でリソースの 1 つに対して新しい推奨事項が検出されるたびに、イベントが 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 つのリソースが定義されます。
テンプレートのデプロイ
CLI と PowerShell を使用する次の例のような、ARM テンプレートをデプロイするための標準的な方法を使ってテンプレートをデプロイします。 リソース グループと 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
リソースをクリーンアップする
後続のクイック スタートおよびチュートリアルを引き続き実行する場合は、これらのリソースをそのまま残しておくことができます。 不要になったら、リソース グループを削除します。これにより、アラート ルールと関連リソースが削除されます。 Azure CLI または Azure PowerShell を使用してリソース グループを削除するには、次を実行します。
az group delete --name my-resource-group
次のステップ
- アクティビティ ログ アラートの概要を把握し、アラートを受信する方法について学習します。
- アクション グループについて学習します。