자습서: Azure Monitor 로그에서 수집하는 동안 문자 로그 변환

수집 시간 변환을 사용하면 들어오는 데이터를 Log Analytics 작업 영역에 저장하기 전에 필터링하거나 수정할 수 있습니다. 이 문서에서는 문자 로그 데이터를 변환하고 변환을 데이터 수집 규칙에 추가하는 KQL 쿼리를 작성하는 방법을 설명합니다.

여기에 설명된 절차에서는 Azure Monitor 에이전트를 사용하여 텍스트 로그 수집에 설명된 대로 텍스트 파일에서 일부 데이터를 이미 수집했다고 가정합니다. 이 자습서에서는 다음을 수행합니다.

  1. KQL 쿼리를 작성하여 수집된 데이터를 변환합니다.
  2. 대상 테이블 스키마를 수정합니다.
  3. 변환을 데이터 수집 규칙에 추가합니다.
  4. 변환이 올바르게 작동하는지 확인합니다.

필수 조건

이 절차를 완료하려면 다음이 필요합니다.

  • 최소한 기여자 권한이 있는 Log Analytics 작업 영역입니다.
  • Azure Monitor 에이전트를 사용하여 텍스트 로그 수집에 설명된 대로 데이터 수집 규칙, 데이터 수집 엔드포인트사용자 지정 테이블입니다.
  • 텍스트 파일에 로그를 로그하는 VM, Virtual Machine Scale Set 또는 Arc 지원 온-프레미스 서버입니다. 텍스트 파일 요구 사항:
    • Azure Monitor 에이전트가 실행되는 컴퓨터의 로컬 드라이브에 저장합니다.
    • 줄 끝으로 구분합니다.
    • ASCII 또는 UTF-8 인코딩을 사용합니다. UTF-16과 같은 다른 형식은 지원되지 않습니다.
    • 순환 로깅, 새 항목으로 파일을 덮어쓰는 로그 회전 또는 파일이 이동되고 이름이 같은 새 파일이 열리는 위치의 이름을 바꾸는 것을 허용하지 않습니다.

수집된 데이터를 변환하는 KQL 쿼리 작성

  1. Log Analytics에서 대상 사용자 지정 테이블의 데이터를 봅니다.

    1. Azure Portal에서 Log Analytics 작업 영역>Log Analytics 작업 영역>로그를 선택합니다.
    2. 사용자 지정 로그 테이블인 기본 쿼리를 실행하여 테이블 데이터를 봅니다.
  2. 쿼리 창을 사용하여 테이블의 원시 데이터를 변환하는 쿼리를 작성하고 테스트합니다.

    변환이 지원하는 KQL 연산자에 대한 자세한 내용은 Azure Monitor의 변환 구조를 참조하세요.

    참고 항목

    변환을 적용할 수 있는 유일한 열은 TimeGenerated 및 RawData입니다. 다른 열은 변환 후에 자동으로 테이블에 추가되며 변환 시 사용할 수 없습니다. _ResourceId 열은 변환에 사용할 수 없습니다.

    예제

    이 샘플에서는 기본 KQL 연산자를 사용하여 RawData 열의 데이터를 Time Ingested, RecordNumberRandomContent(이)라는 세 개의 새 열로 구문 분석합니다.

    • extend 연산자는 새 열을 추가합니다.
    • project 연산자는 대상 테이블 스키마의 열과 일치하도록 출력 형식을 지정합니다.
    MyTable_CL
    | extend d=todynamic(RawData)  
    | project TimeGenerated,TimeIngested=tostring(d.Time), 
    RecordNumber=tostring(d.RecordNumber), 
    RandomContent=tostring(d.RandomContent), 
    RawData 
    

    참고 항목

    이러한 방식으로 테이블 데이터를 쿼리해도 테이블의 데이터가 실제로 수정되지는 않습니다. Azure Monitor는 데이터 수집 규칙에 변환 쿼리를 추가한 후 데이터 수집 파이프라인에 변환을 적용합니다.

  3. 쿼리의 형식을 한 줄로 지정하고 쿼리의 첫 번째 줄에 있는 테이블 이름을 source 단어로 바꿉니다.

    예시:

    source | extend d=todynamic(RawData) | project TimeGenerated,TimeIngested=tostring(d.Time),RecordNumber=tostring(d.RecordNumber), RandomContent=tostring(d.RandomContent), RawData 
    
  4. 서식이 지정된 쿼리를 복사하여 데이터 수집 규칙 구성에 붙여넣을 수 있습니다.

새 열을 포함하도록 사용자 지정 테이블 수정

변환 쿼리에 따라 사용자 지정 테이블에서 열을 추가하거나 삭제합니다.

위의 예제 변환 쿼리는 string 형식의 세 개의 새 열을 추가합니다.

  • TimeIngested
  • RecordNumber
  • RandomContent

이 변환을 지원하려면 이러한 세 개의 새 열을 사용자 지정 테이블에 추가합니다.

TimeIngested, RecordNumber 및 RandomContent 열을 정의하고 있는 스키마 편집기 창의 스크린샷

데이터 수집 규칙에 변환 적용

  1. 모니터 메뉴에서 데이터 수집 규칙> 데이터 수집 규칙을 선택합니다.

  2. 데이터 원본> 데이터 원본을 선택합니다.

  3. 서식이 지정된 변환 쿼리를 데이터 원본 추가 화면의 데이터 원본 탭에 있는 변환 필드에 붙여넣습니다.

  4. 저장을 선택합니다.

    변환 필드가 강조 표시된 데이터 원본 추가 창의 스크린샷

변환이 작동하는지 확인

대상 사용자 지정 테이블의 데이터를 보고 데이터가 수정된 테이블에 올바르게 수집되고 있는지 확인합니다.

  1. Azure Portal에서 Log Analytics 작업 영역>Log Analytics 작업 영역>로그를 선택합니다.
  2. 사용자 지정 로그 테이블인 기본 쿼리를 실행하여 테이블 데이터를 봅니다.

다음 단계

자세히 알아보기: