Индекс Elasticsearch создается с целым числом отображения типа поля, распознанным как “строка” в Kibana 4

Я создал индекс в elasticsearch 1.7 как это:

    curl -XPUT 'http://localhost:9200/test' -d '
{
    "test" : {
        "properties" : {
            "user" : {"type" : "string", "index" : "not_analyzed"},
            "message" : {"type" : "string", "null_value" : "na"},
            "syslogtimestamp" : {"type" : "date"},
            "transact" : {"type" : "integer"},
            "subscriber" : {"type" : "integer"},
            "pid" : {"type" : "integer"},
            "acquirertime" : {"type" : "float"}
        }
    }
}
'

Я заполняю его с данными из logstash как это:

filter {
  if [type] == "test" {
    grok {
      match => { "message" => "%{TEST}" }
    }
geoip {
      source => "clientip"
      target => "geoip"
      database => "/etc/logstash/GeoLiteCity.dat"
      add_field => [ "[geoip][coordinates]", "%{[geoip][longitude]}" ]
      add_field => [ "[geoip][coordinates]", "%{[geoip][latitude]}"  ]
    }
    mutate {
      convert => [ "[geoip][coordinates]", "float"]
    }

}
}

Pattern:
TEST %{MONTH:month} (?:(\s+|)) %{INT:day} %{TIME:time} (?<hostname>[a-z0-9_-]+) (?<application>[a-zA-Z0-9-_]+\.(cgi|pml|pfml)):(?:\s+)\[(?:(\s+|))%{INT:pid}\] %{IPORHOST:clientip} (?:\s+\()(?<acquirer>[a-zA-Z0-9_-]+)(?:(\s|))\) (?<event>[a-zA-Z0-9]+)(?:\s+)id=%{INT:transact}(?:\s+)sub=%{INT:subscriber}

Таким образом, я пытаюсь добраться, поле "проводят" отображенный в elasticsearch как целое число. Однако, когда я ищу поля i Kibana 4, все мои поля являются "строковыми" типами. Как это может быть?

0
задан 6 September 2015 в 14:32
1 ответ

Вам следует изучить шаблоны индекса ES здесь: https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-templates.html

Вы можете либо передать их с помощью logstash, либо передать их напрямую в elasticsearch через curl или конфигурация

0
ответ дан 5 December 2019 в 12:04

Теги

Похожие вопросы