CloudWatch 日志

AWS 监控与故障排查

John Q. Martin

Principal Consultant

核心概念:日志事件、日志流与日志组

  日志事件:单条记录,含时间戳、消息与摄取时间

  日志流:来自同一来源的一系列日志事件

  日志组:相关日志流的集合,共享保留与访问设置

 

  • /aws/lambda/function-name
  • /ecs/cluster-name/service-name
  • /var/log/application-name
AWS 监控与故障排查

CloudWatch Logs 架构

CloudWatch Logs 架构:从应用/代理到日志组与日志流,再到查询、导出与订阅

AWS 监控与故障排查

CloudWatch 日志 vs. 传统日志

CloudWatch 集中式日志与传统每台服务器 SSH + grep 日志对比

AWS 监控与故障排查

统一代理配置:EC2

 

EC2 上配置 CloudWatch 统一代理的四步流程:IAM 角色、安装、配置、启动

{
  "logs": {
    "logs_collected": {
      "files": {
        "collect_list": [
          {
            "file_path": "/var/log/application.log",
            "log_group_name": "/aws/ec2/application",
            "log_stream_name": "{instance_id}",
            "timezone": "UTC"
          }
        ]
      }
    }}}
AWS 监控与故障排查

Lambda 与 ECS 日志

 

Lambda:无需代理

  • 自动写入 /aws/lambda/function-name
  • 采集调用、耗时、stdout/stderr、错误
  • 使用结构化 JSON,便于查询

 

{
  "logDriver": "awslogs",
  "options": {
    "awslogs-group": "/ecs/my-application",
    "awslogs-region": "us-east-1",
    "awslogs-stream-prefix": "ecs",
    "awslogs-create-group": "true"
  }
}
AWS 监控与故障排查

度量筛选器入门

 

什么是度量筛选器?

  • 扫描日志事件匹配模式 → 发布 CloudWatch 指标
  • 连接日志与指标的桥梁
  • 在日志组上创建

 

使用场景

  • 统计错误出现次数
  • 从日志跟踪响应时间
  • 监控业务事件(订单、注册)
  • 从日志模式触发告警
AWS 监控与故障排查

筛选模式语法

 

三类度量筛选器模式:简单文本、空格分隔字段、JSON $ 符号点表示法

AWS 监控与故障排查

度量筛选器最佳实践

 

度量筛选器最佳实践:测试模式、默认值 0、分组命名空间、保持简单

AWS 监控与故障排查

CloudWatch Logs Insights 简介

 

什么是 Logs Insights?

  • CloudWatch Logs 内置的交互式查询服务
  • 可一次查询一个或多个日志组
  • 秒级返回结果,无需运维基础设施

 

三种支持的查询语言

  • CloudWatch Logs Insights QL
  • OpenSearch PPL(Piped Processing Language)
  • OpenSearch SQL
AWS 监控与故障排查

视频小结

 

  • CloudWatch Logs:集中式日志,事件 → 流 → 组
  • EC2:使用统一代理与 JSON 配置
  • Lambda:自动写日志,无需代理,使用结构化 JSON
  • ECS:任务定义中使用 awslogs 日志驱动
  • 度量筛选器:从日志模式提取 CloudWatch 指标
  • Logs Insights:交互式查询服务——我们将在视频 4 掌握查询
AWS 监控与故障排查

让我们一起练习吧!

AWS 监控与故障排查

Preparing Video For Download...