CloudWatch Logs

การติดตามและแก้ไขปัญหาบน AWS

John Q. Martin

Principal Consultant

แนวคิดหลัก: log event, stream และ group

  log event แสดงเป็นระเบียนเดียวที่มี timestamp ข้อความ และเวลาที่รับข้อมูล

  log stream แสดงเป็นลำดับของ log event จากแหล่งเดียว

  log group แสดงเป็นกลุ่มของ log stream ที่เกี่ยวข้องกัน โดยใช้การตั้งค่า retention และสิทธิ์การเข้าถึงร่วมกัน

 

  • /aws/lambda/function-name
  • /ecs/cluster-name/service-name
  • /var/log/application-name
การติดตามและแก้ไขปัญหาบน AWS

สถาปัตยกรรม CloudWatch Logs

สถาปัตยกรรม CloudWatch Logs ตั้งแต่ application agent ไปจนถึง log group และ stream จากนั้นเป็น query, export และ subscription

การติดตามและแก้ไขปัญหาบน AWS

CloudWatch Logs เทียบกับการ logging แบบดั้งเดิม

การ logging แบบรวมศูนย์ด้วย CloudWatch เทียบกับการ logging แบบดั้งเดิมที่ใช้ SSH และ grep ต่อเซิร์ฟเวอร์

การติดตามและแก้ไขปัญหาบน AWS

การตั้งค่า Unified Agent: EC2

 

ขั้นตอนการติดตั้ง CloudWatch unified agent บน EC2 แบบ 4 ขั้น ตั้งแต่ IAM role ไปจนถึงการติดตั้ง กำหนดค่า และเริ่มใช้งาน

{
  "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

การ logging สำหรับ Lambda และ ECS

 

Lambda: ไม่ต้องติดตั้ง agent

  • บันทึก log อัตโนมัติไปที่ /aws/lambda/function-name
  • เก็บข้อมูล invocation, duration, stdout/stderr และ error
  • ใช้ JSON แบบมีโครงสร้างเพื่อให้ query ได้ง่ายขึ้น

 

{
  "logDriver": "awslogs",
  "options": {
    "awslogs-group": "/ecs/my-application",
    "awslogs-region": "us-east-1",
    "awslogs-stream-prefix": "ecs",
    "awslogs-create-group": "true"
  }
}
การติดตามและแก้ไขปัญหาบน AWS

แนะนำ metric filter

 

Metric filter คืออะไร?

  • สแกน log event ตามรูปแบบ → เผยแพร่ metric ไปยัง CloudWatch
  • เชื่อมโยงระหว่าง log และ metric
  • สร้างบน log group

 

กรณีการใช้งาน

  • นับจำนวนครั้งที่เกิด error
  • ติดตาม response time จาก log
  • ตรวจสอบ event ทางธุรกิจ (ออเดอร์, การสมัครสมาชิก)
  • ส่งข้อมูลให้ alarm จาก log pattern
การติดตามและแก้ไขปัญหาบน AWS

ไวยากรณ์ filter pattern

 

รูปแบบ filter pattern 3 แบบ ได้แก่ ข้อความธรรมดา, ฟิลด์คั่นด้วยช่องว่าง และ JSON แบบ dollar-dot notation

การติดตามและแก้ไขปัญหาบน AWS

แนวปฏิบัติที่แนะนำสำหรับ metric filter

 

แนวปฏิบัติที่แนะนำสำหรับ metric filter: ทดสอบ pattern, ตั้งค่าเริ่มต้นเป็น zero, จัดกลุ่ม namespace และทำให้ pattern เรียบง่าย

การติดตามและแก้ไขปัญหาบน AWS

แนะนำ CloudWatch Logs Insights

 

Log Insights คืออะไร?

  • บริการ query แบบโต้ตอบภายใน CloudWatch Logs
  • Query log group เดียวหรือหลาย group พร้อมกันได้
  • ได้ผลลัพธ์ในไม่กี่วินาที ไม่ต้องจัดการ infrastructure

 

ภาษา query ที่รองรับ 3 ภาษา

  • CloudWatch Logs Insights QL
  • OpenSearch PPL (Piped processing Language)
  • OpenSearch SQL
การติดตามและแก้ไขปัญหาบน AWS

สรุปเนื้อหา

 

  • CloudWatch Logs: logging แบบรวมศูนย์ด้วย log event → stream → group
  • EC2: Unified Agent พร้อม JSON config
  • Lambda: อัตโนมัติ ไม่ต้องติดตั้ง agent ใช้ structured JSON logging
  • ECS: awslogs log driver ใน task definition
  • Metric filter: ดึง CloudWatch metric จาก log pattern
  • Log Insights: บริการ query แบบโต้ตอบ — จะเจาะลึก query ใน video 4
การติดตามและแก้ไขปัญหาบน AWS

มาฝึกกันเถอะ!

การติดตามและแก้ไขปัญหาบน AWS

Preparing Video For Download...