2017-04-10 4 views
1

Logstash를 처음 사용했습니다. 방금 작업을 시작했습니다. 좋은 튜토리얼을 찾지 못했습니다. 그래서 여기에 내 질문을 게시하고 있습니다. Logstash - 기본 Grok 패턴이 작동하지 않습니다.

input { 
    file{ 
     path => "C:/software/logstash-5.3.0/logstash-5.3.0/bin/test1.txt" 
     type => "Text File" 
     start_position => "beginning" 
    } 
} 

filter { 

    grok { 
     match => [ "message", "%{WORD:File Name} %{WORD:Method Name} %{NUMBER:testing Number} %{NUMBER:testing second number}" ] 
    } 
} 

output{ 

    file { 
     path => "C:/software/logstash-5.3.0/logstash-5.3.0/bin/test_op1.txt" 
     codec => line { format => "File Name is: %{File Name} and Method Name is: %{Method Name}" 
     }  
    } 

    stdout {} 
} 

나는 구글 검색에서 몇 가지 예를보고하여이 conf의 파일을 만든 :

나는 기본 conf의 파일이 있습니다. 난 그냥 Logstash 여기에 어떻게 작동하는지 이해하기 위해 노력하고 TESTFILE testMethod (123) (345)

:

내 입력 파일은 한 줄이 포함되어 있습니다.

위의 conf 파일과 입력 파일을 사용하여 logstash를 실행했습니다. 성공적으로 실행되기 시작했습니다. "testFile testMethod 123 345"가 콘솔에 인쇄되었습니다. "파일 이름 : % {파일 이름} : 메서드 이름 : % {메서드 이름} "이 출력 파일에 인쇄되었습니다. 반면에 예상되는 출력은 "파일 이름 : testFile이고 메소드 이름은 testMethod"입니다.

구성 파일의 출력에 codec => rubydebug를 추가하면 출력이 이미지로 첨부됩니다. output

제게 잘못 생각한 부분을 알려주십시오. 패턴 파일을 생성해야합니까 아니면 grok에 대한 기본 패턴 파일이 있습니까?

모든 도움을 주시면 감사하겠습니다.

감사합니다.

+0

이 [elastic.co 지원 스레드] (https://discuss.elastic.co/t/discover-field-names-with-spaces/37467/4)에 기반하여, 나는 낙담 할 것입니다. 공백을 사용하고 필드 이름에 일관성이없는 대문자 사용 전략을 사용하십시오 –

+0

'stdout {codec => "rubydebug"}'와 함께 실행하여 질문에 결과를 추가하십시오. –

+0

결과를 이미지로 질문으로 추가했습니다. –

답변

2

문제가 확인되었습니다. 문제는 GROK 패턴에서 사용한 명명 규칙에 따라 발생합니다. GROK 패턴에서 공백을 사용하면 문제가 발생했습니다.

이 grok 수 패턴을 사용하여 grok 수 패턴을
grok { 
    match => [ "message", "%{WORD:FileName} %{WORD:MethodName} %{NUMBER:Number1} %{NUMBER:Number2}" ] 
} 

을 수정, 내 문제가 해결 된 것입니다. 제안에 감사드립니다 https://stackoverflow.com/users/5216668/will-barnwell

관련 문제