Данные Logstash Grokked не достигают ElasticSearch

У меня простая настройка Logstash 1.4.1, и данные в стандартном выводе кажутся правильными, но в ES/Kibana поле «сообщение» не перезаписывается.

logstash.conf

input {
  file {
    path => "/var/log/nginx/access.log"
    type => "nginx_access"
  }
}

filter {
  if [type] == "nginx_access" {
    grok {
      match => [ "message", "%{NGINXACCESS}" ]
      overwrite => [ "message" ]
    }
  }
}

output {
  elasticsearch {
    protocol => "http"
  }
  stdout { codec => rubydebug }
}

Шаблон Nginx

NGUSERNAME [a-zA-Z\.\@\-\+_%]+
NGUSER %{NGUSERNAME}
NGINXACCESS %{IPORHOST:clientip} %{NGUSER:ident} %{NGUSER:auth} \[%{HTTPDATE:timestamp}\] "%{WORD:verb} %{URIPATHPARAM:request} HTTP/%{NUMBER:httpversion}" %{NUMBER:response} (?:%{NUMBER:bytes}|-) (?:"(?:%{URI:referrer}|-)"|%{QS:referrer}) %{QS:agent}

стандартный вывод

{
        "message" => "127.0.0.1 - - [27/Nov/2014:13:43:53 +0100] \"GET /favicon.ico HTTP/1.1\" 502 574 \"-\" \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36\"",
       "@version" => "1",
     "@timestamp" => "2014-11-27T12:43:54.230Z",
           "type" => "nginx_access",
           "host" => "laptop",
           "path" => "/var/log/nginx/access.log",
       "clientip" => "127.0.0.1",
          "ident" => "-",
           "auth" => "-",
      "timestamp" => "27/Nov/2014:13:43:53 +0100",
           "verb" => "GET",
        "request" => "/favicon.ico",
    "httpversion" => "1.1",
       "response" => "502",
          "bytes" => "574",
          "agent" => "\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36\""
}

Что я делаю не так? Как я могу отлаживать?

ИЗМЕНИТЬ

Get API показывает, что поля находятся в _source, который не индексируется. Что делать?

{  
   "_index":"logstash-2014.11.27",
   "_type":"nginx_access4",
   "_id":"AUnxR34Z5DzKTB-2TeuG",
   "_version":1,
   "found":true,
   "_source":{  
      "message":"127.0.0.1 - - [27/Nov/2014:13:43:53 +0100] \"GET / HTTP/1.1\" 502 574 \"-\" \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36\"",
      "@version":"1",
      "@timestamp":"2014-11-27T12:43:54.230Z",
      "type":"nginx_access",
      "host":"laptop",
      "path":"/var/log/nginx/access.log",
      "clientip":"127.0.0.1",
      "ident":"-",
      "auth":"-",
      "timestamp":"27/Nov/2014:13:43:53 +0100",
      "verb":"GET",
      "request":"/",
      "httpversion":"1.1",
      "response":"502",
      "bytes":"574",
      "agent":"\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36\""
   }
}

person Jasper    schedule 27.11.2014    source источник


Ответы (1)


Помогла перезагрузка списка полей моего шаблона индекса. Я создал его перед записью каких-либо данных.

person Jasper    schedule 27.11.2014