使用 Logstash Elasticsearch 输出插件的 ILM 不起作用
ILM using Logstash Elasticsearch output plugin doesn't work
我正在尝试使用 Elasticsearch 输出插件为索引实施 ILM 以正确使用硬件。看来我误解了 Logstash 是如何管理 ILM 的。
我在 docker 中有 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"
}
}
实际由 Logstash 创建的 Elasticsearch 索引模板_template/ilm-template
:
{
"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" : { }
}
}
使用 Kibana 创建的策略 base-policy
:
{
"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
有限制。所以我在 Kibana 中只看到一个与 base-policy
.
关联的索引 (ilm-index-000001
)
提供的配置正确。问题在于 max_size
和 max_docs
参数值较小时的解释。当 pri.store.size
和 docs.count
变得比 max_size
和 max_docs
.
中设置的大时,Elasticsearch 不会翻转索引
我正在尝试使用 Elasticsearch 输出插件为索引实施 ILM 以正确使用硬件。看来我误解了 Logstash 是如何管理 ILM 的。
我在 docker 中有 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"
}
}
实际由 Logstash 创建的 Elasticsearch 索引模板_template/ilm-template
:
{
"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" : { }
}
}
使用 Kibana 创建的策略 base-policy
:
{
"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
有限制。所以我在 Kibana 中只看到一个与 base-policy
.
ilm-index-000001
)
提供的配置正确。问题在于 max_size
和 max_docs
参数值较小时的解释。当 pri.store.size
和 docs.count
变得比 max_size
和 max_docs
.