Azure Monitor의 DCR(데이터 수집 규칙) 구조
이 문서에서는 해당 정의로 직접 작업해야 하는 경우 DCR의 JSON 구조에 대해 설명합니다.
- 여기에 설명된 JSON을 사용하는 자세한 내용은 Azure Monitor에서 DCR(데이터 수집 규칙) 만들기 및 편집을 참조하세요.
- 다양한 시나리오에 대한 샘플 DCR은 Azure Monitor의 샘플 DCR(데이터 수집 규칙)을 참조하세요.
속성
다음 표에서는 DCR의 최상위 수준에 있는 속성에 대해 설명합니다.
속성 | 설명 |
---|---|
description |
사용자가 정의한 데이터 수집 규칙에 대한 선택적 설명입니다. |
dataCollectionEndpointId |
DCR을 만들 때 제공한 경우 DCR에서 사용하는 DCE(데이터 컬렉션 엔드포인트) 의 리소스 ID입니다. 이 속성은 DCE를 사용하지 않는 DCR에 없습니다. |
endpoints 1 |
DCR에 logsIngestion 대한 엔드포인트의 URL과 metricsIngestion URL을 포함합니다. 이 섹션과 해당 속성은 DCR의 특성이 있는 경우에만 DCRDirect 을 kind 만들 때 자동으로 만들어집니다. |
immutableId |
데이터 수집 규칙에 대한 고유 식별자입니다. 이 속성 및 해당 값은 DCR을 만들 때 자동으로 만들어집니다. |
kind |
DCR이 사용되는 데이터 수집 시나리오를 지정합니다. 이 매개 변수는 아래에 자세히 설명되어 있습니다. |
1이 속성은 2024년 3월 31일 이전에 만든 DCR용으로 만들어지지 않았습니다. 이 날짜 이전에 만든 DCR에는 DCE(데이터 수집 엔드포인트) 및 dataCollectionEndpointId
지정된 속성이 있어야 합니다. 이러한 포함된 DCE를 사용하려면 새 DCR을 만들어야 합니다.
종류
DCR의 속성은 kind
DCR이 사용되는 컬렉션의 형식을 지정합니다. DCR의 각 종류에는 다른 구조와 속성이 있습니다.
다음 표에서는 다양한 종류의 DCR 및 해당 세부 정보를 나열합니다.
종류 | 설명 |
---|---|
Direct |
로그 수집 API를 사용하여 직접 수집 이러한 종류의 값을 사용하는 경우에만 DCR에 대한 엔드포인트가 만들어집니다. |
AgentDirectToStore |
수집된 데이터를 Azure Storage 및 Event Hubs로 보냅니다. |
AgentSettings |
Azure Monitor 에이전트 매개 변수를 구성합니다. |
Linux |
Linux 머신에서 이벤트 및 성능 데이터를 수집합니다. |
PlatformTelemetry |
플랫폼 메트릭을 내보냅니다. |
Windows |
Windows 컴퓨터에서 이벤트 및 성능 데이터를 수집합니다. |
WorkspaceTransforms |
작업 영역 변환 DCR. 이 DCR에는 입력 스트림이 포함되지 않습니다. |
DCR 데이터 흐름 개요
DCR의 기본 흐름은 다음 다이어그램에 나와 있습니다. 각 구성 요소는 다음 섹션에서 설명합니다.
입력 스트림
DCR의 입력 스트림 섹션은 수집되는 들어오는 데이터를 정의합니다. 특정 데이터 수집 시나리오에 따라 두 가지 유형의 들어오는 스트림이 있습니다. 대부분의 데이터 수집 시나리오는 입력 스트림 중 하나를 사용하지만 일부는 둘 다 사용할 수 있습니다.
참고 항목
작업 영역 변환 DCR 에는 입력 스트림이 없습니다.
입력 스트림 | 설명 |
---|---|
dataSources |
알려진 데이터 형식입니다. 이는 종종 Azure Monitor 에이전트에서 처리되고 알려진 데이터 형식을 사용하여 Azure Monitor에 전달되는 데이터입니다. |
streamDeclarations |
DCR에서 정의해야 하는 사용자 지정 데이터입니다. |
로그 수집 API에서 보낸 데이터는 들어오는 데이터의 스키마와 함께 사용됩니다 streamDeclaration
. 이는 API가 스키마를 가질 수 있는 사용자 지정 데이터를 보내기 때문입니다.
AMA의 텍스트 로그는 둘 다 dataSources
필요한 데이터 수집의 예입니다 streamDeclarations
. 데이터 원본에는 구성이 포함됩니다.
데이터 원본
데이터 원본은 각각 고유한 형식과 데이터 노출 방법을 포함하는 모니터링 데이터의 고유한 원본입니다. 각 데이터 원본 형식에는 각 데이터 원본에 대해 구성해야 하는 고유한 매개 변수 집합이 있습니다. 데이터 원본에서 반환되는 데이터는 일반적으로 알려진 형식이므로 DCR에서 스키마를 정의할 필요가 없습니다.
예를 들어 AMA(Azure Monitor 에이전트)를 사용하여 VM에서 수집된 이벤트 및 성능 데이터는 다음과 같은 windowsEventLogs
performanceCounters
데이터 원본을 사용합니다. 수집하려는 이벤트 및 성능 카운터에 대한 조건을 지정하지만 들어오는 잠재적 데이터에 대한 알려진 스키마이므로 데이터 자체의 구조를 정의할 필요가 없습니다.
일반 매개 변수
모든 데이터 원본 형식은 다음과 같은 공통 매개 변수를 공유합니다.
매개 변수 | 설명 |
---|---|
name |
DCR에서 데이터 원본을 식별하는 이름입니다. |
streams |
데이터 원본이 수집할 스트림 목록입니다. Windows 이벤트와 같은 표준 데이터 형식인 경우 스트림은 형식 Microsoft-<TableName> 이 됩니다. 사용자 지정 형식인 경우 양식에 있습니다. Custom-<TableName> |
유효한 데이터 원본 형식
현재 사용할 수 있는 데이터 원본 형식은 다음 표에 나와 있습니다.
데이터 원본 유형 | 설명 | 스트림 | 매개 변수 |
---|---|---|---|
eventHub |
Azure Event Hubs의 데이터입니다. | 사용자 지정1 | consumerGroup - 수집할 이벤트 허브의 소비자 그룹입니다. |
iisLogs |
Windows 컴퓨터의 IIS 로그 | Microsoft-W3CIISLog |
logDirectories - IIS 로그가 클라이언트에 저장되는 디렉터리입니다. |
logFiles |
가상 머신의 텍스트 또는 json 로그 | 사용자 지정1 | filePatterns - 클라이언트에서 수집할 로그 파일의 폴더 및 파일 패턴입니다.format - json 또는 text |
performanceCounters |
Windows 및 Linux 가상 머신 모두에 대한 성능 카운터 | Microsoft-Perf Microsoft-InsightsMetrics |
samplingFrequencyInSeconds - 성능 데이터를 샘플링해야 하는 빈도입니다.counterSpecifiers - 수집해야 하는 개체 및 카운터입니다. |
prometheusForwarder |
Kubernetes 클러스터에서 수집된 Prometheus 데이터입니다. | Microsoft-PrometheusMetrics |
streams - 수집할 스트림labelIncludeFilter - 이름-값 쌍으로 레이블 포함 필터의 목록입니다. 현재는 'microsoft_metrics_include_label'만 지원됩니다. |
syslog |
Linux 가상 머신의 Syslog 이벤트 보안 어플라이언스의 공통 이벤트 형식 이벤트 |
Microsoft-Syslog Microsoft-CommonSecurityLog CEF의 경우 |
facilityNames - 수집할 시설logLevels - 수집할 로그 수준 |
windowsEventLogs |
가상 머신의 Windows 이벤트 로그 | Microsoft-Event |
xPathQueries - 수집해야 하는 이벤트에 대한 조건을 지정하는 XPath입니다. |
extension |
Azure Monitor 에이전트에서 사용하는 확장 기반 데이터 원본입니다. | 확장에 따라 다름 | extensionName - 확장명extensionSettings - 확장에 필요한 각 설정의 값 |
1 이러한 데이터 원본은 수집하는 데이터의 스키마가 다를 수 있으므로 데이터 원본과 스트림 선언을 모두 사용합니다. 데이터 원본에 사용되는 스트림은 스트림 선언에 정의된 사용자 지정 스트림이어야 합니다.
스트림 선언
Log Analytics 작업 영역으로 전송되는 다양한 유형의 데이터를 선언합니다. 각 스트림은 키가 Custom-으로 시작해야 하는 스트림 이름을 나타내는 개체입니다. 스트림에는 전송될 JSON 데이터에 포함된 최상위 속성의 전체 목록이 포함되어 있습니다. 엔드포인트로 보내는 데이터의 모양은 대상 테이블의 모양과 일치할 필요가 없습니다. 대신 입력 데이터 위에 적용되는 변환의 출력이 대상 모양과 일치해야 합니다.
데이터 유형
속성에 할당할 수 있는 가능한 데이터 형식은 다음과 같습니다.
string
int
long
real
boolean
dynamic
datetime
.
도착지
이 섹션에는 destinations
데이터가 전송될 각 대상에 대한 항목이 포함되어 있습니다. 이러한 대상은 섹션의 입력 스트림과 일치합니다 dataFlows
.
일반 매개 변수
매개 변수 | 설명 |
---|---|
name |
섹션에서 대상을 식별하는 이름입니다 dataSources . |
유효한 대상
현재 사용 가능한 대상은 다음 표에 나와 있습니다.
대상 | 설명 | 필수 매개 변수 |
---|---|---|
logAnalytics |
Log Analytics 작업 영역 | workspaceResourceId - 작업 영역의 리소스 ID입니다.workspaceID - 작업 영역의 ID데이터가 전송되는 테이블이 아닌 작업 영역만 지정합니다. 알려진 대상인 경우 테이블을 지정할 필요가 없습니다. 사용자 지정 테이블의 경우 테이블이 데이터 원본에 지정됩니다. |
azureMonitorMetrics |
Azure Monitor 메트릭 | 구독에 대한 단일 메트릭 저장소만 있으므로 구성이 필요하지 않습니다. |
storageTablesDirect |
Azure Table Storage | storageAccountResourceId - 스토리지 계정의 리소스 IDtableName - 테이블의 이름 |
storageBlobsDirect |
Azure Blob 스토리지 | storageAccountResourceId - 스토리지 계정의 리소스 IDcontainerName - Blob 컨테이너의 이름 |
eventHubsDirect |
Event Hubs | eventHubsDirect - 이벤트 허브의 리소스 ID입니다. |
Important
하나의 스트림은 DCR에서 하나의 Log Analytics 작업 영역으로만 보낼 수 있습니다. 동일한 작업 영역에서 서로 다른 테이블을 사용하는 경우 단일 스트림에 대해 여러 dataFlow
항목을 가질 수 있습니다. 단일 스트림에서 여러 Log Analytics 작업 영역으로 데이터를 보내야 하는 경우 각 작업 영역에 대해 별도의 DCR을 만듭니다.
데이터 흐름
데이터 흐름은 입력 스트림을 대상과 일치합니다. 각 데이터 원본은 필요에 따라 변환을 지정할 수 있으며 경우에 따라 Log Analytics 작업 영역에서 특정 테이블을 지정합니다.
데이터 흐름 속성
섹션 | 설명 |
---|---|
streams |
입력 스트림 섹션에 정의된 하나 이상의 스트림입니다. 여러 데이터 원본을 동일한 대상으로 보내려는 경우 단일 데이터 흐름에 여러 스트림을 포함할 수 있습니다. 데이터 흐름에 변환이 포함된 경우에는 단일 스트림만 사용합니다. 특정 데이터 원본을 동일한 Log Analytics 작업 영역의 여러 테이블에 보내려는 경우 여러 데이터 흐름에서 하나의 스트림을 사용할 수도 있습니다. |
destinations |
위의 destinations 섹션에 있는 하나 이상의 대상입니다. 멀티 호밍 시나리오에는 여러 대상이 허용됩니다. |
transformKql |
들어오는 스트림에 적용되는 선택적 변환입니다. 변환은 들어오는 데이터의 스키마와 대상 테이블의 스키마에 있는 출력 데이터를 이해해야 합니다. 변환을 사용하는 경우 데이터 흐름은 단일 스트림만 사용해야 합니다. |
outputStream |
데이터가 전송될 destination 속성 아래에 지정된 작업 영역의 테이블을 설명합니다. 값 outputStream 은 데이터가 표준 테이블로 수집되거나 데이터를 사용자 지정 테이블 Custom-[tableName] 로 수집할 때의 형식 Microsoft-[tableName] 을 가집니다. 스트림당 하나의 대상만 허용됩니다.이 속성은 미리 정의된 테이블로 전송되므로 이벤트 및 성능 데이터와 같은 Azure Monitor의 알려진 데이터 원본에 사용되지 않습니다. |