继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的参数并增加了响应时间)后开始发生。你认为这可能是导致这个错误的原因吗? –