CloudWatch Logs

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 簡介

 

什麼是 Log Insights?

  • CloudWatch Logs 內建的互動式查詢服務
  • 可同時查詢一個或多個日誌群組
  • 秒級回應,無基礎設施需管理

 

三種支援的查詢語言

  • CloudWatch Logs Insights QL
  • OpenSearch PPL(Piped Processing Language)
  • OpenSearch SQL
AWS 監控與疑難排解

影片重點整理

 

  • CloudWatch Logs:集中式日誌,事件 → 串流 → 群組
  • EC2:使用統一代理與 JSON 設定
  • Lambda:自動記錄,無須代理,建議用結構化 JSON
  • ECS:在工作定義中使用 awslogs 日誌驅動
  • 度量篩選:由日誌樣式擷取 CloudWatch 指標
  • Log Insights:互動式查詢服務——第 4 支影片會帶你熟悉查詢
AWS 監控與疑難排解

一起來練習吧!

AWS 監控與疑難排解

Preparing Video For Download...