LogAnalytics - Kusto Query (KQL) 쿼리에서 JSON을 추출하는 방법
소개
Azure 환경을 살펴보고 LogAnalytics를 사용하여 이벤트를 필터링 할 때 JSON이 포함 된 레코드를 조건으로 만들고 싶은 방법을 요약했습니다.
샘플 예
{"ConsoleLogin":"Success"}
Kusto 쿼리의 JSON 추출 방법
다음 두 가지가 기능으로 제공됩니다.
extractjson
parse_json
해보자
1. extractjson 패턴
AWSCloudTrail
| where TimeGenerated > ago(7d)
| where EventName == "ConsoleLogin" // CloudTrailのイベントを絞る
| extend extractjson_result = extractjson("$.ConsoleLogin", ResponseElements) // ResponseElementsからConsoleLoginを抽出する
| project TimeGenerated,EventName,UserIdentityUserName,ResponseElements,extractjson_result // 出力
결과
- ResponseElements가 원래 데이터
- extractjson으로 추출한 데이터를 "extractjson_result"필드로 표시
2. parse_json 패턴
AWSCloudTrail
| where TimeGenerated > ago(7d)
| where EventName == "ConsoleLogin" // CloudTrail のイベントを絞る
| extend d=parse_json(ResponseElements) // parse_json で読み込み
| extend parsejson_result = d["ConsoleLogin"] // 正規化されたJSONを抽出する
| project TimeGenerated,EventName,UserIdentityUserName,ResponseElements,parsejson_result // 出力
결과
- 일단 parse_json에서 json.load하는 것이 포인트
- 정규화하여 복수의 json 추출하므로 복수를 추출하는 경우 여기가 추천
용도 예
AWSCloudTrail
| where TimeGenerated > ago(7d)
| where EventName == "ConsoleLogin" // CloudTrailのイベントを絞る
| extend extractjson_result = extractjson("$.ConsoleLogin", ResponseElements) // ResponseElementsからConsoleLoginを抽出する
| project TimeGenerated,EventName,UserIdentityUserName,ResponseElements,extractjson_result // 出力
AWSCloudTrail
| where TimeGenerated > ago(7d)
| where EventName == "ConsoleLogin" // CloudTrail のイベントを絞る
| extend d=parse_json(ResponseElements) // parse_json で読み込み
| extend parsejson_result = d["ConsoleLogin"] // 正規化されたJSONを抽出する
| project TimeGenerated,EventName,UserIdentityUserName,ResponseElements,parsejson_result // 出力
마지막으로
Reference
이 문제에 관하여(LogAnalytics - Kusto Query (KQL) 쿼리에서 JSON을 추출하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hisnakad/items/2bec48a3b45857670d34텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)