nginx 로그 파일의 출력을 잡고 logstash로 보내려고합니다.grok - 인용 문자열을 어떻게 찾습니까?
10.1.10.20 - bob [14/Feb/2014:18:57:05 +0000] “POST /main/foo.git/git-upload-pack HTTP/1.1” 200 3653189 “-” “git/1.8.3.4 (Apple Git–47)”
그록 잘 처음 3 개 단어를 찾을 수
10.1.10.20 - bob [14/Feb/2014:18:57:05 +0000]
%{IPV4:user_ip} - %{USERNAME:user_name} \[%{HTTPDATE:time_local}\]
grok 수 내가 그들을 결합 할 때
[14/Feb/2014:18:57:05 +0000] “POST /main/foo.git/git-upload-pack HTTP/1.1”
\[%{HTTPDATE:time_local}\] %{QUOTEDSTRING:request}
그러나 벌금 3, 4 단어를 발견하고 시도 할 수 있습니다 모두 4를 찾으려면 grok에 결과가 없음 (http://grokdebug.herokuapp.com/을 테스트 용으로 사용함)
10.1.10.20 - bob [14/Feb/2014:18:57:05 +0000] “POST /main/foo.git/git-upload-pack HTTP/1.1”
%{IPV4:user_ip} - %{USERNAME:user_name} \[%{HTTPDATE:time_local}\] %{QUOTEDSTRING:request}
#not found
누구나 위의 예에서 인용 된 문자열을 얻는 방법을 알고 있습니까?
저는 grok에 새로운 브랜드입니다. 따라서이 문제에 올바르게 접근하지 못하고 있습니다. 나는 다음과 같은 로그 라인을 사용하여 수동으로 URL을 입력하면
업데이트
는 흥미롭게도이
bob 14/Feb/2014:18:57:05 +0000 "herp"
#Once herp works, replace herp, with POST
bob 14/Feb/2014:18:57:05 +0000 "POST"
#Once POST works, keep expounding until the whole thing is in place
autobuild 14/Feb/2014:18:57:05 +0000 "POST /main/builder.git/git-upload-pack HTTP/1.1"
안녕하세요, 오른쪽 형식 형식 (예 : time_local 필드를 날짜로 인식)과 함께 elasticsearch에 데이터를 보내 주셨습니까? –