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

Logstash添加自动删除字段异常排查及TTL配置咨询

问题解答

1. 错误信息位置与语法问题

  • 错误日志位置:Logstash的错误日志默认存放在安装目录下的logs/logstash-plain.log(Linux系统),Windows系统则是logs\logstash-plain.log;也可以在启动Logstash时通过命令参数指定自定义日志路径。
  • 语法错误:你的配置存在问题——add_field是特定过滤器插件(比如mutate)的子配置项,不能直接作为filter块的顶级配置内容。这种语法错误会导致Logstash无法正常处理事件,甚至启动失败,所以ElasticSearch中没有日志写入。

2. 正确实现Elasticsearch文档自动删除的方法

注意:Elasticsearch 2.0版本后已逐步弃用_ttl字段,官方推荐使用**索引生命周期管理(ILM)**来自动管理文档生命周期(包括删除过期文档)。以下分两种场景说明:

场景1:使用支持_ttl的旧版Elasticsearch

要在Logstash中正确添加_ttl字段,需要借助mutate插件,修改后的filter配置如下:

filter {
    if "drop" in [message] {
        drop { }
    }

    mutate {
        add_field => { "_ttl" => "120s" }
    }
}

同时需要确保目标Elasticsearch索引已开启_ttl功能(默认可能关闭),可通过以下请求修改索引设置:

PUT /你的索引名/_settings
{
    "index.ttl.enabled": true
}

场景2:使用新版Elasticsearch(推荐ILM方式)

  1. 创建生命周期策略:定义数据在2分钟后进入删除阶段
PUT _ilm/policy/auto_delete_policy
{
  "policy": {
    "phases": {
      "hot": {
        "actions": {
          "set_priority": {
            "priority": 100
          }
        }
      },
      "delete": {
        "min_age": "2m",
        "actions": {
          "delete": {}
        }
      }
    }
  }
}
  1. 创建索引模板,将策略关联到目标索引:
PUT _index_template/auto_delete_template
{
  "index_patterns": ["你的索引匹配规则*"],
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 0,
    "index.lifecycle.name": "auto_delete_policy"
  }
}
  1. Logstash输出配置:确保输出到匹配上述模板的索引即可,无需再添加_ttl字段,ILM会自动处理过期文档的删除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 22:54:17