맞춤 로그

사용자 정의 스키마 정의, 작성 및 관리

개요

Panther는 자체 맞춤 로그 스키마를 정의할 수 있게 해줍니다. 맞춤 로그는 을(를) 통해 Panther로 수집할 수 있으며, 그런 다음 맞춤 스키마가 데이터를 정규화하고 분류합니다. 데이터 전송및, 그런 다음 맞춤 스키마가 데이터를 정규화하고 분류합니다.

이 페이지는 필요한 맞춤 스키마 수를 결정하고, 맞춤 스키마를 추론하고 작성하며 관리하는 방법과 를 사용하여 스키마를 업로드하는 방법을 설명합니다. Panther 분석 도구(PAT)에 대한 정보는 pantherlog 를 사용하여 맞춤 스키마로 작업하는 방법은 를 참조하세요. pantherlog CLI 도구.

맞춤 스키마는 로 식별됩니다 사용자 정의. 이름에 접두사가 붙으며 네이티브로 지원되는 로그 유형이 사용되는 모든 곳에서 사용할 수 있습니다:

필요한 맞춤 스키마 수 결정

맞춤 소스에서 오는 데이터를 나타내기 위해 몇 개의 스키마가 필요한지 결정하는 명확한 규칙은 없습니다. 이는 다양한 로그 이벤트의 의도와 그들 간 필드 중복 정도에 따라 다릅니다.

일반적으로 각 로그 유형의 형상이 자체 스키마로 표현되도록 필요한 최소 수의 스키마를 만드는 것이 권장됩니다(같은 스키마로 표현될 수 있도록 로그 유형 간에 일부 필드 차이가 허용되는 여지를 둠). 실무 규칙으로는: 예를 들어 두 가지 다른 유형의 로그(예: 애플리케이션 감사 로그와 보안 알러트)가 필수 필드에서 50% 미만으로 중복된다면 서로 다른 스키마를 사용해야 합니다.

아래 표에서 예시 시나리오와 해당 스키마 권장사항을 참조하세요:

시나리오
스키마 권장사항

필드가 있는 하나의 유형의 로그가 있습니다 A, BC그리고 필드가 다른 유형의 로그가 있습니다 X, YZ.

각 로그 유형마다 하나씩, 두 개의 서로 다른 스키마를 만드세요.

기술적으로는 모든 필드(을)를 포함한 하나의 스키마를 만들고A, B, C, X, Y, Z를 선택적(예: required: false)로 표시할 수 있지만, 이는 권장되지 않습니다. 감지 규칙 작성 및 검색과 같은 하류 작업이 더 어려워지기 때문입니다.

항상 필드가 있는 하나의 유형의 로그가 있고 A, BC항상 필드가 있는 다른 유형의 로그가 있습니다 A, BZ.

필드가 있는 하나의 스키마를 만드세요, AB 를 필수로 표시하고 필드 CZ 를 선택적로 표시하세요.

필요한 스키마 수를 결정한 후 스키마를 정의할 수 있습니다.

circle-info

스키마가 하나 이상 필요하다고 판단되었고 Panther의 스키마 추론 도구 를 사용하여 스키마를 생성하려는 경우 다음 중 하나를 수행하는 것이 권장됩니다:

다음 중 어느 것을 사용하든 Panther에서 수신된 S3 데이터에서 맞춤 스키마 추론 이전에 생성한 Snowflake 사용자 이름, 예를 들면 Panther에서 수신된 HTTP 데이터에서 맞춤 스키마 추론 방법을 사용하면 소스로 전송된 모든 로그 유형을 대표하는 단일 스키마를 Panther가 생성할 위험이 있습니다.

맞춤 스키마를 정의하는 방법

circle-info

맞춤 로그 유형의 경우 Panther는 JSON, XML 또는 CSV(헤더 유무 상관없음) 형식으로 전송된 데이터 수집을 지원합니다. 단, 스키마 추론의 경우 Panther는 헤더 없는 CSV를 지원하지 않습니다.

맞춤 스키마를 정의하는 방법은 여러 가지가 있습니다. 다음을 수행할 수 있습니다:

Panther에서 스키마 자동 추론

스키마를 수동으로 작성하는 대신 Panther 콘솔이나 pantherlog CLI 도구가 데이터에서 스키마(또는 여러 스키마)를 추론하도록 할 수 있습니다.

