Azure portal を使用してデータ収集ルールを作成する
Azure portal の [監視] メニューで、[ データ収集規則 ] を選択し、[ 作成] を選択します。
[ データ収集ルールの作成 ] ページで、規則名を入力し、DCR のサブスクリプション、 リソース グループ、および リージョン を選択します。
ストレージ アカウントまたは Event Hubs にメトリックを送信する場合は、テレメトリの種類として PlatformTelemetry を選択し、マネージド ID を有効にします。
[ リソース ] ページで、[ リソースの追加 ] を選択して、メトリックを収集するリソースを追加します。
[ 次へ ] を選択して、[ 収集して配信 ] タブに移動します。
[ 新しいデータソースの追加] を選択します。
前の手順で指定したリソースのリソースの種類が自動的に選択されます。 将来的に、このルールを使用して、複数のリソースの種類からメトリックを収集する場合は、リソースの種類をさらに追加します。 収集されたメトリックの一部を削除する場合は、リソースの種類の アクション を選択します。 既定では、リソースに対して使用可能なすべてのメトリックが収集されます。
[ 次の変換先] を選択して、[ 変換先 ] タブに移動します。
[ 宛先の追加] を選択し、追加する 宛先の種類 を選択します。 必須フィールドは、選択した宛先の種類に基づいて変更されます。
注
メトリックをストレージ アカウントまたは Event Hubs に送信するには、メトリック、DCR、ストレージ アカウントまたはイベント ハブを生成するリソースがすべて同じリージョンにある必要があります。 メトリックを Log Analytics ワークスペースに送信するには、DCR が Log Analytics ワークスペースと同じリージョンに存在する必要があります。 メトリックを生成するリソースは、どのリージョンでもかまいません。
[ 保存] を選択し、[ 確認と作成] を選択します。
Azure CLI を使用してデータ収集規則を作成する
コレクション ルールの仕様を含む JSON ファイルを作成します。 詳細については、 メトリックのエクスポートに関するデータ収集規則 (DCR) の構造を参照してください。 サンプル JSON ファイルについては、「 サンプル メトリックのエクスポート JSON オブジェクト」を参照してください。
重要
ルール ファイルの形式は PowerShell や REST API に使われるものと同じですが、ファイルに identity、location、または kind を含むことはできません。 これらのパラメーターは、az monitor data-collection rule create コマンドで指定します。
次のAzure CLI例では、az monitor data-collection rule create コマンドを使用します。
subscriptionId="aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
resourceGroupName="myResourceGroup"
dataCollectionRuleName="myDataCollectionRule"
location="eastus"
ruleFile="./cli-dcr.json"
az account set --subscription "$subscriptionId"
az monitor data-collection rule create \
--name "$dataCollectionRuleName" \
--resource-group "$resourceGroupName" \
--location "$location" \
--kind PlatformTelemetry \
--identity "{type:'SystemAssigned'}" \
--rule-file "$ruleFile"
注
Azure CLIコマンドは現在の CLI コンテキストからAzure Resource Manager エンドポイントを使用するため、コマンド構文で management.azure.com を指定する必要はありません。
ストレージ アカウントと Event Hub 宛先の場合は、--identity "{type:'SystemAssigned'}" を使用して DCR のマネージド ID を有効にする必要があります。 Log Analytics ワークスペースには、ID は必要ありません。
次の出力から DCR の id と principalId をコピーして、DCR とリソース間の関連付けを作成するロールの割り当てに使用します。
Output:
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Insights/dataCollectionRules/myDataCollectionRule",
"identity": {
"principalId": "eeeeeeee-ffff-aaaa-5555-666666666666",
"tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
"type": "systemAssigned"
},
マネージド ID に書き込みアクセス許可を付与する
宛先が、ストレージ アカウントまたは Event Hub の場合、DCR が使用するマネージド ID には、宛先への書き込みアクセス許可が必要です。 ルールのマネージド ID のアクセス許可を付与するには、エンティティに適切なロールを割り当てます。
次の表に、必要なロールを宛先の種類ごとに示します。
| 変換先の型 |
役割 |
| Log Analytics ワークスペース |
は不要 |
| Azure Storage アカウント |
Storage Blob Data Contributor |
| Event Hubs |
Azure Event Hubs Data Sender |
ロールの割り当ての詳細については、「 マネージド ID への Azure ロールの割り当て」を参照してください。
CLI を使用してマネージド ID にロールを割り当てるには、az role assignment create を使用します。 詳細については、「 ロールの割り当て - 作成」を参照してください。
DCR のマネージド ID に適切なロールを割り当てます。 次の例では、ストレージ アカウントの DCR のマネージド ID に Storage Blob Data Contributor ロールを割り当てています。
次のAzure CLI例では、az ロールの割り当ての作成 コマンドを使用します。
subscriptionId="aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
resourceGroupName="myResourceGroup"
storageAccountName="myStorageAccount"
principalId="eeeeeeee-ffff-aaaa-5555-666666666666"
roleDefinitionName="Storage Blob Data Contributor"
scope="/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.Storage/storageAccounts/$storageAccountName"
az account set --subscription "$subscriptionId"
az role assignment create \
--assignee "$principalId" \
--role "$roleDefinitionName" \
--scope "$scope"
データ コレクション ルールの関連付けを作成する
データ コレクション ルールを作成後、データ コレクション ルールの関連付け (DCRA) を作成して、監視対象のリソースとルールを関連付けます。 詳細については、「 データ収集ルールの関連付け - 作成」を参照してください。
次の例では、az monitor data-collection rule association コマンド グループを使用して、データ収集規則とKey Vaultの関連付けをcreateします。
subscriptionId="aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
resourceGroupName="myResourceGroup"
associationName="myAssociation"
dataCollectionRuleName="myDataCollectionRule"
keyVaultName="myKeyVault"
dataCollectionRuleId="/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.Insights/dataCollectionRules/$dataCollectionRuleName"
resourceUri="/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.KeyVault/vaults/$keyVaultName"
az account set --subscription "$subscriptionId"
az monitor data-collection rule association create \
--name "$associationName" \
--rule-id "$dataCollectionRuleId" \
--resource "$resourceUri"
PowerShell を使用してデータ収集規則を作成する
コレクション ルールの仕様を含む JSON ファイルを作成します。 詳細については、 メトリックのエクスポートに関するデータ収集規則 (DCR) の構造を参照してください。 サンプル JSON ファイルについては、「 サンプル メトリックのエクスポート JSON オブジェクト」を参照してください。
次の PowerShell の例では、 New-AzDataCollectionRule コマンドレットを 使用します。
$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
$resourceGroupName = "myResourceGroup"
$dataCollectionRuleName = "myDataCollectionRule"
$jsonFilePath = ".\dcr-storage-account.json"
Set-AzContext -Subscription $subscriptionId
$dataCollectionRuleParams = @{
Name = $dataCollectionRuleName
ResourceGroupName = $resourceGroupName
JsonFilePath = $jsonFilePath
}
New-AzDataCollectionRule @dataCollectionRuleParams
次の出力から DCR の id と IdentityPrincipalId をコピーして、DCR とリソース間の関連付けを作成するロールの割り当てに使用します。
Output:
Id : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Insights/dataCollectionRules/myDataCollectionRule
IdentityPrincipalId : eeeeeeee-ffff-aaaa-5555-666666666666
IdentityTenantId : aaaabbbb-0000-cccc-1111-dddd2222eeee
IdentityType : systemAssigned
IdentityUserAssignedIdentity : {
}
マネージド ID に書き込みアクセス許可を付与する
宛先が、ストレージ アカウントまたは Event Hub の場合、DCR が使用するマネージド ID には、宛先への書き込みアクセス許可が必要です。
ルールのマネージド ID のアクセス許可を付与するには、エンティティに適切なロールを割り当てます。
次の表に、必要なロールを宛先の種類ごとに示します。
| 変換先の型 |
役割 |
| Log Analytics ワークスペース |
は不要 |
| Azure Storage アカウント |
Storage Blob Data Contributor |
| Event Hubs |
Azure Event Hubs Data Sender |
詳細については、「 マネージド ID に Azure ロールを割り当てる」を参照してください。
New-AzRoleAssignment を使用して DCR のマネージド ID に適切なロールを割り当てます。 次の例では、サブスクリプション レベルで DCR のマネージド ID に Azure Event Hubs Data Sender ロールを割り当てています。
次の PowerShell の例では、 New-AzRoleAssignment コマンドレットを 使用します。
$objectId = "eeeeeeee-ffff-aaaa-5555-666666666666"
$roleDefinitionName = "Azure Event Hubs Data Sender"
$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
$scope = "/subscriptions/$subscriptionId"
Set-AzContext -Subscription $subscriptionId
$roleAssignmentParams = @{
ObjectId = $objectId
RoleDefinitionName = $roleDefinitionName
Scope = $scope
}
New-AzRoleAssignment @roleAssignmentParams
データ コレクション ルールの関連付けを作成する
データ コレクション ルールを作成後、データ コレクション ルールの関連付け (DCRA) を作成して、監視対象のリソースとルールを関連付けます。
New-AzDataCollectionRuleAssociation を使用して、データ コレクション ルールとリソース間の関連付けを作成します。 詳細については、「 New-AzDataCollectionRuleAssociation」を参照してください。
次の PowerShell の例では、New-AzDataCollectionRuleAssociation コマンドレットを使用して、データ収集規則とKey Vaultの関連付けを作成します。
$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
$resourceGroupName = "myResourceGroup"
$associationName = "myDataCollectionRuleAssociation"
$keyVaultName = "myKeyVault"
$dataCollectionRuleName = "myDataCollectionRule"
$resourceUri = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.KeyVault/vaults/$keyVaultName"
$dataCollectionRuleId = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.Insights/dataCollectionRules/$dataCollectionRuleName"
Set-AzContext -Subscription $subscriptionId
$dataCollectionRuleAssociationParams = @{
AssociationName = $associationName
ResourceUri = $resourceUri
DataCollectionRuleId = $dataCollectionRuleId
}
New-AzDataCollectionRuleAssociation @dataCollectionRuleAssociationParams
メトリック用のデータ コレクション ルールを作成するには、次の手順を実行します。
- データ コレクション ルールを作成します。
- ルールのマネージド ID に、宛先への書き込み権限を付与します。
- データ コレクション ルールの関連付けを作成します。
データ収集ルールを作成する
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={apiVersion}
Authorization: Bearer {accessToken}
Content-Type: application/json
ペイロードは、データ コレクションを定義する JSON オブジェクトです。 ペイロードは、要求の本文で送信されます。 JSON 構造の詳細については、 メトリックのエクスポートに関するデータ収集規則 (DCR) 構造を参照してください。 DCR JSON オブジェクトのサンプルについては、「 サンプル メトリックのエクスポート JSON オブジェクト」を参照してください。
マネージド ID に書き込みアクセス許可を付与する
宛先が、ストレージ アカウントまたは Event Hub の場合、DCR が使用するマネージド ID には、宛先への書き込みアクセス許可が必要です。 ルールのマネージド ID のアクセス許可を付与するには、エンティティに適切なロールを割り当てます。
次の表に、必要なロールを宛先の種類ごとに示します。
| 変換先の型 |
役割 |
| Log Analytics ワークスペース |
は不要 |
| Azure Storage アカウント |
Storage Blob Data Contributor |
| Event Hubs |
Azure Event Hubs Data Sender |
詳細については、「 マネージド ID に Azure ロールを割り当てる」を参照してください。
REST を使用してマネージド ID にロールを割り当てるには、「 ロールの割り当て - 作成」を参照してください。
データ コレクション ルールの関連付けを作成する
データ コレクション ルールを作成後、データ コレクション ルールの関連付け (DCRA) を作成して、監視対象のリソースとルールを関連付けます。 詳細については、「データ収集ルールの関連付け - 作成」を参照してください。
REST API を使用して DCRA を作成するには、次のエンドポイントとペイロードを使用します。
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}/providers/Microsoft.Insights/dataCollectionRuleAssociations/{associationName}?api-version={apiVersion}
Authorization: Bearer {accessToken}
Content-Type: application/json
{
"properties": {
"description": "Association of platform telemetry DCR with VM myVirtualMachine",
"dataCollectionRuleId": "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Insights/dataCollectionRules/<dataCollectionRuleName>"
}
}
Bicep テンプレートを使用してデータ収集ルールを作成する
次のテンプレートを使用して DCR を作成します。 詳細については、「 Microsoft.Insights dataCollectionRules」を参照してください。
@description('Specifies the name of the Data Collection Rule to create.')
param dataCollectionRuleName string
@description('Specifies the Log Analytics workspace.')
param workspaceId string
@description('Specifies the location in which to create the Data Collection Rule.')
param location string
resource dataCollectionRule 'Microsoft.Insights/dataCollectionRules@2024-03-11' = {
name: dataCollectionRuleName
kind: 'PlatformTelemetry'
identity: {
type: 'UserAssigned' | 'SystemAssigned'
userAssignedIdentities: {
type: 'string'
}
}
location: location
properties: {
dataSources: {
platformTelemetry: [
{
streams: [
'<resourceType>:<metricName> | Metrics-Group-All'
]
name: 'myPlatformTelemetryDataSource'
}
]
}
destinations: {
logAnalytics: [
{
workspaceResourceId: workspaceId
name: 'myDestination'
}
]
}
dataFlows: [
{
streams: [
'<resourceType>:<metricName> | Metrics-Group-All'
]
destinations: [
'myDestination'
]
}
]
}
}
パラメーター ファイル
using './<template-name>.bicep'
param dataCollectionRuleName = 'myDataCollectionRule'
param workspaceId = '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/microsoft.operationalinsights/workspaces/myWorkspace'
param location = 'eastus'
DCR テンプレートのサンプル
@description('Specifies the name of the Data Collection Rule to create.')
param dataCollectionRuleName string
@description('Specifies the Log Analytics workspace.')
param workspaceId string
@description('Specifies the location in which to create the Data Collection Rule.')
param location string
resource dataCollectionRule 'Microsoft.Insights/dataCollectionRules@2024-03-11' = {
name: dataCollectionRuleName
location: 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: 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'
]
}
]
}
}
ARM テンプレートを使用してデータ収集規則を作成する
次のテンプレートを使用して 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."
}
},
"workspaceId": {
"type": "string",
"metadata": {
"description": "Specifies the Log Analytics workspace."
}
},
"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": "2024-03-11",
"properties": {
"dataSources": {
"platformTelemetry": [
{
"streams": [
"<resourceType>:<metricName> | Metrics-Group-All"
],
"name": "myPlatformTelemetryDataSource"
}
]
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "[parameters('workspaceId')]",
"name": "myDestination"
}
]
},
"dataFlows": [
{
"streams": [
"<resourceType>:<metricName> | 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": "myDataCollectionRule"
},
"workspaceId": {
"value": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/microsoft.operationalinsights/workspaces/myWorkspace"
},
"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": "2024-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 を作成した後、最初のプラットフォーム メトリック データが Log Analytics ワークスペースに表示されるまで最大 30 分かかります。 データのフローが開始されると、リソースの種類に応じて、Log Analytics ワークスペース、ストレージ アカウント、または Event Hubs に流れるプラットフォーム メトリック時系列の待機時間は約 3 分になります。
DCR をインストールした後、変更が有効になり、更新された DCR でデータが収集されるまで、数分かかる場合があります。 収集されているデータが表示されない場合は、トラブルシューティングに役立つメトリックとログを含む DCR 監視 機能を使用します。