Я пытаюсь реализовать ILM для индекса, чтобы правильно использовать оборудование, используя плагин вывода Elasticsearch. Похоже, я неправильно понимаю, как Logstash управляет ILM.
У меня в доке версия стека ELK 7.1.0. X-Pack активируется по пробной лицензии.
Шаблон индекса управляется выходным плагином Logstash Elasticsearch, а политика жизненного цикла индекса была создана с использованием Kibana.
Вот выходной раздел конвейера Logstash:
output {
elasticsearch {
hosts => ["http://eshost:9200"]
user => "logstash_writer"
password => "pass"
template => "/usr/share/logstash/es_templates/ilm-template.json"
template_name => "ilm-template"
template_overwrite => true
ilm_enabled => true
ilm_rollover_alias => "ilm-index"
ilm_pattern => "000001"
ilm_policy => "base-policy"
}
}
Пользователь logstash_writer
имеет роль по умолчанию logstash_writer
с разрешениями для управления ILM.
Шаблон индекса Elasticsearch ilm-template.json
:
{
"settings" : {
"index.number_of_replicas" : "1",
"index.number_of_shards" : "1",
"index.refresh_interval" : "5s"
}
}
Шаблон индекса Elasticsearch _template/ilm-template
, который фактически был создан Logstash:
{
"ilm-template" : {
"order" : 0,
"index_patterns" : [
"ilm-index-*"
],
"settings" : {
"index" : {
"lifecycle" : {
"name" : "base-policy",
"rollover_alias" : "ilm-index"
},
"refresh_interval" : "5s",
"number_of_shards" : "1",
"number_of_replicas" : "1"
}
},
"mappings" : { },
"aliases" : { }
}
}
Политика base-policy
, созданная с использованием Kibana:
{
"policy": {
"phases": {
"hot": {
"min_age": "0ms",
"actions": {
"rollover": {
"max_size": "100mb",
"max_docs": 100000
},
"set_priority": {
"priority": 100
}
}
},
"delete": {
"min_age": "2d",
"actions": {
"delete": {}
}
}
}
}
}
Я ожидаю, что набор индексов ilm-index-*
, но только ilm-index-000001
создается и постоянно растет, несмотря на ограничения base-policy
. Поэтому в Кибане я вижу только один индекс (ilm-index-000001
), связанный с base-policy
.