Panther가 스키마를 추론할 때, 데이터 샘플에 다음이 있는 경우 유의하세요:

  • 형이 object인 필드가 200개 이상의 필드를 포함하면 해당 필드는 json 형으로 분류됩니다..

  • 혼합 데이터 유형을 가진 필드(예: 여러 데이터 유형을 갖는 배열이거나 필드 자체가 다양한 데이터 유형을 갖는 경우)가 있으면 해당 필드는 json 형으로 분류됩니다..

형으로 분류됩니다.

스키마를 추론하는 방법

샘플 로그에서 맞춤 스키마 추론

CLI 워크플로우에서: pantherlog infer.

명령을 사용하세요.

  1. Panther 콘솔에 로그인합니다.

  2. 샘플 로그 샘플 로그를 Panther 콘솔에 업로드하여 스키마를 생성할 수 있습니다. 커맨드 라인을 사용하려면

  3. 여기에서 pantherlog CLI 도구 사용에 대한 지침을 따르세요 새로 만들기.

  4. 시작하려면 다음 단계를 따르세요: 왼쪽 탐색 메뉴에서 클릭하세요, 설명구성 > 스키마(Configure > Schemas)..

    • 페이지 오른쪽 상단의 검색창 옆에서 클릭하세요

  5. 를 입력하세요 스키마 ID 참고 URL 켜기설명(Description)은 테이블에 대한 내용을 위한 것이며, 참고 URL은 내부 리소스에 연결하는 데 사용할 수 있습니다. 스키마 ID.

  6. 일반 구성 필요한 경우 필드 발견(Field Discovery) 를 토글하여 활성화하세요 타일에서 에 대해 자세히 알아보세요.

  7. 일반 구성 스키마 섹션, 의

  8. Panther AI

  9. 가 활성화된 경우 예외입니다. 샘플 이벤트 붙여넣기 (: 편집기에 샘플 이벤트를 직접 붙여넣거나 입력하세요.).

    • 파일을 업로드한 후 Panther는 UI에 원시 로그를 표시합니다. 전체 원시 로그를 보려면 로그 라인을 확장할 수 있습니다. 다른 샘플 집합을 추가하면 이전에 업로드한 샘플이 덮어써진다는 점에 유의하세요. 적절한

    • 스트림 유형(Stream Type)을 선택하세요 각 유형의 예시는 여기에서 확인하세요

    • 자동(Auto): Panther가 적절한 스트림 유형을 자동으로 감지합니다.

    • 라인(Lines): 이벤트는 새 줄 문자로 구분됩니다.

    • JSON: 이벤트가 JSON 형식입니다.

    • JSON 배열(JSON Array): 이벤트가 JSON 객체의 배열 안에 있습니다. CloudWatch Logs:.

  10. 이벤트가 CloudWatch Logs에서 왔습니다. XML:이벤트가 XML 형식인 경우 JSON 로그를 업로드했다면 클릭하세요 스키마 추론(Infer Schema)을(를). (비-JSON 로그를 업로드했고 Panther AI가 활성화된 경우).

    • 클릭하세요

    • Panther AI로 스키마 추론

    • 그런 다음

  11. 확인(Confirm) 테스트 실행.

    • Panther가 원시 샘플 로그에서 스키마 추론을 시작합니다.

    • Panther는 여러 타임스탬프 형식을 추론하려고 시도합니다. 스키마가 생성되면 스키마 편집기 상자에 표시됩니다.. On the left is a "Test" button. To its right is the text "Schema test against 1 total raw events completed," then a "View Events" button.

      • 업로드한 샘플 로그와 스키마에 대해 행한 변경사항에 대해 스키마가 제대로 작동하는지 확인하려면 클릭하세요 이 테스트는 스키마의 구문이 올바른지와 Panther에 업로드한 로그 샘플들이 스키마와 성공적으로 매칭되는지를 검증합니다.테스트 결과를 보려면 클릭하세요

      • 이벤트 보기(View Events) 성공적으로 매칭된 모든 로그는매칭됨(Matched)

  12. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. "Resource": "<secret ARN>" 아래에 표시됩니다; 각 로그는 컬럼, 필드 및 JSON 뷰를 표시합니다.

circle-info

성공적으로 매칭되지 않은 모든 로그는

스키마 직접 생성

스키마를 처음부터 생성

