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

如何通过Fluentd仅将错误及警告日志推送至CloudWatch Log Groups

要解决这个问题,你需要修正日志解析规则并添加过滤逻辑,确保只有ERROR和WARNING级别的日志被推送到CloudWatch。以下是修正后的完整配置:

<source>
  @type tail
  path /var/log/*/*.log
  pos_file /var/log/td-agent/apps.pos
  tag disagg-logs
  <parse>
    @type regexp
    expression /(?<timestamp>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2},\d{3}) \| (?<pid>\d+) \| (?<function>[^|]+) \| (?<level>[^|]+) \| (?<field1>[^|]+) \| (?<field2>-?\d+) \| (?<field3>-?\d+) \| (?<field4>-?\d+) \| (?<field5>[^|]+) \| (?<message>[^|]+) \|/
  </parse>
</source>

<filter disagg-logs>
  @type grep
  <regexp>
    key level
    pattern ^(ERROR|WARNING)$
  </regexp>
</filter>

<match disagg-logs>
  @type cloudwatch_logs
  log_group_name disagg-logs
  log_stream_name disagg-logs
  auto_create_stream true
  region us-east-1
</match>

核心改动说明

  • 修复日志解析逻辑:原正则无法正确提取日志级别,新正则会解析日志中以|分隔的所有字段,其中专门提取出level字段对应日志的级别标识(INFO/ERROR/WARNING)
  • 新增日志过滤环节:通过grep类型的过滤器,只保留level字段值为ERROR或WARNING的日志,直接排除INFO及其他非目标级别的日志
  • 输出配置保持不变:CloudWatch的推送配置无需调整,过滤后的符合条件日志会正常推送到指定的Log Group

原配置的问题在于没有区分日志级别,所有读取到的日志都会被推送。通过解析出级别字段并添加过滤规则,就能精准实现只推送ERROR和WARNING日志的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 02:09:10