如何降低GCP中Cloud SQL的日志成本?配置过滤INFO级日志方法
降低GCP Cloud SQL日志记录成本:过滤INFO级日志方案
你可以从Cloud SQL实例层面和Cloud Logging层面两种途径实现只记录INFO级别以上的日志,具体操作如下:
一、Cloud SQL实例层面直接调整日志级别
从源头减少INFO级日志生成,是最直接的成本控制方式:
针对MySQL实例
- 进入GCP控制台的Cloud SQL页面,选中目标实例
- 点击"编辑"按钮,找到数据库标志区域
- 添加以下配置:
- 设置
log_error_verbosity为2:该参数控制错误日志详细程度,值为2时仅记录ERROR及以上级别日志(默认值3包含INFO级) - 若无需通用查询日志,可关闭
general_log(设为OFF):通用日志会产生大量INFO级查询记录,关闭后能大幅削减日志量
- 设置
- 保存配置并重启实例,设置生效
针对PostgreSQL实例
- 进入目标Cloud SQL实例的编辑页面,找到数据库标志区域
- 添加
log_min_messages标志,设置值为error(或更严格的fatal):该参数控制写入日志的最低级别,设为error后仅记录ERROR及以上日志 - 保存配置并重启实例
针对SQL Server实例
- 在实例编辑页面的数据库标志区域,添加
errorlog_level标志,设置值为1(仅记录ERROR及以上) - 保存并重启实例
二、Cloud Logging层面设置日志排除规则
如果不想修改实例配置,或需要更灵活的过滤策略,可通过Cloud Logging的排除规则过滤已生成的INFO级日志:
- 进入GCP控制台的Cloud Logging页面,切换到日志排除标签页
- 点击"创建排除项",填写名称、描述等基本信息
- 在过滤条件中输入以下语句,精准匹配Cloud SQL的INFO级日志:
若要针对特定实例过滤,可追加实例ID条件:resource.type="cloudsql_database" severity="INFO"resource.type="cloudsql_database" severity="INFO" resource.labels.database_id="你的项目ID:实例ID" - 选择排除规则的应用范围,保存后新产生的INFO级日志将不再被存储和计费
注意事项
- 调整实例日志级别前,务必确认业务排查问题时不需要INFO级日志,避免影响故障定位
- 日志排除规则仅对生效后的新日志有效,已存储的历史INFO日志不会被删除
- 两种方式可结合使用,进一步优化日志成本
内容的提问来源于stack exchange,提问作者Ananth
相关产品推荐
相关产品推荐

