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

如何过滤CloudWatch INFO日志 降低AWS账号IMR成本

AWS CloudWatch 过滤INFO级日志、仅保留ERROR级日志降低IMR成本配置方案

从成本最优角度,按优先级从高到低选以下方案即可,核心原则是尽量在日志上报到CloudWatch存储前就丢弃INFO日志,避免产生摄入、存储、检索全链路的IMR费用,不要等日志存入日志组后再做查询侧过滤,这类操作不会降低任何成本。

  • 方案1:应用层直接关闭INFO日志输出(成本最低,无额外开销)
    如果你能控制业务代码的日志配置,直接修改日志框架的输出级别为ERROR及以上,从源头不生成INFO类请求日志,不需要额外配置CloudWatch侧规则。
    常见日志框架配置示例:

    <!-- Logback配置示例,生产环境root日志级别设为ERROR -->
    <root level="ERROR">
      <appender-ref ref="CloudWatchAppender" />
    </root>
    
    # Python logging配置示例
    import logging
    logging.basicConfig(level=logging.ERROR)
    
  • 方案2:CloudWatch Agent采集侧过滤(适用于EC2、自建服务器上的业务)
    如果业务部署在自己管理的主机上,通过CloudWatch Agent上报日志,直接修改Agent配置文件,添加采集过滤规则,在Agent采集环节就丢弃带[INFO]标记的日志,不上报到CloudWatch:

    [logs.filters.app_log_filter]
      # 匹配到[INFO]标记的日志直接丢弃
      drop = ["\\[INFO\\]"]
      # 仅保留需要留存的日志级别
      keep = ["\\[ERROR\\]", "\\[WARN\\]", "\\[FATAL\\]"]
    

    修改完成后执行sudo amazon-cloudwatch-agent-ctl -a restart重启Agent即可生效。

  • 方案3:日志组摄入层过滤(适用于Lambda、ECS、ALB等AWS托管服务上报的日志)
    对于没法修改上报端配置的托管服务日志,直接在对应日志组配置摄入过滤规则,日志到达CloudWatch后会先经过规则匹配,匹配到INFO的日志直接丢弃,不会写入存储产生费用:

    1. 进入CloudWatch控制台,打开目标日志组详情页
    2. 找到「日志转换」板块,选择「添加摄入过滤器」
    3. 过滤规则选择自定义匹配,匹配表达式填写\[INFO\],匹配动作选择「丢弃匹配的日志事件」
    4. 将该规则优先级调整为最高,保存配置后新上报的日志就会自动按规则过滤

踩坑提醒:不要用CloudWatch Insights查询过滤、指标过滤器这类查询侧的功能实现日志筛选,这类操作只是让你看不到INFO日志,日志已经完成摄入、存入存储层,IMR相关费用会正常计算,达不到降本的目的。

配置完成后可将日志组的历史日志保留周期调整为7-30天(根据自身合规需求设置),删除已存储的历史INFO日志,进一步压缩存储成本。配置生效24小时后可查看CloudWatch账单的日志摄入字节数指标,确认过滤规则生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 07:36:18