다음을 통해 공유


HTTP Data Collector API에서 Log Ingestion API로 마이그레이션하여 Azure Monitor 로그로 데이터 보내기

Azure Monitor 로그 수집 API는 레거시 HTTP 데이터 수집기 API보다 더 많은 처리 능력과 보다 유연한 로그 수집 및 테이블 관리 기능을 제공합니다. 이 문서에서는 데이터 수집기 API와 로그 수집 API 간의 차이점을 설명하고 새 로그 수집 API로 마이그레이션하기 위한 지침과 모범 사례를 제공합니다.

참고 항목

Microsoft MVP인 Morten Waltorp Knudsen은 이 문서에 기여하고 자료 피드백을 제공했습니다. 로그 수집 API의 설정 및 지속적인 사용을 자동화하는 방법에 대한 예제는 공개적으로 사용 가능한 Morten의 AzLogDcrIngestPS PowerShell 모듈을 참조하세요.

로그 수집 API의 이점

로그 수집 API는 데이터 수집기 API에 비해 다음과 같은 이점을 제공합니다.

  • 필터링 및 데이터 조작을 포함하여 대상 테이블에 수집되기 전에 데이터를 수정할 수 있는 변환을 지원합니다.
  • 여러 대상으로 데이터를 보낼 수 있습니다.
  • 열 이름을 비롯한 대상 테이블 스키마, 원본 데이터 스키마가 변경될 때 대상 테이블에 새 열을 추가할지 여부를 관리할 수 있습니다.

필수 조건

이 문서에 설명된 마이그레이션 절차에서는 다음이 있다고 가정합니다.

필수 사용 권한

작업 필수 사용 권한
데이터 수집 엔드포인트를 만듭니다. 예를 들어 모니터링 기여자 기본 제공 역할에서 제공하는 Microsoft.Insights/dataCollectionEndpoints/write 권한
데이터 수집 규칙을 만들거나 수정합니다. 예를 들어 모니터링 기여자 기본 제공 역할에서 제공하는 Microsoft.Insights/DataCollectionRules/Write 권한
데이터 수집기 API를 사용하는 테이블을 데이터 수집 규칙 및 로그 수집 API로 변환합니다. 예를 들어 Log Analytics 기여자 기본 제공 역할에서 제공하는 Microsoft.OperationalInsights/workspaces/tables/migrate/action 권한
새 테이블을 만들거나 테이블 스키마를 수정합니다. 예를 들어 Log Analytics 기여자 기본 제공 역할에서 제공하는 microsoft.operationalinsights/workspaces/tables/write 권한
로그 수집 API를 호출합니다. DCR에 권한 할당을 참조하세요.

로그 수집 API에 필요한 새 리소스 만들기

로그 수집 API를 사용하려면 HTTP 데이터 수집기 API에 필요하지 않은 두 가지 새로운 유형의 리소스를 만들어야 합니다.

기존 사용자 지정 테이블 마이그레이션 또는 새 테이블 만들기

현재 데이터 수집기 API를 사용하여 데이터를 보내는 기존 사용자 지정 테이블이 있는 경우 다음을 수행할 수 있습니다.

  • 로그 수집 API를 사용하여 동일한 테이블로 데이터를 계속 수집하도록 테이블을 마이그레이션합니다.

  • 기존 테이블 및 데이터를 유지하고 로그 수집 API를 사용하여 데이터를 수집하는 새 테이블을 설정합니다. 준비가 되면 이전 테이블을 삭제할 수 있습니다.

    특히 기존 테이블을 변경해야 하는 경우 이 옵션을 사용하는 것이 좋습니다. 기존 데이터 형식이 변경되고 기존 데이터 수집기 API 사용자 지정 테이블의 여러 스키마가 변경되므로 오류가 발생할 수 있습니다.

데이터 수집기 API를 사용하는 테이블을 식별하려면 테이블 속성을 확인합니다. 데이터 수집기 API를 사용하는 테이블의 Type 속성은 Custom table (classic)로 설정됩니다. 레거시 Log Analytics 에이전트(MMA)를 사용하여 데이터를 수집하는 테이블에도 Type 속성이 Custom table (classic)로 설정되어 있습니다. MMA 테이블을 변환하기 전에 Log Analytics 에이전트에서 Azure Monitor 에이전트로 마이그레이션해야 합니다. 그렇지 않으면 테이블 변환 후 이러한 테이블의 사용자 지정 필드로의 데이터 수집이 중지됩니다.

이 표에는 각 옵션에 대해 유의해야 할 고려 사항이 요약되어 있습니다.