섹션은 기본적으로

  1. Panther 콘솔의 왼쪽 탐색 창에서 구성 > 스키마.

  2. 오른쪽 상단에서 클릭하세요 새로 만들기.

  3. 시작하려면 다음 단계를 따르세요: 왼쪽 탐색 메뉴에서 클릭하세요, 설명구성 > 스키마(Configure > Schemas)..

    • 페이지 오른쪽 상단의 검색창 옆에서 클릭하세요

  4. 를 입력하세요 별도 섹션(Separate Sections) 참고 URL 켜기설명(Description)은 테이블에 대한 내용을 위한 것이며, 참고 URL은 내부 리소스에 연결하는 데 사용할 수 있습니다. 스키마 ID.

  5. 일반 구성 필요한 경우 필드 발견(Field Discovery) 을 사용하도록 설정됩니다. 전체 스키마를 하나의 편집기 창에서 작성하려면 타일에서 에 대해 자세히 알아보세요.

    • 사용자를 사용할 것이며, 필요한 경우 단일 편집기(Single Editor) 파서(Parser)섹션에서 스키마가 기본(JSON/XML) 파서 이외의 파서를 필요로 하는 경우 해당 파서를 선택하세요. 다른 파서 옵션에 대해서는 다음 페이지에서 자세히 알아보세요:. To the right of a "Schema" header is a toggle with two values: Separate Sections and Single Editor.

  6. 일반 구성 스크립트 로그 파서(Script Log Parser) Fastmatch 로그 파서(Fastmatch Log Parser) 정규식(Regex) 로그 파서(Regex Log Parser) CSV 로그 파서(CSV Log Parser)

  7. 일반 구성 Panther가 생성한 스키마 필드 제안

  8. 맞춤 로그 스키마에서 핵심 필드 매핑(Mapping Core Fields in Custom Log Schemas) 창 하단에서 클릭하여 스키마에 오류가 없는지 검증하세요 구문 검증은 로그 스키마의 구문만 검사합니다. 이름 충돌로 인해 저장에 실패할 수 있습니다.

  9. 사용하도록 설정할 수 있습니다. 테스트 실행 Custom.SampleAPI

    • _로그 유형. Panther가 이 소스에서 이벤트를 수신하면 로그를 처리하여

  10. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. "Resource": "<secret ARN>".

custom_sampleapi 설정 > 로그 소스 테이블에 저장합니다. 이제 또한 디텍션 을(를) 작성하여 이러한 로그와 매칭시키고 을(를) 사용하여 쿼리할 수 있습니다.

JSON, XML 및 텍스트 로그에 대한 스키마 작성 방법은 아래 탭을 참조하세요. JSON 로그 JSON 로그에 대한 스키마 작성 로그 소스가 구성된 후에는 수집된 데이터를 사용하여 검색할 수 있습니다 이전에 생성한 Snowflake 사용자 이름, 예를 들면 panther_monitor.

(선택 사항)

각 라인이 JSON인 로그 파일을 파싱하려면 각 로그 항목의 구조를 설명하는 로그 스키마를 정의해야 합니다.

준비할 수 있습니다.

로그 스키마의 구조와 필드에 대한 자세한 정보는

로그 스키마 참조(Log Schema Reference) 를 참조하세요.또한 JSON 로그에서 starlark파서를 사용하여 Panther가 기본적으로 지원하는 것 이외의 변환을 수행할 수 있습니다. 아래 예제 스키마에서 첫 번째 탭은 JSON 로그 구조를 표시하고 두 번째 탭은 로그 스키마를 보여줍니다..

JSON 로그 예시 "method": "GET", "path": "/-/metrics", "format": "html", "controller": "MetricsController",.

"action": "index",

압축된 JSON 로그 예시:

circle-info

이를 활용하십시오 압축된 JSON 로그 예시 사용할 때 pantherlog 도구 또는 Panther 콘솔 내에서 스키마를 생성할 때.

{"method":"GET","path":"/-/metrics","format":"html","controller":"MetricsController","action":"index","status":200,"params":[],"remote_ip":"1.1.1.1","user_id":null,"username":null,"ua":null,"queue_duration_s":null,"correlation_id":"c01ce2c1-d9e3-4e69-bfa3-b27e50af0268","cpu_s":0.05,"db_duration_s":0,"view_duration_s":0.00039,"duration_s":0.0459,"tag":"test","time":"2019-11-14T13:12:46.156Z"}

스키마 필드 제안

