pantherlog 도구

pantherlog은 사용자 정의 로그 작업을 돕는 CLI 도구입니다

개요

다음을 사용할 수 있습니다 pantherlog, CLI 도구로 사용자 지정 로그를 처리할 수 있습니다. Panther가 관리하는 스키마 또는 사용자 지정 스키마를 사용하여 로그를 구문 분석하며, 샘플 로그를 사용해 사용자 지정 스키마를 유추합니다.

대신 Panther 콘솔에서 사용자 지정 로그 작업에 대한 정보를 보려면, 다음을 참조하세요 사용자 지정 로그 문서.

pantherlog 제한 사항

다운로드

다음 링크에서 최신 버전을 다운로드하세요:

list-schemas: Panther가 관리하는 스키마 나열

pantherlog의 list-schemas 명령을 사용하여 Panther가 관리하는 스키마를 나열할 수 있습니다.

./pantherlog list-schemas

export-schemas: Panther가 관리하는 스키마 내보내기

pantherlog의 export-schemas 명령을 사용하여 Panther가 관리하는 스키마를 로컬 디렉터리로 내보내거나 터미널에 출력할 수 있습니다.

스키마를 로컬 디렉터리로 내보내기

  • 만약 directory-name 이 존재하지 않으면 생성됩니다.

  • 참고로 -p--path.

대신 사용할 수 있습니다.

스키마 출력 stdout 로 내보내는 대신 스키마를 출력하려면 대시(-)를 사용하세요.

선택한 스키마 내보내기

내보낼 스키마를 필터링하려면 -s 옵션과 함께 내보내려는 스키마 이름들을 쉼표로 구분하여 사용하세요.

infer: JSON 로그 샘플로부터 스키마 생성

pantherlog을 사용하여 개행으로 구분된 JSONarrow-up-right 형식의 샘플 파일에서 스키마 파일을 생성할 수 있습니다. 도구는 제공된 로그를 스캔하여 유추한 스키마를 stdout.

로 출력합니다. 예를 들어, 로그의 스키마를 유추하려면 sample_logs.jsonl 의 스키마를schema.yml

$ ./pantherlog infer --name SchemaName sample_logs.jsonl > schema.yml 사용자 지정 로그.

YAML 키와 값은 대소문자를 구분합니다. 도구는 여러 타임스탬프 형식을 유추하려 시도합니다. 스키마 유추에 대한 자세한 내용은

infer 샘플 로그에서 스키마를 유추하는 워크플로우

와 같이 반환할 수 있습니다(스타일 취향에 따라). infer 제한 사항 명령은 어떤 타임스탬프 필드도isEventTime:true 로 표시하지 않습니다. 적절한 명령은 어떤 타임스탬프 필드도타임스탬프 명령은 어떤 타임스탬프 필드도필드를 선택하고 이를 로 표시해야 합니다. 관련 정보는.

와 같이 반환할 수 있습니다(스타일 취향에 따라). infer 를 참조하세요. 명령은 다음 유형의: 지표만 유추할 수 있습니다, ip, aws_arn, url, email hash다이제스트 (, MD5SHA1SHA2 ), 및mac

. 필드를 검토하고 적절히 추가 지표를 설정하는 것을 잊지 마세요. infer 생성된 스키마를

명령으로 검토하고 프로덕션 환경에 배포하기 전에 적절히 편집하는 것을 강력히 권장합니다.parse

: 스키마 검증 stdout 이 도구를 사용하여 스키마 파일을 검증하고 이를 사용해 로그 파일을 구문 분석할 수 있습니다. 로그 파일의 이벤트는 줄 바꿈으로 구분되어야 합니다. 처리된 로그는 에 기록되고 오류는.

stderr 예를 들어, 로그의 스키마를 유추하려면 로 기록됩니다. 의 스키마를schema.yml

의 로그를 스키마 와 함께 구문 분석하려면 $ ./pantherlog parse --path schema.yml --schemas Schema.Name sample_logs.jsonl

stdin을 통해 입력을 받을 수 있으므로 파이프라인에서 사용할 수 있습니다:

$ cat sample_logs.jsonl | ./pantherlog parse --path schema.yml test : 스키마 테스트 실행 의 스키마를pantherlog을 사용하여 사용자 지정 스키마에 대한 단위 테스트를 실행할 수 있습니다. 사용자 지정 스키마에 대해

파일에 정의된 테스트를 실행하려면 다음을 실행하세요: $ ./pantherlog test schema.yml schema_tests.yml 로그/리소스 유형별로 규칙을 폴더로 그룹화하는 것을 권장합니다(예: 첫 번째 인수는 스키마 YAML 파일을 포함하는 파일 또는 디렉터리입니다. 나머지 인수들은 실행할 테스트 파일들입니다. 테스트 파일 인수를 지정하지 않고 첫 번째 인수가 디렉터리인 경우, 도구는 접미사가 _tests.yml

_tests.yaml

인 YAML 파일에서 테스트를 찾습니다. 스키마 테스트 파일 생성 테스트 파일에는 구문 분석할 이벤트를 포함하는 input 키와 예상 결과를 포함하는 stdin result

circle-info

와 같이 반환할 수 있습니다(스타일 취향에 따라). input 키를 포함하세요. pantherlog 명령은 스키마가 오류 없이 이벤트를 구문 분석할 수 있는지, 그리고 정규화된 이벤트가 예상 결과와 일치하는지 확인합니다. 이벤트에는 파싱 중에 주입될 것으로 예상되는 모든 Panther 표준 필드.

를 포함해야 합니다. 예를 들어 p_log_type 다음을 확인하세요 스키마 테스트에서.

return "HIGH"

stdin 샘플 로그에서 스키마를 유추하는 워크플로우

  • 와 같이 반환할 수 있습니다(스타일 취향에 따라). stdin required: false

- name: view_duration_s

명령은 JSON 이벤트만을 지원합니다. PAT를 통한 스키마 업로드하기</i>Upload</i>ing schemas via PAT</i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></t172>,.

Last updated

Was this helpful?