2014-06-17 8 views
1

나는 grok debugger을 테스트하고 있지만 문제를 해결할 수는 없습니다.grok 디버거 정규식 사용

샘플 텍스트 :

{ 
    timestamp:2014-06-17 04:37:30,317 
    logger:c.e.A.MyActivity 
    level:info 
    caller_thread:main 
    caller_method:MyActivity.java 
    caller_line:53 
    caller_class:com.example.ApLogback.MyActivity$1 
    caller_method: onClick 
    msg: caller track 
} 

: 그것은 다음과 같은 부분에서 같은 이전 샘플 텍스트를 분할하도록

2014-06-17 04:37:30,317 c.e.A.MyActivity INFO main MyActivity.java 53 com.example.ApLogback.MyActivity$1 onClick logger track 

은 어떻게하는 grok 수 정규식/패턴 문자열을 구성한다 현재 정규 표현식은 :

(?<timestamp>[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3}) (?<logger>.*) 

하지만 로그 문자열의 시작 부분 만 분할합니다. 내 현재 grok 수 문자열의 예제 결과는 다음과 같습니다

{ 
     "timestamp": [ 
     [ 
      "2014-06-17 04:37:30,317" 
     ] 
     ], 
     "logger": [ 
     [ 
      "c.e.A.MyActivity INFO main MyActivity.java 53 com.example.ApLogback.MyActivity$1 onClick logger" 
     ] 
     ] 
    } 

답변

2

grok 수, 당신의 요구의 대부분을 커버에서 그들을 확인합니다 많은 이미 정의 된 패턴과 함께 제공 :에 구체적인 답변으로 Grok Debugger/patterns

당신의 질문, 여기에 당신이 필요로하는 것을하는 더러운 예가 있습니다. 이미 정의 된 grok 패턴을 사용하여 자신 만의 패턴을 만드는 방법에 대한 예입니다.

(?<timestamp>[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3}) (?:%{JAVACLASS:logger}) (?:%{LOGLEVEL:level}) (?:%{WORD:caller_thread}) (?:%{JAVACLASS:caller_file}) (?:%{NONNEGINT:caller_line}) (?:%{JAVACLASS:caller_class}) (?:%{WORD:caller_method}) (?:%{GREEDYDATA:msg})