2016-12-06 8 views
0

로그 파일이 있는데,이 파일을 telegraf.logparser으로 구문 분석 한 다음이를 influxdb로 보냅니다. 문제는 내 로그 파일이 완전한 문자열의 다양한 분야가있다 ..Grok, 다른 값을 사용하여 로그 처리

2016-12-06 11:13:34 job id: mHiMMDmCDFKDmGXNMhm, lrmsid: 13370 
2016-12-06 11:14:34 job id: seeeeeewsda33rfddSD, lrmsid: 13371 
2016-12-06 11:14:37 job id: dmABFKDmqKcNDmHBFKD, failure: "Timeout" 

내가

%{TIMESTAMP_ISO8601} job id: %{WORD:jobid}, lrmsid: {%WORD.lrmsid} 
or 
%{TIMESTAMP_ISO8601} job id: %{WORD:jobid}, failure: {%WORD.fail} 

하지만 내가 어떻게 할 수와 라인 모두 얻는 것을 단일 일치 수를 그 그렇다면 lrmsid는 lrmsid=null, and failure="Timeout"를 얻을 설정되어 있지 않습니다 .. 그리고 lrmsid는이 lrmsid=12345 and failure=null

답변

1

이 하나의 시도하십시오 설정되어있는 경우 :

(lrmsid: %{WORD:lrmsid})?(failure: "%{WORD:failure}")? 
을3210

아무 것도 놓치지 않았다면 lrmsid 또는 failure를 캡처해야합니다.

+0

예, "optional"필드가 도움이되었습니다! – user1908375

+0

"답변 수락"은 어떻습니까? ;) – deveth0

+0

올바른 구문은 다음과 같습니다.'(? :, 실패 : % {WORD : 실패})?' – user1908375