@chelius_ua

Почему Elasticsearch не верно ставит типы полей в индексе?

Всем привет. Стукнуло в голову сделать себе дашборд в кибане для наблюдения за работой haproxy, установл logstash, сделал конфиг, запустил.... В общем все ничего, проме того что elasticsearch в созданном индексе практически для всех полей ставит тип данных string, хотя в паттерне у логстеша прописаны все типы данных. Я почитал, что можно перестроить индекс с нужными типами данных, но выходит что каждый день нужно будет так делать...
Elasticsearch конфигурил не я, может в нем еще что-то нужно добавить? Спасибо
Конфиг файл для logstash
input {
file {
path => "/var/log/haproxy.log"
start_position => "end"
stat_interval => 1
discover_interval => 30
}
file {
path => "/var/log/haproxy.log.1"
start_position => "end"
stat_interval => 1
discover_interval => 30
}
}
filter {
grok {
patterns_dir => "/etc/logstash/conf.d/patterns"
match => { "message" => "%{HAPROXYHTTP}" }
}
}
output {
elasticsearch {
hosts => ["10.0.20.10:9200"]
index => "haproxy-%{+YYYY.MM.dd}"
}
}
  • Вопрос задан
  • 639 просмотров
Решения вопроса 1
@RidgeA
Эластика ставит тот тип данных для поля, которое определило при добавлении первого значения в это поле.
Для того, что бы указать какого типа должно быть поле в маппинге.
Маппинг на каждый день создавать не нужно - можно создать маппинг на wildcard название индекса или типа (запамятовал уже). Типа "indexname*", где * будет например "2017-05-30"
Посмотри в доке, где-то тут.
https://www.elastic.co/guide/en/elasticsearch/refe...
Logstash сам создает динамический маппинг для своего индекса, но он общего вида - там можно посмотреть как это должно выглядеть.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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