이 문서에서는 Azure Portal, Azure CLI, PowerShell, API 또는 ARM 템플릿을 사용하여 메트릭 내보내기용 DCR(데이터 수집 규칙)을 만드는 방법을 설명합니다.
Azure Portal의 모니터 메뉴에서 데이터 수집 규칙을 선택한 다음 만들기를 선택합니다.
플랫폼 메트릭 데이터를 수집하기 위한 DCR을 만들려면 페이지 상단의 링크를 선택합니다.
데이터 수집 규칙 만들기 페이지에서 규칙 이름을 입력하고 DCR에 대한 구독, 리소스 그룹 및 지역을 선택합니다.
스토리지 계정이나 Event Hubs로 메트릭을 보내려면 관리 ID 사용을 선택합니다.
다음을 선택합니다.
리소스 페이지에서 리소스 추가를 선택하여 메트릭을 수집하려는 리소스를 추가합니다.
다음을 선택하여 수집 및 제공 탭으로 이동합니다.
새 데이터 흐름 추가를 선택합니다
이전 단계에서 선택한 리소스의 리소스 종류가 자동으로 선택됩니다. 나중에 이 규칙을 사용하여 여러 리소스 종류에서 메트릭을 수집하려면 더 많은 리소스 종류를 추가합니다.
다음 대상을 선택하여 대상 탭으로 이동합니다.
Log Analytics 작업 영역으로 메트릭을 보내려면 대상 유형 드롭다운에서 Azure Monitor 로그를 선택합니다.
- 메트릭을 전송할 구독과 Log Analytics 작업 영역을 선택합니다.
Event Hubs로 메트릭을 보내려면 대상 유형 드롭다운에서 Event Hubs를 선택합니다.
- 구독, Event Hub 네임스페이스, Event Hub 인스턴스 이름을 선택합니다.
스토리지 계정으로 메트릭을 보내려면 대상 유형 드롭다운에서 스토리지 계정을 선택합니다.
- 메트릭을 저장할 구독, 스토리지 계정, Blob 컨테이너를 선택합니다.
참고 항목
스토리지 계정이나 Event Hubs에 메트릭을 전송하려면 메트릭을 생성하는 리소스, DCR, 스토리지 계정 또는 Event Hubs가 모두 동일한 지역에 있어야 합니다.
Log Analytics 작업 영역으로 메트릭을 보내려면 DCR이 Log Analytics 작업 영역과 동일한 지역에 있어야 합니다. 메트릭을 생성하는 리소스는 어느 지역에나 있을 수 있습니다.
대상으로 스토리지 계정 또는 Event Hubs를 선택하려면 기본 탭에서 DCR에 대한 관리 ID를 사용하도록 설정해야 합니다.
저장을 선택한 다음 검토 + 만들기를 선택합니다.
컬렉션 규칙 사양을 포함하는 JSON 파일을 만듭니다. 자세한 내용은 DCR 사양을 참조하세요. 샘플 JSON 파일은 샘플 메트릭 내보내기 JSON 개체를 참조하세요.
Important
규칙 파일은 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"
},
관리되는 엔터티에 쓰기 권한 부여
DCR에서 사용하는 관리 ID에는 대상이 스토리지 계정이나 Event Hubs인 경우 대상에 대한 쓰기 권한이 있어야 합니다.
규칙의 관리되는 엔터티에 대한 권한을 부여하려면 엔터티에 적절한 역할을 할당합니다.
다음 표는 각 대상 유형에 필요한 역할을 보여 줍니다.
대상 유형 |
역할 |
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"
컬렉션 규칙 사양을 포함하는 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 : {
}
관리되는 엔터티에 쓰기 권한 부여
DCR에서 사용하는 관리 ID에는 대상이 스토리지 계정이나 Event Hubs인 경우 대상에 대한 쓰기 권한이 있어야 합니다.
규칙의 관리되는 엔터티에 대한 권한을 부여하려면 엔터티에 적절한 역할을 할당합니다.
다음 표는 각 대상 유형에 필요한 역할을 보여 줍니다.
대상 유형 |
역할 |
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 개체를 참조하세요.
관리되는 엔터티에 쓰기 권한 부여
DCR에서 사용하는 관리 ID에는 대상이 스토리지 계정이나 Event Hubs인 경우 대상에 대한 쓰기 권한이 있어야 합니다.
규칙의 관리되는 엔터티에 대한 권한을 부여하려면 엔터티에 적절한 역할을 할당합니다.
다음 표는 각 대상 유형에 필요한 역할을 보여 줍니다.
대상 유형 |
역할 |
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/{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 모니터링 기능을 사용하여 문제를 해결합니다.
수집되는 데이터가 표시되지 않는 경우 다음 기본 단계에 따라 문제를 해결합니다.