この記事では、Azure portal、Azure PowerShell、Azure Resource Manager (ARM) テンプレート、Azure CLI を使用して Azure Resource Health アラートを作成して構成する方法について説明します。
Resource Health アラートは、Azure リソースの正常性状態の変化 (使用不能になったり低下したりするなど) が発生したときに通知します。 これらのアラートは、ワークロードに影響を与えるサービスの問題に関する情報を常に把握し、迅速に対応するのに役立ちます。
Service Health ポータルで Resource Health アラート ルールを作成する
- Azure ポータルで、[サービス正常性] を選択します。
- [リソース正常性] を選択します。
- [リソース正常性アラートの追加] を選びます。
アラート ルールの作成ウィザードでは、[条件] タブが開き、[スコープ] タブが既に設定されています。
- アラート ルール ウィザードの [条件] タブから Resource Health アラートを作成する手順に従います。
PowerShell を使用して Resource Health アラートを作成する
Note
Azure を操作するには、Azure Az PowerShell モジュールを使用することをお勧めします。 作業を始めるには、「Azure PowerShell をインストールする」を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。
このページの指示に従うには、事前にいくつかの項目を設定する必要があります。
- Azure PowerShell モジュールをインストールする必要があります。
- 通知を行うよう構成されたアクション グループを作成または再利用する必要があります。
PowerShell の手順
PowerShell を使用してアカウントを使用して Azure にサインインし、使用するサブスクリプションを選択します。
Login-AzAccount Select-AzSubscription -Subscription <subscriptionId>
Note
Get-AzSubscription
を使用すると、アクセスできるサブスクリプションを一覧表示できます。アクション グループの完全な Azure Resource Manager ID を検索して保存します。
(Get-AzActionGroup -ResourceGroupName <resourceGroup> -Name <actionGroup>).Id
Resource Health アラート用の ARM テンプレートを作成して
resourcehealthalert.json
として保存する (詳細を参照)このテンプレートを使用して、新しい Azure Resource Manager デプロイを作成します。
New-AzResourceGroupDeployment -Name ExampleDeployment -ResourceGroupName <resourceGroup> -TemplateFile <path\to\resourcehealthalert.json>
アラート名と、先ほどコピーしたアクション グループのリソース ID の入力を求めるメッセージが表示されます。
Supply values for the following parameters: (Type !? for Help.) activityLogAlertName: <Alert Name> actionGroupResourceId: /subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/microsoft.insights/actionGroups/<actionGroup>
すべてが正常に動作すると、PowerShell に確認メッセージが表示されます
DeploymentName : ExampleDeployment ResourceGroupName : <resourceGroup> ProvisioningState : Succeeded Timestamp : 11/8/2017 2:32:00 AM Mode : Incremental TemplateLink : Parameters : Name Type Value =============== ========= ========== activityLogAlertName String <Alert Name> activityLogAlertEnabled Bool True actionGroupResourceId String /... Outputs : DeploymentDebugLogLevel :
Note
このプロセスを完全に自動化することを計画している場合は、手順 5 で値の入力を求めないように ARM テンプレートを編集するだけで済みます。
テンプレート オプションを使用してリソース正常性アラートを作成する
- Base template
- Alert scope
- Resource types
- Health events
- Unknown events
- ユーザーが開始したイベント
- Resource Health アラート テンプレート
- ARM templates
Resource Health アラートを作成するための開始点として、この基本テンプレートを使用できます。 このテンプレートは記述どおりに機能し、サブスクリプション内のすべてのリソースで新しくアクティブ化されたすべてのリソース正常性イベントのアラートを受け取るようにサインアップします。
Note
Resource Health アラート テンプレートは、このテンプレートと比較して Resource Health アラートのシグナル対ノイズ比を高める必要がある、より複雑なアラート テンプレートです。
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"activityLogAlertName": {
"type": "string",
"metadata": {
"description": "Unique name (within the Resource Group) for the Activity log alert."
}
},
"actionGroupResourceId": {
"type": "string",
"metadata": {
"description": "Resource Id for the Action group."
}
}
},
"resources": [
{
"type": "Microsoft.Insights/activityLogAlerts",
"apiVersion": "2017-04-01",
"name": "[parameters('activityLogAlertName')]",
"___location": "Global",
"properties": {
"enabled": true,
"scopes": [
"[subscription().id]"
],
"condition": {
"allOf": [
{
"field": "category",
"equals": "ResourceHealth"
},
{
"field": "status",
"equals": "Active"
}
]
},
"actions": {
"actionGroups":
[
{
"actionGroupId": "[parameters('actionGroupResourceId')]"
}
]
}
}
}
]
}
ただし、このような広範なアラートは推奨されません。 重要なイベントに焦点を合わせるためにこのアラートの範囲を設定する方法について説明します。
Next steps
Resource Health に関する詳細情報を参照してください。
Service Health アラートを作成します。