AWS 日志体系入门:CloudWatch、CloudTrail 与服务日志全景
AWS 日志中文入门:CloudWatch Logs(日志组/日志流/保留期/Insights 查询/告警)、RDS 等服务日志类型、CloudTrail 审计日志、S3 归档导出、日志最佳实践清单,以及观测云统一接入告警的落地方案。
AWS 日志生态以 CloudWatch Logs 为中枢,CloudTrail 管审计、各服务(RDS/ELB/VPC)产出专属日志、S3 承担归档。本文梳理这套体系的全貌与最佳实践,帮助你在 AWS 上建立完整的日志治理框架。
核心要点速览
- CloudWatch Logs 是枢纽:日志组(Log Group)→ 日志流(Log Stream)两级组织,保留期按组设置。
- CloudTrail ≠ CloudWatch:CloudTrail 记"谁调了什么 API"(审计),CloudWatch 记"系统运行产生什么"(运行)。
- 保留期必须主动设置:CloudWatch 默认永久保留——不设置就是成本黑洞。
- 最佳实践闭环:集中收集 → Insights 查询 → 告警(Alarms+SNS)→ S3 归档 → 定期审视策略。
1. AWS 服务都产生什么日志?
| 服务 | 主要日志 |
|---|---|
| RDS | 错误日志、慢查询日志、审计日志、通用日志(引擎相关) |
| Lambda | 每次调用的系统日志(START/END/REPORT)+ 应用输出 |
| CloudTrail | 账号内全部 API 调用与控制台登录事件 |
| ELB/ALB | 访问日志(写 S3) |
| VPC | Flow Logs(网络流记录) |
| ECS/EKS | 容器 stdout(经 awslogs/FireLens 驱动) |
RDS 的日志可在控制台查看下载,或发布到 CloudWatch Logs 流式分析;ALB/VPC 日志默认写 S3。
2. CloudWatch Logs 核心概念
- 日志组:一个应用/服务一个组(如
/aws/lambda/order-api); - 日志流:组内按实例/时间分流的日志序列;
- 保留期:按组设置(1 天到 10 年),默认"永不过期"必须改;
- CloudWatch Logs Insights:专用查询语言,按字段过滤、统计、出图:
fields @timestamp, @message | filter @message like /ERROR/ | stats count() by bin(5m)
3. 告警与可视化
- Metric Filter:把日志模式转成指标(如 ERROR 计数);
- CloudWatch Alarms:指标超阈值触发,经 SNS 发邮件/短信或调 Lambda 自动处置;
- Dashboards:指标、告警、日志查询结果同屏呈现。
4. 归档与外送
- 导出 S3:日志组创建导出任务,配合 S3 生命周期策略转 Glacier 降本;
- 订阅过滤器(Subscription Filter):日志组实时流向 Lambda/Kinesis/Firehose,再转发第三方平台——这是外送的标准机制;
- Kinesis Firehose:批量缓冲后写 S3/HTTP 端点,适合大流量。
5. AWS 日志最佳实践清单
- 所有服务日志集中收集,不留死角(包括 CloudTrail);
- 用 Insights 实时查询代替翻控制台;
- 关键模式配 Metric Filter + Alarm 告警;
- 保留期按日志组差异化设置,历史转 S3 归档;
- 日志加密与访问控制(IAM/KMS)到位;
- 定期审视日志策略,删无用日志源控成本。
观测云落地:AWS 日志统一接入
- 外送通道:CloudWatch 日志组配订阅过滤器 → Lambda/Firehose → 推送到观测云 HTTP 日志接收端;EC2 主机直接装 DataKit;EKS 以 DaemonSet 部署 DataKit。
- 解析标准化:JSON 日志自动解析;Pipeline 映射级别为标准
status、时间戳为time;按日志组/服务打标service。 - 统一告警:监控器对 AWS 各服务日志的错误模式设规则,告警策略路由钉钉/企业微信/飞书——多云告警收敛到一个通知体系。
- 成本优化:高价值日志在观测云标准索引;海量访问日志在 AWS 侧只留短保留 + 观测云低频索引/归档,避免双端重复长留。
常见问题(FAQ)
CloudTrail 和 CloudWatch 到底怎么分工?
CloudTrail 回答"谁动了我的 AWS 资源"(API 审计、合规);CloudWatch 回答"我的系统运行得怎么样"(运行日志、指标、告警)。两者都要,缺一不可。
CloudWatch 费用为什么超预期?
两大头:摄入量(按 GB)与长期保留。对策:设置保留期、裁剪低价值日志源、冷数据转 S3(便宜得多)、或外送观测云用多索引策略精细控本。
多云(AWS + 阿里云 + IDC)日志怎么统一看?
各云用各自外送机制(AWS 订阅过滤器、阿里 SLS 投递、IDC 用 DataKit 直采)汇入观测云,一个工作空间统一检索告警——避免在 N 个控制台之间跳来跳去。
RDS 日志直接查还是发 CloudWatch?
短期排障控制台直接看;需要告警、跨实例聚合、长期分析时发布到 CloudWatch Logs(或经订阅外送观测云),文件下载只适合一次性取数。
系列阅读
- 上一篇:Azure 日志实战
- 下一篇:AWS Lambda 日志实战
- 相关阅读:CloudTrail 日志实战 | 什么是日志管理