사용자 지정 스키마를 생성하거나 편집할 때 Panther가 생성한 필드 제안을 사용할 수 있습니다. 이 기능을 사용하려면:

  1. Panther 콘솔에서 YAML 스키마 편집기로 들어갑니다.

    • 기존 스키마를 편집하려면 클릭하십시오 구성 > 스키마 > [편집하려는 스키마 이름] > 편집을 클릭.

    • 새 스키마를 생성하려면 클릭하십시오 구성 > 스키마 > 새로 만들기.

  2. 누르십시오 Command+I macOS에서 (또는 Control+I PC에서).

    • 스키마 편집기는 텍스트 커서의 위치에 따라 사용 가능한 속성 및 연산을 표시합니다.

      YAML 스키마 편집기가 표시됩니다. 커서 아래에는 concat, copy, description, indicators, mask 등 다양한 필드 제안이 있는 창이 있습니다.

사용자 지정 스키마 관리

사용자 지정 스키마 편집

Panther는 사용자 지정 스키마를 편집할 수 있도록 허용합니다. 구체적으로 다음 작업을 수행할 수 있습니다:

circle-info

필드의 유형, 새로 수집된 데이터는 새 유형과 일치하고 이전에 수집된 데이터는 이전 유형을 유지합니다.

사용자 지정 스키마를 편집하려면:

  1. Panther 콘솔에서 사용자 지정 스키마의 세부 정보 페이지로 이동하십시오.

  2. 세부 정보 페이지 오른쪽 상단에서 클릭하십시오 편집을 클릭.

  3. 원하는 대로 스키마를 수정하십시오.

    • 섹션에서 스키마에 대한 핵심 필드(Core Field) 매핑을 정의하세요. 에 대해 자세히 알아보려면.

    • 변경 사항을 더 쉽게 확인(또는 삭제된 라인을 복사하거나 되돌리려면)하려면 클릭하십시오 단일 편집기, 그런 다음 차이 보기.

      The Schema editor is shown, and the "Single Editor" and "Diff View" buttons are shown. One field has been changed, from event_time to new_name.
  4. 오른쪽 상단에서 업데이트.

를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. 테스트 실행 YAML의 구조적 준수를 확인하십시오. 규칙은 클릭한 후에만 확인된다는 점에 유의하십시오 업데이트 . 규칙을 준수하지 않으면 업데이트가 거부됩니다.

관련 디텍션 및 저장된 쿼리 업데이트

스키마 필드를 편집하면 관련 디텍션 및 저장된 쿼리를 업데이트해야 할 수 있습니다. 영향을 받는 디텍션 및 저장된 쿼리 목록을 보고, 업데이트하고, 테스트하려면 스키마 편집기 위에 표시되는 알러트 배너에서 관련 디텍션 을 클릭하십시오.

A schema's name is shown, "Custom.A"—to its right are three buttons: Upload Sample Logs, Cancel, and Update.

쿼리 영향

쿼리는 유형 변경 간에도 작동합니다 단, 쿼리가 캐스트할 수 없는 필드 유형을 요구하는 함수나 연산자를 사용하지 않는 경우에 한합니다. 유형들.

  • 좋은 예: 다음 유형 이(가) 문자열 에서 정수 로 편집되어 모든 기존 값이 숫자인 경우(예: "1" ). 함수 sum 은 이전 값과 새 값을 함께 집계합니다.

  • 나쁜 예: 다음 유형 이(가) 문자열 에서 정수 어떤 기존 값 중 일부가 숫자가 아닌 경우(예: "apples" ). 함수 sum 숫자가 아닌 값을 제외합니다.

쿼리 캐스트 가능성 표

이 표는 어떤 유형들 를 쿼리 실행 시 각 유형 로 캐스트할 수 있는지를 보여줍니다. 스키마 편집은 어떤 유형 든 다른 유형.

유형 From -> To
불리언
문자열
정수
빅인트
부동 소수점
타임스탬프

불리언

동일

아니요

아니요

문자열

동일

숫자만

숫자만

숫자만

숫자만

정수

동일

숫자만

빅인트

동일

숫자만

부동 소수점

동일

숫자만

타임스탬프

아니요

아니요

아니요

아니요

동일

사용자 지정 스키마 보관 및 보관 해제

Panther에서는 사용자 지정 스키마를 보관하거나 보관 해제할 수 있습니다. 더 이상 데이터 수집에 사용되지 않아 Panther의 다양한 드롭다운 선택기에서 옵션으로 표시되지 않도록 하려면 스키마를 보관할 수 있습니다. 스키마를 보관하려면 해당 스키마가 어떤 로그 소스에서도 사용되고 있지 않아야 합니다. 보관된 스키마는 영구적으로 삭제할 수 없으며 무기한 존재합니다.

