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

Logstash如何将Apache与应用日志分别输出到ES独立索引

Logstash 按日志类型分流写入ES独立索引配置方法

核心逻辑是先在过滤阶段区分Apache日志和应用日志,给两类日志打专属标识,再在输出阶段根据标识路由到不同索引。

配置调整步骤

  • 首先修改filter段逻辑,避免全局执行grok和json解析产生冗余错误标签,同时给日志打类型标记:
filter {
  # 优先匹配Apache标准组合日志格式
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
    tag_on_failure => ["_not_apache"]
  }

  # grok匹配成功即为Apache日志,打类型标记
  if "_not_apache" not in [tags] {
    mutate {
      add_field => { "log_category" => "apache" }
    }
  }
  # 匹配失败的走JSON解析,即为应用日志
  else {
    json {
      source => "message"
      remove_tag => ["_not_apache"]
    }
    mutate {
      add_field => { "log_category" => "application" }
    }
  }
}
  • 调整output段配置,根据log_category字段的值自动写入对应索引,这里默认配置了按日期滚动的索引名,方便日志生命周期管理:
output {
  elasticsearch {
    hosts => "http://elasticsearch-master:9200"
    index => "%{log_category}-logs-%{+YYYY.MM.dd}"
  }
}

配置生效后,Apache日志会写入apache-logs-年.月.日格式的索引,应用日志会写入application-logs-年.月.日格式的索引。如果不需要按日期滚动,直接把index配置里的-%{+YYYY.MM.dd}部分删掉即可。

补充说明:如果你的Beats采集端已经给不同日志加了自定义type字段,也可以直接用自带的type字段做路由判断,不需要在Logstash里重复打标。配置修改完成后记得重启Logstash服务,建议先拿测试日志验证分流规则正常再上线。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 07:03:16