1

Я пытаюсь создать карту плитки на Кибане с точками местоположения GEO. По какой-то причине, когда я пытаюсь создать карту, я получаю следующее сообщение об Kibana:ELK - Kibana не распознает поле geo_point

Нет Совместимость полей: «Журналы» Индекс шаблон не содержит какие-либо из следующих типов полей: geo_point

Мои настройки:
Logstash (версия 2.3.1):

filter { 
    grok { 
     match => { 
      "message" => "MY PATTERN" 
     } 
    } 

    geoip { 
     source => "ip" 
     target => "geoip" 
     add_field => [ "location", "%{[geoip][latitude]}, %{[geoip][longitude]}" ] #added this extra field in case the nested field is the problem 
    } 
} 
output { 
    stdout { codec => rubydebug } 
    elasticsearch { 
     hosts => ["localhost:9200"] 
     index => "logs" 
    } 
} 

Когда входной журнал приходит, я могу видеть его разобрать его, как следует, и я получаю данные GeoIP для данного IP:

"geoip" => { 
      "ip" => "XXX.XXX.XXX.XXX", 
      "country_code2" => "XX", 
      "country_code3" => "XXX", 
      "country_name" => "XXXXXX", 
      "continent_code" => "XX", 
      "region_name" => "XX", 
       "city_name" => "XXXXX", 
       "latitude" => XX.0667, 
       "longitude" => XX.766699999999986, 
       "timezone" => "XXXXXX", 
     "real_region_name" => "XXXXXX", 
       "location" => [ 
      [0] XX.766699999999986, 
      [1] XX.0667 
     ] 
    }, 
    "location" => "XX.0667, XX.766699999999986" 

ElasticSearch (версия 2.3.1):
GET/журналы/_mapping возвращается:

{ 
    "logs": { 
     "mappings": { 
     "logs": { 
      "properties": { 
       "@timestamp": { 
        "type": "date", 
        "format": "strict_date_optional_time||epoch_millis" 
       }, 
       . 
       . 
       . 
       "geoip": { 
        "properties": { 
        . 
        . 
        . 
        "latitude": { 
         "type": "double" 
        }, 
        "location": { 
         "type": "geo_point" 
        }, 
        "longitude": { 
         "type": "double" 
        } 
        } 
       }, 
       "location": { 
        "type": "geo_point" 
       } 
      } 
     } 
     } 
    } 
} 

Kibana (версия 4.5.0):
Я вижу все данные, и кажется, что все будет в порядке. Просто, когда я иду в «Визуализация» -> «Tile карта» -> «С нового поиска» -> «Гео координаты», я получаю сообщение об ошибке:

No Compatible Fields: The "logs" index pattern does not contain any of the following field types: geo_point 

Даже Тхо я вижу в elasticsearch отображения что тип местоположения - geo_point. Что мне не хватает?

ответ

1

Обнаружена проблема! Я назвал индекс "logs". изменило имя индекса на «logstash-logs» (требуется префикс logstash- *), и все начало функционировать!

+1

Это быстрое решение, но не затрагивает проблему, если ваше имя индекса отличается. Это возможно, но вам нужно добавить шаблон - детали которого я не совсем уверен. –

+1

интересно ... если вы только читали из индекса, называли «logs», мне интересно, почему Kibana потребовал, чтобы шаблон индекса «logstash-logs» правильно читал ваши данные. Кажется, это сбой или некоторые неочевидные функциональные возможности. – Shuklaswag

Смежные вопросы