You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac Docker部署Metricbeat未生成每日新索引问题咨询

排查Metricbeat ILM未生成每日索引的问题

从你提供的配置和日志来看,核心问题出在ILM策略的滚动条件和索引命名格式配置上,下面一步步拆解并解决:

1. 先抓日志里的关键线索

你的日志里明确显示当前生效的ILM策略滚动条件是:

"rollover":{"max_age":"30d","max_size":"50gb"}

这意味着只有当索引存在满30天或者达到50GB时,才会触发滚动生成新索引,完全不符合你想要的每日生成新索引的需求。另外你配置的ilm.pattern: "{now/M{yyyy.MM}}-000001"是按月的命名格式,即使滚动也只会生成月度索引,不是每日的。

2. 修复步骤

步骤1:修正Metricbeat配置文件

更新metricbeat.yml里的ILM相关配置,调整滚动策略和索引命名格式:

#-------------------------- Elasticsearch output ------------------------------
output.elasticsearch:
  hosts: ["localhost:9200"]
  ilm.enabled: true
  # 改为按天的命名格式,匹配你要的metricbeat-7.5.0-2020.02.02-000001样式
  ilm.pattern: "{now/d{yyyy.MM.dd}}-000001"
  # 允许覆盖已存在的ILM策略(默认不覆盖,旧策略会一直生效)
  ilm.overwrite: true
# 允许覆盖已存在的索引模板,确保新的命名规则生效
setup.template.overwrite: true

步骤2:更新ILM策略(两种方式可选)

方式一:通过Metricbeat自动同步

重启Metricbeat后,因为你设置了ilm.overwrite: true,它会自动更新ILM策略的滚动条件为每日(如果Metricbeat内置的策略模板是按天配置的话)。

方式二:手动通过API修改策略(更精准)

用curl发送请求直接更新Elasticsearch里的metricbeat-7.5.0策略,确保滚动条件是1天:

curl -X PUT "https://YYY.azure.elastic-cloud.com:443/_ilm/policy/metricbeat-7.5.0" -H 'Content-Type: application/json' -d'
{
  "policy": {
    "phases": {
      "hot": {
        "actions": {
          "rollover": {
            "max_age": "1d",  # 改成1天触发滚动
            "max_size": "50gb" # 保留大小限制,可按需调整
          }
        }
      }
    }
  }
}'

步骤3:手动触发滚动(可选,立即生效)

如果你不想等24小时,想要马上生成新的每日索引,可以手动触发滚动操作:

curl -X POST "https://YYY.azure.elastic-cloud.com:443/metricbeat-7.5.0/_rollover"

3. 为什么之前没生效?

  • 旧的ILM策略滚动条件是30天,Metricbeat默认不会覆盖已存在的策略,所以修改配置后旧策略依然生效;
  • 你的ilm.pattern配置的是按月生成索引名,即使滚动也不会出现日期精确到天的索引;
  • 索引模板已存在且未被覆盖,新的命名规则无法应用到后续生成的索引。

内容的提问来源于stack exchange,提问作者DaiKeung

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 20:17:30