Ниже приведен мой формат журнала Nginx.
log_format timed_combined '$ http_x_forwarded_for - $ remote_user [$ time_local]' '"$ request" $ status $ 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 grok.
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}
В журнале регистрации обнаружена ошибка
"status" => 400, "error" => {"type" => "mapper_parsing_exception", "reason" => "не удалось проанализировать [временную метку]", "called_by" => {"type" => "незаконный_аргумент_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.
Что не так в моей конфигурации? Как исправить эту ошибку?