다음을 통해 공유


Azure Monitor에서 DCR(데이터 수집 규칙) 만들기

Azure Monitor에서 DCR(데이터 수집 규칙)을 만드는 방법에는 여러 가지가 있습니다. 경우에 따라 Azure Monitor는 Azure Portal에서 구성하는 설정에 따라 DCR을 만들고 관리합니다. 이러한 경우 중 일부에서 DCR로 작업하고 있다는 사실을 깨닫지 못할 수도 있습니다. 하지만 다른 시나리오의 경우 JSON에서 정의로 직접 작업하여 사용자 고유의 DCR을 만들거나 기존 DCR을 편집해야 할 수 있습니다. 이 문서에서는 DCR을 만들기 위한 다양한 방법 및 편집 및 문제 해결에 대한 권장 사항을 설명합니다.

참고 항목

이 문서에서는 DCR 자체를 만들고 편집하는 방법을 설명합니다. 데이터 수집 규칙 연결을 만들고 편집하려면 데이터 수집 규칙 연결 만들기 및 관리를 참조 하세요.

사용 권한

DCR 및 DCR 연결을 만들려면 다음 권한이 필요합니다.

기본 제공 역할 범위 원인
Monitoring Contributor
  • 구독 및/또는
  • 리소스 그룹 및/또는
  • 기존 DCR
DCR을 만들기 또는 편집하고, 컴퓨터에 규칙을 할당하고, 연결을 배포합니다.
가상 머신 참가자
Azure Connected Machine 리소스 관리자
  • 가상 머신, 가상 머신 확장 집합
  • Azure Arc 지원 서버
