Grok 파서

개요

원시 이벤트의 전체 메시지 또는 특정 속성을 구문 분석할 사용자 지정 grok 규칙을 생성합니다. grok 파서의 구문 분석 규칙은 10개로 제한하는 것이 모범 사례입니다. Grok 구문 및 구문 분석 규칙에 관한 자세한 정보는 구문 분석을 참조하세요.

Grok 파서 구성

사용 사례

Grok 파서는 주로 로그 메시지에서 속성을 구문 분석하는 데 사용됩니다. 예를 들어, NGINX 로그의 메시지에는 추출하려는 여러 정보가 포함될 수 있습니다.

Grok 규칙을 생성하면 파서는 IP 주소, 사용자, 요청 타임스탬프, 요청 메서드, URL, 버전, 상태 코드 및 바이트를 기록할 수 있습니다.

설정

Pipelines 페이지에서 Grok 프로세서를 정의하세요. Grok 구문 분석 규칙을 구성하려면 다음 단계를 따르세요.

  1. Add Grok Parser를 클릭하여 새 파서 구성을 엽니다.
  2. Log Samples: 로그 샘플이 로그 샘플 섹션에 자동으로 표시됩니다. 더 많은 로그 샘플을 추가할 수도 있습니다(총 최대 10개, 각각 최대 5,000자). 참고: 샘플 로그는 파이프라인 필터와 일치하는 로그 패턴 중 볼륨이 가장 높은 5개 패턴에서 가져옵니다.
  3. Log Samples: 최대 5개의 샘플 로그(각각 최대 5,000자)를 추가해 구문 분석 규칙을 테스트하세요.
  4. Define parsing rules: Auto parsing을 클릭하여 샘플과 일치하는 규칙을 생성합니다.

    선택한 Datadog 사이트에서는 자동 구문 분석을 사용할 수 없습니다().

  5. Test your rules: 샘플을 클릭하면 구문 분석 규칙에 대한 평가가 실행되고, 결과가 화면 오른쪽에 표시됩니다. 모든 샘플에 상태가 표시되며(match 또는 no match), 이를 통해 Grok 파서의 구문 분석 규칙 중 하나가 샘플과 일치하는지 확인할 수 있습니다.

로그의 구문 분석 전후 상태

이전(원시 로그):

192.168.1.1 - john [10/Oct/2023:13:55:36 +0000] "GET /api/users HTTP/1.1" 200 1234

Grok 구문 분석 규칙:

access.common %{ipOrHost:network.client.ip} %{notSpace:http.ident} %{notSpace:http.auth} \[%{httpdate:date}\] "(?>%{word:http.method} |)%{notSpace:http.url}(?: HTTP/%{number:http.version}|)" %{number:http.status_code} (?>%{number:network.bytes_written}|-)

처리 후:

{
 "network": {
   "client": {
     "ip": "192.168.1.1"
   },
   "bytes_written": 1234
 },
 "http": {
   "ident": "-",
   "auth": "john",
   "method": "GET",
   "url": "/api/users",
   "version": "1.1",
   "status_code": 200
 },
 "date": 1696945536000
}

Grok 파서는 비정형 로그 메시지를 로그 탐색기에서 쿼리, 필터링 및 분석할 수 있는 구조화된 JSON 속성으로 변환합니다.

API

다음 Grok 파서 JSON 페이로드와 함께 Datadog 로그 파이프라인 API 엔드포인트를 사용하세요.

{
  "type": "grok-parser",
  "name": "Parsing Log message",
  "is_enabled": true,
  "source": "message",
  "samples": ["sample log 1", "sample log 2"],
  "grok": {"support_rules": "<SUPPORT_RULES>", "match_rules": "<MATCH_RULES>"}
}
매개변수유형필수설명
type문자열프로세서의 유형입니다.
name문자열아니요프로세서의 이름입니다.
is_enabled부울아니요프로세서의 활성화 여부입니다. 기본값: false.
source문자열구문 분석할 로그 속성의 이름입니다. 기본값: message.
samples문자열 배열아니요이 Grok 파서에 사용할 샘플 로그(최대 5개) 목록입니다.
grok.support_rules문자열Grok 파서에서 지원되는 규칙 목록입니다.
grok.match_rules문자열Grok 파서의 일치 규칙 목록입니다.

추가 자료