테이블 마이그레이션 병렬 구현
테이블 및 열 이름 지정 기존 테이블 이름을 다시 사용합니다.
열 이름 지정 옵션:
- 새 열 이름을 사용하고 변환을 정의하여 들어오는 데이터를 새로 명명된 열로 전달합니다.
- 이전 이름을 계속 사용합니다.
새 테이블 이름을 자유롭게 설정합니다.
새 테이블로 전환하기 전에 통합, 대시보드 및 경고를 조정해야 합니다.
마이그레이션 절차 일회성 테이블 마이그레이션 마이그레이션된 테이블을 롤백할 수 없습니다. 마이그레이션은 테이블별로 점진적으로 수행할 수 있습니다.
마이그레이션 후 사용자 지정 열을 제외하고 기존 열과 함께 HTTP 데이터 수집기 API를 사용하여 데이터를 계속 수집할 수 있습니다.
로그 수집 API만 사용하여 새 열로 데이터를 수집합니다.
이전 테이블의 데이터는 보존 기간이 끝날 때까지 사용할 수 있습니다.
새 테이블을 처음 설정하거나 스키마를 변경하는 경우 데이터 변경 내용이 대상 테이블에 표시되기 시작하는 데 10~15분이 걸릴 수 있습니다.

데이터 수집기 API를 사용하는 테이블을 데이터 수집 규칙 및 로그 수집 API로 변환하려면 테이블에 대해 다음 API 호출을 실행합니다.

POST https://management.azure.com/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/tables/{tableName}/migrate?api-version=2021-12-01-preview

이 호출은 멱등성이므로 테이블이 이미 마이그레이션된 경우에는 아무런 효과가 없습니다.

API 호출을 사용하면 테이블의 모든 DCR 기반 사용자 지정 로그 기능을 사용할 수 있습니다. 데이터 수집기 API는 기존 열에 데이터를 계속 수집하지만 새 열은 만들지 않습니다. 이전에 정의한 사용자 지정 필드는 계속 채워지지 않습니다. 기존 테이블을 데이터 수집 규칙을 사용하도록 마이그레이션하는 또 다른 방법이지만 로그 수집 API가 테이블에 작업 영역 변환을 반드시 적용하는 것은 아닙니다.

Important

  • 열 이름은 문자로 시작해야 하며 최대 45자의 영숫자와 밑줄(_)로 구성될 수 있습니다.
  • _ResourceId, id, _ResourceId, _SubscriptionId, TenantId, Type, UniqueIdTitle은 예약된 열 이름입니다.
  • Azure 테이블에 추가하는 사용자 지정 열에는 _CF 접미사가 있어야 합니다.
  • Log Analytics 작업 영역에서 테이블 스키마를 업데이트하는 경우 데이터 수집 규칙의 입력 스트림 정의를 업데이트하여 데이터를 새 열이나 수정된 열로 수집해야 합니다.

로그 수집 API 호출

로그 수집 API를 사용하면 호출당 최대 1MB의 압축되거나 압축되지 않은 데이터를 보낼 수 있습니다. 1MB 이상의 데이터를 보내야 하는 경우 여러 호출을 병렬로 보낼 수 있습니다. 이것은 데이터 수집기 API의 변경된 부분으로, 호출당 최대 32MB의 데이터를 보낼 수 있습니다.

로그 수집 API를 호출하는 방법에 대한 내용은 로그 수집 REST API 호출을 참조하세요.

원본 데이터 개체의 변경 내용에 따라 테이블 스키마 및 데이터 수집 규칙 수정

데이터 수집기 API는 원본 데이터 개체 스키마가 변경되면 대상 테이블 스키마를 자동으로 조정하지만 로그 수집 API는 그렇지 않습니다. 이렇게 하면 만들지 않으려는 열로 새 데이터가 수집되지 않습니다.

원본 데이터 스키마가 변경되면 다음을 수행할 수 있습니다.

  • 원본 데이터 스키마 변경 내용에 맞게 대상 테이블 스키마데이터 수집 규칙을 수정합니다.
  • 대상 테이블의 기존 열로 새 데이터를 보내도록 데이터 수집 규칙의 변환을 정의합니다.
  • 대상 테이블 및 데이터 수집 규칙은 변경되지 않은 상태로 둡니다. 이 경우 새 데이터를 수집하지 않습니다.

참고 항목

열에 대해 정의된 원래 데이터 형식과 다른 데이터 형식으로 열 이름을 다시 사용할 수 없습니다.

다음 단계