2015-10-30 3 views
1

Я хочу, чтобы мои строки были not_analyzed как для поиска, так и для визуализации в Кибане.Выполнение строк not_analyzed для Kibana

Я создал пользовательский шаблон elasticsearch-template.json, чтобы установить значение по умолчанию для строк not_analyzed, и я указал на это в моем файле logstash-log4j.conf. Вот elasticsearch-template.json:

{ 
    "template" : "logstash-*", 
    "settings" : { 
    "index.refresh_interval" : "5s" 
    }, 
    "mappings" : { 
    "_default_" : { 
     "_all" : {"enabled" : true, "omit_norms" : true}, 
     "dynamic_templates" : [ { 
     "message_field" : { 
      "match" : "message", 
      "match_mapping_type" : "string", 
      "mapping" : { 
      "type" : "string", "index" : "analyzed", "omit_norms" : true 
      } 
     } 
     }, { 
     "string_fields" : { 
      "match" : "*", 
      "match_mapping_type" : "string", 
      "mapping" : { 
      "type" : "string", "index" : "not_analyzed", "omit_norms" : true, 
      } 
     } 
     } ], 
     "properties" : { 
     "@version": { "type": "string", "index": "not_analyzed" }, 
     "geoip" : { 
      "type" : "object", 
      "dynamic": true, 
      "properties" : { 
       "location" : { "type" : "geo_point" } 
      } 
     } 
     } 
    } 
    } 
} 

У меня есть этот файл в том же каталоге, как мой logstash-log4j.com, который содержит:

output { 
    stdout { 
    codec => rubydebug 
    } 
    elasticsearch { 
    cluster => 'hlt_logs' 
    index => 'logstash-symphony' 
    template => "/elk/logstash/current/elasticsearch-template.json" 
    } 
} 

я удалил и заменил индекс elasticsearch с помощью завиток после внесения этих изменений:

curl -XDELETE -i 'http://localhost:9200/logstash-symphony' 
    curl -XPUT -i 'http://localhost:9200/logstash-symphony' 

Я добавил некоторые новые журналы и пошел себе в Kibana, но я все еще получаю мои строки, как проанализированные полей. Что мне не хватает?

+0

Таким образом, API-интерфейсы API-интерфейса API показывают, что сопоставления воссозданного индекса неверны? Вы проверили с API-интерфейсом get index, который Logstash действительно обновил шаблон индекса, прежде чем воссоздать индекс? –

+0

проверить отображение с помощью: curl -XGET 'http: // localhost: 9200/logstash-symphony/_mapping /? Pretty = true' – markus

+0

@markus, при каких обстоятельствах это нужно будет переделать? Если мы остановимся и перезапустим кибану? Если мы перезагрузим хост-машину? – PurpleVermont

ответ

0

Параметр template выходного плагина elasticsearch может использоваться для обеспечения вашего index template, который будет использоваться Elasticsearch при создании нового индекса Logstash.

+0

Я думаю, что я уже сделал это, и это не сработало. 'template =>" /elk/logstash/current/elasticsearch-template.json "' – PurpleVermont

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