繼Nginx的神交模式是我Nginx的日誌格式爲logstash
log_format timed_combined '$ HTTP_X_FORWARDED_FOR - $ REMOTE_USER [$ time_local]' ' 「$要求」 $狀態$ body_bytes_sent' 「」 $ http_referer「」$ http_user_agent「' '$ request_time $ upstream_response_time $ pipe';
以下爲Nginx的日誌記錄(供參考)
- - test.user [26/May/2017:21:54:26 +0000] "POST /elasticsearch/_msearch HTTP/1.1" 200 263 "https://myserver.com/app/kibana" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36" 0.020 0.008 .
以下爲logstash神交圖案
NGUSERNAME [a-zA-Z\.\@\-\+_%]+
NGUSER %{NGUSERNAME}
NGINXACCESS %{IPORHOST:clientip} - - \[%{HTTPDATE:timestamp}\] \"(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})?|%{DATA:rawrequest})\" %{NUMBER:response} (?:%{NUMBER:bytes}|-) %{QS:referrer} %{QS:agent} %{NUMBER:request_time} %{NUMBER:upstream_time}
錯誤logstash日誌中找到
「status」=> 400,「error」=> {「type」=>「mapper_parsing_exception」, 「reason」=>「無法解析[timestamp]」, 「caused_by」=> {「type 「=>」illegal_argument_exception「,」reason「=>」無效 格式:\「26/May/2017:19:28:14 -0400 \」格式不正確 \// May/2017:19:28:14 -0400 \」
Issue: - Nginx logs are not getting grokked.
Requirement: - Timestamp should be filtered into a particular field.
什麼是錯誤的,我的配置?如何解決這個錯誤?
我使用Grok調試器修改了Grok模式。現在,grok過濾器與日誌匹配。但是,仍然有同樣的錯誤。 ** />「=> {」type「=>」illegal_argument_exception「,」reason「=>」格式無效:「29/May/2017:22:53:37 -0400 \」格式錯誤「/ May/2017:22:53:37 -0400「** @breml –
我不認爲這個錯誤是由Grok模式引起的,但是Logstash配置中的其他部分。所以沒有進一步的細節,就不可能回答你關於上述錯誤的問題。 – breml
我在全新的測試服務器中嘗試了相同的配置。它工作正常。所以,我認爲彈性搜索reindexing將在這種情況下工作。這些衝突在我修改了Nginx日誌模式(添加了原始客戶端IP的參數並增加了響應時間)後開始發生。你認爲這可能是導致這個錯誤的原因嗎? –