Azure portal の [監視] メニューで、[データ収集ルール] を選んでから [作成] を選びます。
プラットフォームのメトリック データを収集する DCR を作成するには、ページの上部にあるリンクを選びます。
[データ収集ルールの作成] ページで、ルール名を入力し、DCR の [サブスクリプション]、[リソース グループ]、[リージョン] を選びます。
メトリックをストレージ アカウントまたは Event Hubs に送信する場合は、[マネージド ID を有効にする] をオンにします。
[次へ] を選択します
[リソース] ページで、[リソースの追加] を選んでメトリックを収集するリソースを追加します。
[次へ] を選んで、[収集と配信] タブに移動します。
[新しいデータフローの追加] を選びます
前のステップで選んだリソースのリソースの種類が自動的に選択されます。 将来的に、このルールを使って複数のリソースの種類からメトリックを収集する場合は、リソースの種類をさらに追加します。
[次へ: 宛先] を選んで、[宛先] タブに移動します。
メトリックを Log Analytics ワークスペースに送信するには、[宛先の種類] ドロップダウンから [Azure Monitor ログ] を選びます。
- [サブスクリプション] と、メトリックを送信する Log Analytics ワークスペースを選びます。
メトリックを Event Hubs に送信するには、[宛先の種類] ドロップダウンから [イベント ハブ] を選びます。
- [サブスクリプション]、[イベント ハブの名前空間]、[イベント ハブのインスタンス名] を選びます。
メトリックをストレージ アカウントに送信するには、[宛先の種類] ドロップダウンから [ストレージ アカウント] を選びます。
- [サブスクリプション]、[ストレージ アカウント]、メトリックを格納する [BLOB コンテナー] を選びます。
Note
メトリックをストレージ アカウントまたは Event Hubs に送信するには、メトリックを生成するリソース、DCR、ストレージ アカウントまたはイベント ハブがすべて、同じリージョンに存在する必要があります。
メトリックを Log Analytics ワークスペースに送信するには、DCR が Log Analytics ワークスペースと同じリージョンに存在する必要があります。 メトリックを生成するリソースは、どのリージョンでもかまいません。
宛先としてストレージ アカウントまたは Event Hubs を選ぶには、[基本] タブで DCR に対してマネージド ID を有効にする必要があります。
[保存] を選んでから、[確認と作成] を選びます。
収集ルールの指定を含む JSON ファイルを作成します。 詳しくは、「DCR の指定」をご覧ください。 JSON ファイルのサンプルについては、「サンプルのメトリック エクスポート JSON オブジェクト」をご覧ください。
重要
ルール ファイルの形式は PowerShell や REST API に使われるものと同じですが、ファイルに identity
、location
、または kind
が含まれていてはなりません。 これらのパラメーターは、az monitor data-collection rule create
コマンドで指定します。
Azure CLI を使ってメトリック用のデータ収集ルールを作成するには、次のコマンドを使います。
az monitor data-collection rule create
--name
--resource-group
--location
--kind PlatformTelemetry
--rule-file
[--identity "{type:'SystemAssigned'}" ]
ストレージ アカウントと Event Hubs が宛先の場合は、--identity "{type:'SystemAssigned'}"
を使って DCR のマネージド ID を有効にする必要があります。 Log Analytics ワークスペースには ID は必要ありません。
たとえば、 にします。
az monitor data-collection rule create
--name cli-dcr-001
--resource-group rg-001
--location centralus
--kind PlatformTelemetry
--identity "{type:'SystemAssigned'}"
--rule-file cli-dcr.json
DCR とリソースの間の関連付けを作成するためのロールの割り当てで使うので、DCR の id
と principalId
をコピーしておきます。
"id": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/rg-001/providers/Microsoft.Insights/dataCollectionRules/cli-dcr-001",
"identity": {
"principalId": "eeeeeeee-ffff-aaaa-5555-666666666666",
"tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
"type": "systemAssigned"
},
マネージド エンティティに書き込みアクセス許可を付与する
宛先がストレージ アカウントまたは Event Hubs である場合、DCR によって使われるマネージド ID には、宛先への書き込みアクセス許可が必要です。
ルールのマネージド エンティティにアクセス許可を付与するには、エンティティに適切なロールを割り当てます。
次の表に、各宛先の種類に必要なロールを示します。
送信先の種類 |
ロール |
Log Analytics ワークスペース |
は不要 |
Azure Storage アカウント |
Storage Blob Data Contributor |
Event Hubs |
Azure Event Hubs Data Sender |
ロールの割り当てについて詳しくは、「Azure ロールをマネージド ID に割り当てる」をご覧ください。
CLI を使ってマネージド ID にロールを割り当てるには、az role assignment create
を使います。 詳しくは、「ロールの割り当て - 作成」をご覧ください
DCR のマネージド ID に適切なロールを割り当てます。
az role assignment create --assignee <system assigned principal ID> \
--role <`Storage Blob Data Contributor` or `Azure Event Hubs Data Sender` \
--scope <storage account ID or eventhub ID>
次の例では、ストレージ アカウントの DCR のマネージド ID に Storage Blob Data Contributor
ロールを割り当てています。
az role assignment create --assignee eeeeeeee-ffff-aaaa-5555-666666666666 \
--role "Storage Blob Data Contributor" \
--scope /subscriptions/bbbb1b1b-cc2c-DD3D-ee4e-ffffff5f5f5f/resourceGroups/ed-rg-DCRTest/providers/Microsoft.Storage/storageAccounts/metricsexport001
データ収集ルールの関連付けを作成する
データ収集ルールを作成した後、データ収集ルールの関連付け (DCRA) を作成して、ルールと監視対象のリソースを関連付けます。 詳しくは、「データ収集ルールの関連付け - 作成」をご覧ください
データ収集ルールとリソースの間の関連付けを作成するには、az monitor data-collection rule association create
を使います。
az monitor data-collection rule association create --name
--rule-id
--resource
次の例では、データ収集ルールとキー コンテナーの間の関連付けを作成しています。
az monitor data-collection rule association create --name "keyValut-001" \
--rule-id "/subscriptions/bbbb1b1b-cc2c-DD3D-ee4e-ffffff5f5f5f/resourceGroups/rg-dcr/providers/Microsoft.Insights/dataCollectionRules/dcr-cli-001" \
--resource "/subscriptions/bbbb1b1b-cc2c-DD3D-ee4e-ffffff5f5f5f/resourceGroups/rg-dcr/providers/Microsoft.KeyVault/vaults/keyVault-001"
収集ルールの指定を含む JSON ファイルを作成します。 詳しくは、「DCR の指定」をご覧ください。 JSON ファイルのサンプルについては、「サンプルのメトリック エクスポート JSON オブジェクト」をご覧ください。
PowerShell を使ってメトリック用のデータ収集ルールを作成するには、New-AzDataCollectionRule
コマンドを使います。 詳しくは、「New-AzDataCollectionRule」をご覧ください。
New-AzDataCollectionRule -Name
-ResourceGroupName
-JsonFilePath
たとえば、 にします。
New-AzDataCollectionRule -Name dcr-powershell-hub -ResourceGroupName rg-001 -JsonFilePath dcr-storage-account.json
DCR とリソースの間の関連付けを作成するためのロールの割り当てで使うので、DCR の id
と IdentityPrincipalId
をコピーしておきます。
Id : /subscriptions/bbbb1b1b-cc2c-DD3D-ee4e-ffffff5f5f5f/resourceGroups/rg-001/providers/Microsoft.Insights/dataCollectionRules/dcr-powershell-hub
IdentityPrincipalId : eeeeeeee-ffff-aaaa-5555-666666666666
IdentityTenantId : 0000aaaa-11bb-cccc-dd22-eeeeee333333
IdentityType : systemAssigned
IdentityUserAssignedIdentity : {
}
マネージド エンティティに書き込みアクセス許可を付与する
宛先がストレージ アカウントまたは Event Hubs である場合、DCR によって使われるマネージド ID には、宛先への書き込みアクセス許可が必要です。
ルールのマネージド エンティティにアクセス許可を付与するには、エンティティに適切なロールを割り当てます。
次の表に、各宛先の種類に必要なロールを示します。
送信先の種類 |
ロール |
Log Analytics ワークスペース |
は不要 |
Azure Storage アカウント |
Storage Blob Data Contributor |
Event Hubs |
Azure Event Hubs Data Sender |
詳しくは、「Azure ロールをマネージド ID に割り当てる」をご覧ください。
PowerShell を使ったマネージド ID へのロールの割り当てについては、「New-AzRoleAssignment」をご覧ください
New-AzRoleAssignment
を使って、DCR のマネージド ID に適切なロールを割り当てます。
New-AzRoleAssignment -ObjectId <objectId> -RoleDefinitionName <roleName> -Scope /subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/<providerName>/<resourceType>/<resourceSubType>/<resourceName>
次の例では、サブスクリプション レベルで DCR のマネージド ID に Azure Event Hubs Data Sender
ロールを割り当てています。
New-AzRoleAssignment -ObjectId eeeeeeee-ffff-aaaa-5555-666666666666 -RoleDefinitionName "Azure Event Hubs Data Sender" -Scope /subscriptions/bbbb1b1b-cc2c-DD3D-ee4e-ffffff5f5f5f
データ収集ルールの関連付けを作成する
データ収集ルールを作成した後、データ収集ルールの関連付け (DCRA) を作成して、ルールと監視対象のリソースを関連付けます。 データ収集ルールとリソースの間の関連付けを作成するには、New-AzDataCollectionRuleAssociation
を使います。 詳しくは、「New-AzDataCollectionRuleAssociation」をご覧ください
New-AzDataCollectionRuleAssociation
-AssociationName <String>
-ResourceUri <String>
-DataCollectionRuleId <String>
次の例では、データ収集ルールとキー コンテナーの間の関連付けを作成しています。
New-AzDataCollectionRuleAssociation
-AssociationName keyVault-001-association
-ResourceUri /subscriptions/bbbb1b1b-cc2c-DD3D-ee4e-ffffff5f5f5f/resourceGroups/rg-dcr/providers/Microsoft.KeyVault/vaults/keyVault-001
-DataCollectionRuleId /subscriptions/bbbb1b1b-cc2c-DD3D-ee4e-ffffff5f5f5f/resourceGroups/rg-dcr/providers/Microsoft.Insights/dataCollectionRules/vaultsDCR001
REST API を使用してデータ収集ルールを作成する
メトリック用のデータ収集ルールを作成するには、次の手順が必要です。
- データ収集ルールを作成します。
- ルールのマネージド エンティティに、宛先に書き込むためのアクセス許可を付与します
- データ収集ルールの関連付けを作成します。
データ収集ルールを作成する
REST API を使って DCR を作成するには、ベアラー トークンを使って認証された要求を行う必要があります。 Azure Monitor での認証について詳しくは、「Azure Monitor の要求を認証する」をご覧ください。
REST API を使ってメトリック用のデータ収集ルールを作成するには、次のエンドポイントを使います。
詳しくは、「データ収集ルール - 作成」をご覧ください。
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/dataCollectionRules/{dataCollectionRuleName}?api-version=2023-03-11
次に例を示します。
https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg-001/providers/Microsoft.Insights/dataCollectionRules/dcr-001?api-version=2023-03-11
ペイロードは、収集ルールを定義する JSON オブジェクトです。 ペイロードは要求の本文で送信されます。 JSON の構造について詳しくは、「DCR の指定」をご覧ください。 DCR JSON オブジェクトのサンプルについては、「サンプルのメトリック エクスポート JSON オブジェクト」をご覧ください
マネージド エンティティに書き込みアクセス許可を付与する
宛先がストレージ アカウントまたは Event Hubs である場合、DCR によって使われるマネージド ID には、宛先への書き込みアクセス許可が必要です。
ルールのマネージド エンティティにアクセス許可を付与するには、エンティティに適切なロールを割り当てます。
次の表に、各宛先の種類に必要なロールを示します。
送信先の種類 |
ロール |
Log Analytics ワークスペース |
は不要 |
Azure Storage アカウント |
Storage Blob Data Contributor |
Event Hubs |
Azure Event Hubs Data Sender |
詳しくは、「Azure ロールをマネージド ID に割り当てる」をご覧ください。
REST を使ったマネージド ID へのロールの割り当てについては、「ロールの割り当て - 作成」をご覧ください
データ収集ルールの関連付けを作成する
データ収集ルールを作成した後、データ収集ルールの関連付け (DCRA) を作成して、ルールと監視対象のリソースを関連付けます。 詳しくは、「データ収集ルールの関連付け - 作成」をご覧ください
REST API を使って DCRA を作成するには、次のエンドポイントとペイロードを使います。
PUT https://management.azure.com/{resourceUri}/providers/Microsoft.Insights/dataCollectionRuleAssociations/{associationName}?api-version=2022-06-0
本文は次のようになります。
{
"properties":
{
"description": "<DCRA description>",
"dataCollectionRuleId": "/subscriptions/{subscriptionId}/resourceGroups/{resource group name}/providers/Microsoft.Insights/dataCollectionRules/{DCR name}"
}
}
たとえば、 にします。
https://management.azure.com//subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/rg-001/providers/Microsoft.Compute/virtualMachines/vm002/providers/Microsoft.Insights/dataCollectionRuleAssociations/dcr-la-ws-vm002?api-version=2023-03-11
{
"properties":
{
"description": "Association of platform telemetry DCR with VM vm002",
"dataCollectionRuleId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg-001/providers/Microsoft.Insights/dataCollectionRules/dcr-la-ws"
}
}
DCR を作成するには、次のテンプレートを使います。 詳しくは、「Microsoft.Insights dataCollectionRules」をご覧ください
テンプレート ファイル
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"dataCollectionRuleName": {
"type": "string",
"metadata": {
"description": "Specifies the name of the Data Collection Rule to create."
}
},
"location": {
"type": "string",
"metadata": {
"description": "Specifies the location in which to create the Data Collection Rule."
}
}
},
"resources": [
{
"type": "Microsoft.Insights/dataCollectionRules",
"name": "[parameters('dataCollectionRuleName')]",
"kind": "PlatformTelemetry",
"identity": {
"type": "userassigned" | "systemAssigned",
"userAssignedIdentities": {
"type": "string"
}
},
"location": "[parameters('location')]",
"apiVersion": "2023-03-11",
"properties": {
"dataSources": {
"platformTelemetry": [
{
"streams": [
"<resourcetype>:<metric name> | Metrics-Group-All"
],
"name": "myPlatformTelemetryDataSource"
}
]
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "[parameters('workspaceId')]",
"name": "myDestination"
}
]
},
"dataFlows": [
{
"streams": [
"<resourcetype>:<metric name> | Metrics-Group-All"
],
"destinations": [
"myDestination"
]
}
]
}
}
]
}
パラメーター ファイル
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"dataCollectionRuleName": {
"value": "metrics-dcr-001"
},
"workspaceId": {
"value": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/azuremonitorworkspaceinsights/providers/microsoft.operationalinsights/workspaces/amw-insight-ws"
},
"location": {
"value": "eastus"
}
}
}
DCR テンプレートのサンプル:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Insights/dataCollectionRules",
"apiVersion": "2023-03-11",
"name": "[parameters('dataCollectionRuleName')]",
"location": "[parameters('location')]",
"kind": "PlatformTelemetry",
"identity": {
"type": "SystemAssigned"
},
"properties": {
"dataSources": {
"platformTelemetry": [
{
"streams": [
"Microsoft.Compute/virtualMachines:Metrics-Group-All",
"Microsoft.Compute/virtualMachineScaleSets:Metrics-Group-All",
"Microsoft.Cache/redis:Metrics-Group-All",
"Microsoft.keyvault/vaults:Metrics-Group-All"
],
"name": "myPlatformTelemetryDataSource"
}
]
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "[parameters('workspaceId')]",
"name": "myDestination"
}
]
},
"dataFlows": [
{
"streams": [
"Microsoft.Compute/virtualMachines:Metrics-Group-All",
"Microsoft.Compute/virtualMachineScaleSets:Metrics-Group-All",
"Microsoft.Cache/redis:Metrics-Group-All",
"Microsoft.keyvault/vaults:Metrics-Group-All"
],
"destinations": [
"myDestination"
]
}
]
}
}
]
}
DCR と DCRA を作成した後、最初のプラットフォーム メトリック データが Log Analytics ワークスペースに表示されるまで、最大 30 分かかります。 データのフローが始まると、Log Analytics ワークスペース、ストレージ アカウント、または Event Hubs に流れるプラットフォーム メトリックの時系列の待ち時間は、リソースの種類によりますが、約 3 分です。
DCR をインストールした後、変更が有効になり、更新された DCR でデータが収集されるまで、数分かかる場合があります。 データが収集されない場合、問題の根本原因の特定が難しいことがあります。 DCR 監視機能を使います。これには、トラブルシューティングに役立つメトリックとログが含まれます。