Azure portal を使用してデータ収集ルールを作成する
Azure portal の [監視] メニューで、[ データ収集規則 ] を選択し、[ 作成] を選択します。
新しい DCR 作成エクスペリエンスを使用するには、ページの上部にあるリンクを選択します。
[ データ収集ルールの作成 ] ページで、規則名を入力し、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
--name
--resource-group
--location
--kind PlatformTelemetry
--rule-file
[--identity "{type:'SystemAssigned'}" ]
ストレージ アカウントと Event Hub 宛先の場合は、--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 Hub の場合、DCR が使用するマネージド 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 に適切なロールを割り当てます。
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
次の例では、データ コレクション ルールと Key Vault 間の関連付けを作成します。
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"
PowerShell を使用してデータ収集規則を作成する
コレクション ルールの仕様を含む JSON ファイルを作成します。 詳細については、 メトリックのエクスポートに関するデータ収集規則 (DCR) の構造を参照してください。 サンプル JSON ファイルについては、「 サンプル メトリックのエクスポート JSON オブジェクト」を参照してください。
New-AzDataCollectionRule コマンドを使用して、PowerShell を使用するメトリック向けのデータ コレクション ルールを作成します。 詳細については、「 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 Hub の場合、DCR が使用するマネージド ID には、宛先への書き込みアクセス許可が必要です。
ルールのマネージド エンティティに対してアクセス許可を付与するには、エンティティに適切なロールを割り当てます。
次の表に、必要なロールを宛先の種類ごとに示します。
| 変換先の型 |
役割 |
| Log Analytics ワークスペース |
は不要 |
| Azure Storage アカウント |
Storage Blob Data Contributor |
| Event Hubs |
Azure Event Hubs Data Sender |
詳細については、「 マネージド ID に Azure ロールを割り当てる」を参照してください。 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>
次の例では、データ コレクション ルールと Key Vault 間の関連付けを作成します。
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 Hub の場合、DCR が使用するマネージド ID には、宛先への書き込みアクセス許可が必要です。
ルールのマネージド エンティティに対してアクセス許可を付与するには、エンティティに適切なロールを割り当てます。
次の表に、必要なロールを宛先の種類ごとに示します。
| 変換先の型 |
役割 |
| Log Analytics ワークスペース |
は不要 |
| Azure Storage アカウント |
Storage Blob Data Contributor |
| Event Hubs |
Azure Event Hubs Data Sender |
詳細については、「 マネージド ID に Azure ロールを割り当てる」を参照してください。
REST を使用してマネージド ID にロールを割り当てるには、「 ロールの割り当て - 作成」を参照してください。
データ コレクション ルールの関連付けを作成する
ARM テンプレートを使用してデータ収集規則を作成する
データ コレクション ルールを作成後、データ コレクション ルールの関連付け (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"
}
}
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": "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"
]
}
]
}
}
]
}
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@2023-03-11' = {
name: dataCollectionRuleName
kind: 'PlatformTelemetry'
identity: {
type: 'userassigned' | 'systemAssigned'
userAssignedIdentities: {
type: 'string'
}
}
location: location
properties: {
dataSources: {
platformTelemetry: [
{
streams: [
'<resourcetype>:<metric name> | Metrics-Group-All'
]
name: 'myPlatformTelemetryDataSource'
}
]
}
destinations: {
logAnalytics: [
{
workspaceResourceId: workspaceId
name: 'myDestination'
}
]
}
dataFlows: [
{
streams: [
'<resourcetype>:<metric name> | Metrics-Group-All'
]
destinations: [
'myDestination'
]
}
]
}
}
パラメーター ファイル
using './<template-name>.bicep'
param dataCollectionRuleName = 'metrics-dcr-001'
param workspaceId = '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/azuremonitorworkspaceinsights/providers/microsoft.operationalinsights/workspaces/amw-insight-ws'
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@2023-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'
]
}
]
}
}
DCR を作成した後、最初のプラットフォーム メトリック データが Log Analytics ワークスペースに表示されるまで最大 30 分かかります。 データのフローが始まると、Log Analytics ワークスペース、ストレージ アカウント、または Event Hubs に流れるプラットフォーム メトリックの時系列の待ち時間は、リソースの種類によりますが、約 3 分です。
DCR をインストールした後、変更が有効になり、更新された DCR でデータが収集されるまで、数分かかる場合があります。 収集されているデータが表示されない場合は、トラブルシューティングに役立つメトリックとログを含む DCR 監視 機能を使用します。