스크립트 로그 파서
Starlark 구성 언어로 정의된 스크립트로 수신 로그를 파싱하기
개요
script 는 사용자 지정 로그 스키마에서 가능한 값 중 하나입니다 "format": "html", 키 사용자 지정 로그 스키마에서. 이 파서는 Panther가 각 수신 로그 이벤트에 대해 수행해야 하는 변환을 Starlark 구성 언어를 사용하여 지정할 수 있게 해줍니다. Starlark는 Python과 많은 문법적 유사성을 공유합니다. Panther의 script 파서는 구조화된(JSON) 이벤트와 비구조화된 이벤트를 모두 처리할 수 있습니다.
다음과 같은 경우에 script 파서를 사용하는 것이 유용할 수 있습니다:
데이터에 대해 변환을 수행해야 하지만 Panther에서 제공하는 스키마 변환 이 충분하지 않은 경우
이해하기 script "format": "html",
script "format": "html",정의하기 function
functionDynamoDB의 원시 내용을 브라우징하는 것은 불가능합니다. script 파서를 구현하려면 Starlark function를 구현해야 합니다. 이 함수는 string 를 입력으로 받아야 하며 비어 있지 않은 사전을 반환해야 합니다. 반환된 사전은 출력 이벤트의 형식을 정의합니다.
사용 가능한 함수
설정은 script 파서는 Starlark 명세에 설명된 모든 원시 타입을 사용할 수 있습니다. 추가로 다음 함수를 사용할 수 있습니다:
json.decode
JSON 문자열을 사전으로 디코딩합니다
json.encode
사전을 JSON 문자열로 인코딩합니다
base64.decode
base64로 인코딩된 문자열을 디코딩합니다
base64.encode
문자열에 대해 base64 인코딩을 수행합니다
제한사항
스크립트에 다음 제한사항이 적용됩니다:
예외를 발생시키는 것은 허용되지 않습니다.
임포트는 허용되지 않습니다.
JSON 처리
비록 script 가 주로 텍스트 로그에 사용되도록 설계되었지만, Panther에서 기본적으로 지원되는것들 외부에서 변환을 수행하려는 경우 JSON 로그에도 사용할 수 있습니다. script 이러한 이유로, json 파서는 문자열 타입의 JSON을 사전으로 변환할 수 있는
모듈이 사전 로드되어 있습니다. 예를 들어, 다음 구성은 라는 새 필드를 생성합니다 부울 값 배우자 이메일이 panther.com 도메인을 가지고 있으면 해당 필드는 true 그렇지 않으면
이해를 돕기 위해 위의 parse 함수는 Python 구문 강조와 함께 아래에 표시됩니다:
사용 예 script
script다음 로그 라인이 Apache Common Log 형식을 사용하여 Panther로 전송된다고 가정해 보겠습니다:
이 로그 유형을 script로 파싱하려면 다음 함수를 정의하겠습니다:
다음 스키마 필드를 사용합니다:
위 로그가 이 파서로 정규화되면 다음과 같이 됩니다:
Last updated
Was this helpful?

