이 예제제제에서는 Show 이 예제제제제에서는 Amazon Kinesis Data Stre에 로그 레코드를 씁니다. 다음은 로그의 예입니다.
그런 다음 Kinesis 데이터 스트림을 스트리밍 소스로 사용하여 콘솔에서 Amazon Kinesis 데이터 분석 애플리케이션을 생성합니다. 검색 프로세스는 스트리밍 소스 상의 샘플 레코드를 읽고 다음과 같이 한 열(로그)로 인애플리케이션 스키마를 유추합니다. 그런 다음 주제
1단계: Kinesis Data Stream 생성Amazon Kinesis 데이터 스트림을 생성하고 다음과 같이 로그 레코드를 채웁니다.
2단계: Kinesis Data Analytics 애플리케이션 생성다음과 같이 Amazon Kinesis 데이터 분석 애플리케이션을 생성하십시오.
주요 콘텐츠로 건너뛰기 이 브라우저는 더 이상 지원되지 않습니다. 최신 기능, 보안 업데이트, 기술 지원을 이용하려면 Microsoft Edge로 업그레이드하세요. Azure Monitor 로그에서 텍스트 데이터 구문 분석
이 문서의 내용Azure Monitor에서 수집된 일부 데이터에는 하나의 속성에 여러 개의 정보 부분이 포함되어 있습니다. 이 데이터를 여러 속성으로 구문 분석하면 쿼리에서 더 쉽게 사용할 수 있습니다. 일반적인 예로, 여러 값이 있는 전체 로그 항목을 단일 속성으로 수집하는 사용자 지정 로그가 있습니다. 서로 다른 값에 대해 별도의 속성을 만들면 각각을 검색하고 집계할 수 있습니다. 이 문서에서는 데이터가 수집될 때와 쿼리에서 검색될 때 Azure Monitor 레코드의 로그 데이터를 구문 분석하기 위한 다양한 옵션을 설명하고, 각각의 상대적인 이점을 비교합니다. 구문 분석 방법데이터를 수집하는 수집 시 또는 쿼리를 통해 데이터를 분석하는 쿼리 시에 데이터를 구문 분석할 수 있습니다. 각 전략에는 아래에서 설명한 대로 고유한 이점이 있습니다. 수집 시 데이터 구문 분석수집 시 데이터를 구문 분석하는 경우 테이블에 새 속성을 만드는 사용자 지정 필드를 구성합니다. 쿼리는 구문 분석 논리를 포함할 필요가 없으며 이러한 속성을 테이블의 다른 필드로 사용하기만 하면 됩니다. 이 방법의 장점은 다음과 같습니다.
이 방법의 단점은 다음과 같습니다.
쿼리 시 데이터 구문 분석쿼리 시 데이터를 구문 분석하는 경우 쿼리에 논리를 포함하여 데이터를 여러 필드로 구문 분석합니다. 실제 테이블 자체는 수정되지 않았습니다. 이 방법의 장점은 다음과 같습니다.
이 방법의 단점은 다음과 같습니다.
수집된 데이터 구문 분석데이터를 수집할 때 구문 분석하는 방법에 대한 자세한 내용은 Azure Monitor에서 사용자 지정 필드 만들기를 참조하세요. 이렇게 하면 다른 속성처럼 쿼리에서 사용할 수 있는 사용자 지정 속성이 테이블에 만들어집니다. 패턴을 사용하여 쿼리의 데이터 구문 분석구문 분석하려는 데이터를 레코드 간에 반복되는 패턴으로 식별할 수 있는 경우 Kusto 쿼리 언어의 다양한 연산자를 사용하여 데이터의 특정 부분을 하나 이상의 새 속성으로 추출할 수 있습니다. 간단한 텍스트 패턴쿼리에서 parse 연산자를 사용하여 문자열 식에서 추출할 수 있는 하나 이상의 사용자 지정 속성을 만듭니다. 식별할 패턴과 만들 속성의 이름을 지정합니다. 이는 key=value와 비슷한 형식의 키-값 문자열이 있는 데이터에 특히 유용합니다. 다음 형식의 데이터가 있는 사용자 지정 로그를 살펴봅니다.
다음 쿼리는 이 데이터를 개별 속성으로 분석합니다. 사용자 지정 로그의 전체 항목을 포함하는 단일 속성인 RawData가 아니라 계산된 속성만 반환하기 위해 project가 있는 줄이 추가됩니다.
다음은 AzureActivity 테이블에서 UPN의 사용자 이름을 분리하는 또 다른 예제입니다.
정규식정규식을 사용하여 데이터를 식별할 수 있는 경우 정규식을 사용하는 함수를 통해 개별 값을 추출할 수 있습니다. 다음 예제에서는 extract를 사용하여 AzureActivity 레코드에서 UPN 필드를 분리한 다음, 고유한 사용자를 반환합니다.
효율적인 대량 구문 분석을 사용하도록 설정하기 위해 Azure Monitor는 다른 정규식 변형 중 일부와 비슷하지만 동일하지 않은 re2 버전의 정규식을 사용합니다. 자세한 내용은 re2 식 구문을 참조하세요. 쿼리에서 구분 기호로 분리된 데이터 구문 분석구분 기호로 분리된 데이터는 필드를 CSV 파일의 쉼표와 같은 일반적인 문자로 구분합니다. 지정한 구분 기호를 사용하여 구분 기호로 분리된 데이터를 구문 분석하려면 split 함수를 사용합니다. 데이터의 모든 필드를 반환하거나 출력에 포함할 개별 필드를 지정하려면 이 함수를 extend 연산자와 함께 사용합니다. 참고 split 함수는 동적 개체를 반환하므로 결과는 연산자와 필터에 사용할 문자열과 같은 데이터 형식에 명시적으로 캐스팅되어야 합니다. 다음 CSV 형식의 데이터가 있는 사용자 지정 로그를 살펴봅니다.
이 데이터를 구문 분석하고 두 개의 계산된 속성으로 요약하는 쿼리는 다음과 같습니다. 첫 번째 줄은 RawData 속성을 문자열 배열로 분할합니다. 다음 각 줄은 개별 속성에 이름을 지정하고, 함수를 사용하여 출력에 추가하여 적절한 데이터 형식으로 변환합니다.
쿼리에서 미리 정의된 구조체 구문 분석데이터 형식이 알려진 구조체로 지정된 경우 Kusto 쿼리 언어의 함수 중 하나를 사용하여 미리 정의된 구조체를 구문 분석할 수 있습니다.
다음 예제 쿼리에서는 JSON으로 구조화된 AzureActivity 테이블의 Properties 필드를 구문 분석합니다. 이 쿼리는 JSON에서 명명된 개별 값을 포함하는 parsedProp라는 동적 속성에 결과를 저장합니다. 이러한 값은 쿼리 결과를 필터링하고 요약하는 데 사용됩니다.
이러한 구문 분석 함수는 프로세서를 집약적으로 사용할 수 있으므로 형식이 지정된 데이터의 여러 속성을 쿼리에서 사용하는 경우에만 사용해야 합니다. 그렇지 않으면 간단한 패턴 일치 처리가 빨라집니다. 다음 예제에서는 도메인 컨트롤러 TGT Preauth 형식의 분석을 보여 줍니다. 형식은 EventData XML 문자열 필드에만 존재하지만 이 필드의 다른 데이터는 필요하지 않습니다. 이 경우 parse를 사용하여 필요한 데이터 조각을 추출합니다.
함수를 사용하여 테이블 시뮬레이션특정 테이블에 대해 동일한 구문 분석을 수행하는 쿼리가 여러 개 있을 수 있습니다. 이 경우 각 쿼리에서 구문 분석 논리를 복제하는 대신 구문 분석된 데이터를 반환하는 함수를 만듭니다. 그러면 다른 쿼리에서 원래 테이블 대신 함수 별칭을 사용할 수 있습니다. 쉼표로 구분된 위의 사용자 지정 로그 예제를 살펴봅니다. 여러 쿼리에서 구문 분석된 데이터를 사용하기 위해 다음 쿼리를 사용하여 함수를 만들고 MyCustomCSVLog 별칭을 사용하여 저장합니다.
이제 다음과 같은 쿼리에서 실제 테이블 이름 대신 MyCustomCSVLog 별칭을 사용할 수 있습니다.
다음 단계
|