使用 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_sizemax_docs 参数值较小时的解释。当 pri.store.sizedocs.count 变得比 max_sizemax_docs.

中设置的大时,Elasticsearch 不会翻转索引