2016-07-26 4 views
0

저는 logstash에서 grok을 처음 사용하기 때문에 다음과 같은 로그 패턴을 구문 분석해야합니다.GROK에서 일련의 문자열 또는 문자를 이스케이프 처리하는 방법

Jul 26 09:46:37 abc-lb1 2016-07-26 09:46:37.245 +0200 abc-lb1 WF WARN UNRECOGNIZED_COOKIE 188.200.126.234 50011 10.50.51.25 443 global GLOBAL LOG NONE [Cookie\="_ga" Service-created\="769 days back" Reason\="No valid encrypted pair"] GET example.com/search.action?searchText\=EH-5H&token\=--0----EH-5H-- TLSv1.2 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36" 188.200.126.234 50011 "-" https://example.com/my-account/login 

내가 grok 수

에 타임 스탬프를 볼 수있다 반복, 내가 알 필요가 위의 로그에

을, 문자열의 집합을 피하는 방법을 알 필요는 어떻게 피하기 위해 문자열 좋아 :

7월 26일 9시 46분 37초 ABC-LB1

+1

1) 이름 캡처 2) 사용자 정의 패턴 3) 여러 가능한 일치 디버깅 할 수 있습니다 이들 각각은 https://www.elastic.co/guide/en/logstash/current/plugins-filters-grok.html을 읽은 후에도 별도의 질문으로 요청해야합니다. –

+0

Grok은 '명명 된 전용 봉투 만 사용합니다' 속성은 기본적으로 true로 설정됩니다. 즉, 불필요한 필드의 이름을 지정하지 않으면 그 출력에 추가되지 않습니다. –

답변

0

가정 해 보겠습니다 요 u는 다음과 같이 2016-07-26 09:46:37.245https://example.com/my-account/login은 다음 grok 수 필터가해야에만 두 개의 필드가 필요합니다

grok{ match => {"message" => "%{TIMESTAMP_ISO8601:time} %{GREEDYDATA} %{URI:url}"} } 

다음과 같은 출력을 얻을 것이다 : 여기

{ 
    "time": [ 
    [ 
     "2016-07-26 09:46:37.245" 
    ] 
    ], 
    "url": [ 
    [ 
     "https://example.com/my-account/login" 
    ] 
    ] 
} 

당신이 처음 몇 필드를 피하고 당신의 로그 라인을 2016-07-26 09:46:37.245으로 직접 시작하면 %{GREEDYDATA}의 이름을 지정하지 않아도 모든 것을 피할 수 있습니다. 당신이 이름을 경우 %{GREEDYDATA} 다음 출력을 다음하므로 %{GREEDYDATA:data} 같이

{ 
    "time": [ 
    [ 
     "2016-07-26 09:46:37.245" 
    ] 
    ], 
    "data": [ 
    [ 
     "+0200 abc-lb1 WF WARN UNRECOGNIZED_COOKIE 188.200.126.234 50011 10.50.51.25 443 global GLOBAL LOG NONE [Cookie\\="_ga" Service-created\\="769 days back" Reason\\="No valid encrypted pair"] GET example.com/search.action?searchText\\=EH-5H&token\\=--0----EH-5H-- TLSv1.2 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36" 188.200.126.234 50011 "-"" 
    ] 
    ], 
    "url": [ 
    [ 
     "https://example.com/my-account/login" 
    ] 
    ] 
} 

지금 같은 단계를 적용 할 수있는 것은 어느에 당신이 피하고 싶은 필드.

당신은 || 결과 here

+0

예를 들어 설명해 주셔서 감사합니다. 이것은 초보자에게 도움이됩니다. –