VM(가상 머신)에 에이전트 확장을 배포합니다.
Microsoft.Resources/deployments/* 작업을 포함하는 모든 역할
  • 구독 및/또는
  • 리소스 그룹 및/또는
  • 기존 DCR
Azure Resource Manager 템플릿을 배포합니다.

Important

대상 Log Analytics 작업 영역 또는 Azure Monitor 작업 영역과 동일한 지역에 DCR을 만듭니다. DCR을 테넌트에 있는 모든 구독 또는 리소스 그룹의 컴퓨터 또는 컨테이너에 연결할 수 있습니다. 테넌트 간에 데이터를 보내려면 먼저 Azure Lighthouse를 사용하도록 설정해야 합니다.

Azure Portal을 사용하여 DCR 만들기 또는 편집

Azure Portal은 특정 시나리오에 대한 DCR을 만들기 위한 간소화된 환경을 제공합니다. 이 메서드를 사용하면 수행할 수 있는 구성이 제한될 수 있지만 DCR의 구조를 이해할 필요가 없으며 나중에 DCR 정의를 편집하여 변환과 같은 고급 기능을 구현해야 할 수도 있습니다. 환경은 각 시나리오에 따라 달라지므로 다음 표에 설명된 대로 작업 중인 특정 시나리오에 대한 설명서를 참조하세요.

시나리오 설명
VM 인사이트 사용 VM에서 VM Insights를 사용하도록 설정하면 Azure Monitor 에이전트가 설치되고 DCR이 만들어지고 가상 머신과 연결됩니다. 이 DCR은 미리 정의된 성능 카운터 집합을 수집하므로 수정해서는 안 됩니다. VM 인사이트 사용을 참조 하세요.
VM에서 클라이언트 데이터 수집 안내 인터페이스를 사용하여 Azure Portal에서 DCR을 만들어 VM의 클라이언트 운영 체제에서 다른 데이터 원본을 선택합니다. 예를 들어 Windows 이벤트, Syslog 이벤트 및 텍스트 로그가 있습니다. 필요한 경우 Azure Monitor 에이전트가 자동으로 설치되고 DCR과 선택한 각 VM 간에 연결이 만들어집니다. Azure Monitor 에이전트를 사용하여 데이터 수집을 참조하세요.
메트릭 내보내기 Azure Portal에서 안내 인터페이스를 사용하여 수집할 다양한 리소스 유형의 메트릭을 선택하는 DCR을 만듭니다. DCR과 선택한 각 리소스 간에 연결이 만들어집니다. 메트릭 내보내기의 경우 DCR(데이터 수집 규칙) 만들기를 참조하세요.
테이블 만들기 Azure Portal을 사용하여 Log Analytics 작업 영역에서 새 테이블을 만들 때 Azure Monitor에서 로그 수집 API와 함께 사용할 수 있는 변환을 포함하여 DCR을 만드는 데 사용하는 샘플 데이터를 업로드합니다. Azure Portal에서는 이 DCR을 수정할 수 없지만 이 문서에 설명된 방법을 사용하여 수정할 수 있습니다. 사용자 지정 테이블 만들기를 참조하세요.
Kubernetes 모니터링 Kubernetes 클러스터를 모니터링하려면 로그에 Container Insights를 사용하도록 설정하고 메트릭에 대해 Prometheus를 사용하도록 설정합니다. 각각에 대한 DCR이 만들어지고 클러스터에 있는 Azure Monitor 에이전트의 컨테이너화된 버전과 연결됩니다. 변환을 추가하려면 Container Insights DCR을 수정해야 할 수 있습니다. Container Insights에서 Kubernetes 클러스터 및 데이터 변환에 대한 모니터링 사용을 참조하세요.
작업 영역 변환 DCR 작업 영역 변환 DCR은 아직 DCR을 사용하지 않는 데이터 수집 시나리오에 대한 변환을 제공합니다. Azure Portal을 사용하여 특정 테이블에 대한 변환을 만들어 이 DCR을 만들 수 있습니다. 작업 영역 만들기 변환 DCR을 참조하세요.

DCR 정의

생성 방법에 관계없이 각 DCR에는 표준 JSON 스키마를 따르는 정의가 있습니다. Azure Portal 이외의 메서드를 사용하여 DCR을 만들거나 편집하려면 해당 JSON 정의를 사용하여 직접 작업해야 합니다. 일부 시나리오에서는 Azure Portal에서 필요에 따라 DCR을 구성하는 방법을 제공하지 않으므로 JSON 정의를 사용해야 합니다.

개요 메뉴에서 JSON 보기를 클릭하여 Azure Portal에서 DCR에 대한 JSON을 볼 수 있습니다.

Azure Portal에서 DCR에 대한 JSON을 보는 옵션을 보여 주는 스크린샷

API 버전 드롭다운에서 최신 버전의 API선택되어 있는지 확인합니다. 그렇지 않은 경우 일부 JSON이 표시되지 않을 수 있습니다.

Azure Portal에서 DCR에 대한 JSON을 보여 주는 스크린샷

DCR REST API를 호출하여 DCR에 대한 JSON을 검색할 수도 있습니다. 예를 들어 다음 PowerShell 스크립트는 DCR에 대한 JSON을 검색하여 파일에 저장합니다.

$ResourceId = "<ResourceId>" # Resource ID of the DCR to edit
$FilePath = "<FilePath>" # File to store DCR content
$DCR = Invoke-AzRestMethod -Path ("$ResourceId"+"?api-version=2023-03-11") -Method GET
$DCR.Content | ConvertFrom-Json | ConvertTo-Json -Depth 20 | Out-File -FilePath $FilePath

참고 항목

PowerShell의 cmdlet 또는 az monitor data-collection rule show Azure CLI의 명령을 사용하여 Get-AzDataCollectionRule DCR에 대한 세부 정보를 가져올 수 있지만 편집에 필요한 형식으로 JSON을 제공하지는 않습니다. 대신 PowerShell 또는 CLI를 사용하여 예제와 같이 REST API를 호출합니다.

JSON을 사용하여 DCR 만들기 또는 편집

기존 DCR을 편집하는 것 외에도 몇 가지 일반적인 시나리오에 JSON을 제공하는 샘플 DCR 중 하나를 사용하여 새 DCR 을 만들 수 있습니다. 특정 환경 및 요구 사항에 맞게 JSON 파일을 수정하려면 Azure Monitor의 데이터 수집 규칙 구조의 정보를 사용합니다.

DCR의 정의가 있으면 Azure Portal, CLI, PowerShell, API 또는 ARM 템플릿을 사용하여 Azure Monitor에 배포할 수 있습니다.

CLI를 사용하여 DCR 만들기 또는 편집

az monitor data-collection rule create 명령을 사용하여 JSON 파일에서 DCR을 만듭니다. 이 동일한 명령을 사용하여 기존 DCR을 업데이트할 수 있습니다.

az monitor data-collection rule create --location 'eastus' --resource-group 'my-resource-group' --name 'my-dcr' --rule-file 'C:\MyNewDCR.json' --description 'This is my new DCR'

참고 항목

PowerShell 또는 CLI 명령을 사용하여 DCR을 만들고 편집하도록 선택할 수 있지만 컴파일 오류가 있는 경우 API 및 ARM 메서드는 더 자세한 오류 메시지를 제공합니다.

다음 예제에서 DCR은 대상 Log Analytics 작업 영역에 없는 테이블 이름을 지정합니다. PowerShell 명령은 일반 오류 메시지를 반환하지만 API 호출은 정확한 오류를 지정하는 자세한 오류 메시지를 반환합니다.

PowerShell 명령을 사용할 때 DCR에 대한 오류 메시지를 보여 주는 스크린샷

API를 사용할 때 DCR에 대한 오류 메시지를 보여 주는 스크린샷

DCR을 편집하고 테스트하기 위한 전략

JSON 정의를 사용하여 DCR을 만들거나 편집할 때 원하는 기능을 얻기 위해 여러 업데이트를 수행해야 하는 경우가 많습니다. DCR을 업데이트하고, 예상한 결과를 얻지 못하면 문제를 해결한 다음, 추가 업데이트를 수행할 수 있는 효율적인 방법이 필요합니다. 쿼리가 예상대로 작동하는지 확인해야 하므로 DCR에 변환을 추가하는 경우 특히 그렇습니다. Azure Portal에서 직접 JSON을 편집할 수 없으므로 사용할 수 있는 몇 가지 전략은 다음과 같습니다.

로컬 파일을 DCR의 원본으로 사용

로컬 JSON 파일을 만들고 편집하는 DCR의 원본으로 사용하는 경우 항상 최신 버전의 DCR 정의에 액세스할 수 있습니다. GitHub 또는 Azure DevOps와 같은 버전 제어 도구를 사용하여 변경 내용을 관리하려는 경우에 이상적입니다. VS Code와 같은 편집기를 사용하여 DCR을 변경한 다음 명령줄 도구를 사용하여 위에서 설명한 대로 Azure Monitor에서 DCR을 업데이트할 수도 있습니다.

다음은 원본 파일에서 DCR에 변경 내용을 푸시하는 데 사용할 수 있는 샘플 PowerShell 스크립트입니다. 이렇게 하면 원본 파일이 Azure Monitor로 보내기 전에 유효한 JSON인지 확인합니다.

param (
    [Parameter(Mandatory = $true)][string]$ResourceId,  # Resource ID of the DCR
    [Parameter(Mandatory = $true)][string]$FilePath  # Path to the DCR JSON file to upload
)

# Read the DCR content from the file
Write-Host "Reading new DCR content from: $FilePath" -ForegroundColor Green
$DCRContent = Get-Content $FilePath -Raw

# Ensure the DCR content is valid JSON
try {
    $ParsedDCRContent = $DCRContent | ConvertFrom-Json
} catch {
    Write-Host "Invalid JSON content in file: $FilePath" -ForegroundColor Red
    exit 1
}

# Create or update the DCR in the specified resource group
Write-Host "Deploying DCR $ResourceId ..." -ForegroundColor Green
Invoke-AzRestMethod -Path ("$ResourceId"+"?api-version=2023-03-11") -Method PUT -Payload $DCRContent		

임시 파일에 DCR 콘텐츠 저장

로컬 파일에 DCR 정의가 없는 경우 Azure Monitor에서 정의를 검색하여 임시 파일에 저장할 수 있습니다. 그런 다음, 업데이트를 Azure Monitor에 푸시하기 전에 VS Code와 같은 편집기를 사용하여 파일을 편집할 수 있습니다.

다음은 Azure Monitor에서 기존 DCR을 편집하는 데 사용할 수 있는 샘플 PowerShell 스크립트입니다. 스크립트는 DCR 정의를 검색하고 VS Code를 시작하기 전에 임시 파일에 저장합니다. 변경 내용을 저장했음을 스크립트에 표시하면 DCR이 새 콘텐츠로 업데이트되고 임시 파일이 삭제됩니다.

param ([Parameter(Mandatory=$true)] $ResourceId)

# Get DCR content and save it to a local file
$FilePath = "temp.dcr"
$DCR = Invoke-AzRestMethod -Path ("$ResourceId"+"?api-version=2023-03-11") -Method GET
$DCR.Content | ConvertFrom-Json | ConvertTo-Json -Depth 20 | Out-File $FilePath

# Open DCR in code editor
code $FilePath | Wait-Process

{ 
	#write DCR content back from the file
	$DCRContent = Get-Content $FilePath -Raw
	Invoke-AzRestMethod -Path ("$ResourceId"+"?api-version=2023-03-11") -Method PUT -Payload $DCRContent		
}

#Delete temporary file
Remove-Item $FilePath

ARM 템플릿을 사용하여 DCR을 현재 위치에서 편집

Azure Portal에서 편집을 완전히 수행하려면 템플릿 내보내기 기능을 사용하여 DCR에 대한 ARM 템플릿을 검색할 수 있습니다. 그런 다음 JSON에서 정의를 수정하고 Azure Portal에서 다시 배포할 수 있습니다.

  1. Azure Portal에서 수정할 DCR을 선택하고 템플릿 내보내기를 선택합니다. 그런 다음 배포를 클릭하여 동일한 템플릿을 다시 배포합니다.

    Azure Portal에서 데이터 수집 규칙에 대한 템플릿 내보내기 옵션을 보여 주는 스크린샷

  2. 템플릿 편집을 클릭하여 DCR에 대한 편집 가능한 버전의 JSON을 엽니다. 매개 변수 값을 변경하지 마세요.

    Azure Portal에서 데이터 수집 규칙에 대한 템플릿 편집 옵션을 보여 주는 스크린샷.

  3. DCR에 필요한 내용을 변경한 다음 저장을 클릭합니다.

    Azure Portal에서 데이터 수집 규칙에 대한 편집 가능한 JSON을 보여 주는 스크린샷

  4. 새 DCR을 만들려면 이름 매개 변수를 변경합니다. 그렇지 않으면 매개 변수를 변경하지 않고 그대로 둡니다. 검토 + 만들기를 클릭하여 수정된 템플릿을 배포하고 만들기를 클릭하여 새 DCR을 만듭니다.

    Azure Portal에서 데이터 수집 규칙에 대한 검토 + 만들기 옵션을 보여 주는 스크린샷.

  5. DCR이 오류 없이 유효하면 배포가 성공하고 DCR이 새 구성으로 업데이트됩니다. 리소스로 이동을 클릭하여 수정된 DCR을 엽니다.

    Azure Portal에서 데이터 수집 규칙에 대한 성공적인 배포를 보여 주는 스크린샷

  6. DCR에 컴파일 오류가 있는 경우 배포에 실패했다는 메시지가 표시됩니다. 오류 세부 정보작업 세부 정보를 클릭하여 오류 세부 정보를 봅니다. 다시 배포를 클릭한 다음 템플릿 편집을 다시 클릭하여 DCR에 필요한 변경 내용을 적용한 다음 다시 저장하고 배포합니다.

    Azure Portal에서 데이터 수집 규칙에 대한 실패한 배포를 보여 주는 스크린샷

데이터 수집 확인 및 문제 해결

DCR을 설치한 후에는 변경 내용이 적용되고 업데이트된 DCR을 사용하여 데이터를 수집하는 데 몇 분 정도 걸릴 수 있습니다. 수집되는 데이터가 표시되지 않으면 문제의 근본 원인을 확인하기 어려울 수 있습니다. 메트릭 및 로그를 포함하는 DCR 모니터링 기능을 사용하여 문제를 해결합니다.

DCR 메트릭 은 모든 DCR에 대해 자동으로 수집되며 다른 Azure 리소스에 대한 플랫폼 메트릭과 같은 메트릭 탐색기를 사용하여 분석할 수 있습니다. 데이터 처리에 성공하지 못한 경우 DCR 오류 로그를 사용하여 자세한 오류 정보를 가져올 수 있습니다.

수집되는 데이터가 표시되지 않는 경우 다음 기본 단계에 따라 문제를 해결합니다.

  1. 데이터가 Azure Monitor에 도달하는지 확인하려면 Logs Ingestion Bytes per MinLogs Rows Received per Min과 같은 메트릭을 확인합니다. 그렇지 않은 경우 데이터 원본을 확인하여 예상대로 데이터가 전송되고 있는지 확인합니다.
  2. 삭제되는 행이 있는지 확인하려면 Logs Rows Dropped per Min을 확인합니다. 변환에 의해 행이 삭제될 수 있으므로 이는 오류를 나타내지 않을 수 있습니다. 삭제된 행이 Logs Rows Dropped per Min과 동일하면 작업 영역에서 데이터가 수집되지 않습니다. 변환 오류가 있는지 확인하려면 Logs Transformation Errors per Min을 검사합니다.
  3. 수신 데이터에 적용된 변환에 오류가 있는지 확인하려면 Logs Transformation Errors per Min을 확인합니다. 이는 데이터 구조 또는 변환 자체의 변경으로 인해 발생할 수 있습니다.
  4. DCRLogErrors 기록되었을 수 있는 수집 오류가 있는지 테이블을 확인합니다. 이를 통해 문제의 근본 원인을 식별하는 데 추가 세부 정보를 제공할 수 있습니다.

다음 단계