스키마를 보관해도 해당 스키마를 사용하여 이미 저장된 데이터 레이크의 데이터에는 영향을 주지 않습니다—해당 데이터는 여전히 panther_monitor로그 소스가 구성된 후에는 수집된 데이터를 사용하여 검색할 수 있습니다을 사용하여 쿼리할 수 있습니다. 기본적으로 보관된 스키마는 스키마 목록 보기(에서 표시되는)에 나타나지 않지만, 구성 > 스키마을 수정하여 표시할 수 있습니다. 상태내에서 필터오른쪽 상단의. 에서는 보관된 스키마의 표가 panther_monitor테이블 아래에 표시되지 않습니다..

보관된 스키마와 동일한 이름으로 새 스키마를 생성하려고 하면 이름 충돌이 발생하며 대신 기존 스키마를 보관 해제하고 편집하라는 메시지가 표시됩니다.

사용자 지정 스키마를 보관 또는 보관 해제하려면:

  1. Panther 콘솔에서 로 이동하십시오 구성 > 스키마.

    • 보관하거나 보관 해제하려는 스키마를 찾으십시오.

  2. 스키마 행의 오른쪽에서 클릭하십시오 이전에 생성한 Snowflake 사용자 이름, 예를 들면 보관 보관 해제

    Two schema rows are shown, one that is currently archived and one that is currently unarchived. The archive/unarchive icons in each of their rows is circled.
    • 아이콘. 스키마를 보관하는 중이고 해당 스키마가 현재 하나 이상 로그 소스와 연결되어 있으면 확인 모달에서 먼저 스키마를 분리하라는 메시지가 표시됩니다. 분리한 후 클릭하십시오. An Archive Schema modal says, "Prior to archiving Custom.HarryPotterFake2, it must be detached from all associated Log Sources." A list of associated log sources is shown, with only one value: Carrie Tines Test

  3. 새로 고침 계속.

확인 모달에서 클릭하십시오

circle-info

사용자 지정 스키마 테스트 스키마 편집 페이지에 있는 "샘플 로그에 대해 스키마 테스트" 기능은 Lines, CSV(헤더 유무 상관없음), JSON, JSON 배열, XML, CloudWatch Logs 및 Auto를 지원합니다. 예시는 스트림 유형

입니다.

  • gzip

  • zstd (사전 없이)

또한 위의 로그 형식은 다음 형식으로 압축될 수 있습니다:

멀티라인 로그는 JSON 및 JSONArray 형식에서 지원됩니다.

  1. 사용자 지정 스키마가 로그에 대해 작동하는지 확인하려면 샘플 로그로 테스트할 수 있습니다: 구성 > 스키마.

  2. Panther 콘솔의 왼쪽 탐색 막대에서 클릭하십시오.

  3. 사용자 지정 스키마 이름을 클릭하십시오 스키마 테스트.

    A schema's name is shown. To its right are two buttons: Test Schema and Clone.

스키마 세부 정보 페이지 오른쪽 상단에서 클릭하십시오

Panther 콘솔 외부에서 스키마를 관리하려는 경우, 예를 들어 버전 관리를 위해 및 업데이트 전에 변경 사항을 검토하려는 경우, YAML 파일을 프로그램 방식으로 업로드할 수 있습니다 Panther 분석 도구

(PAT). 업로더 명령은 기본 경로를 인수로 받아 확장자가 있는 모든 파일을 재귀적으로 검색합니다.yml.

circle-info

.yaml

panther_analysis_tool update-custom-schemas --path ./schemas

circle-exclamation

필드는 YAML 파일에 항상 정의되어야 하며 업데이트가 성공하려면 기존 스키마 이름과 일치해야 합니다. 사용 가능한 모든 CI/CD 필드 목록은 우리의

PAT을 통해 업로드된 스키마는 Panther 콘솔에서 수행한 업데이트와 동일한 기준으로 검증됩니다.

Panther 지식 기반을 방문하여 사용자 지정 로그 문제 해결하기 (Troubleshooting custom logs) 보기 기사들arrow-up-right 자주 묻는 질문에 답하고 일반적인 오류와 문제를 해결하는 데 도움이 됩니다.

마지막 업데이트

도움이 되었나요?