使用 CloudWatch Logs Insights 監控應用程式活動 - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 CloudWatch Logs Insights 監控應用程式活動

由 Ram Kandaswamy (AWS) 建立

Summary

此模式提供使用 Amazon CloudWatch Logs Insights 自動偵測和提醒應用程式例外狀況的解決方案。透過實作自動化日誌分析和提醒,您可以快速識別和回應生產環境中的應用程式問題。

日誌在監控系統行為、識別問題並確保最佳效能方面扮演重要角色。在遷移程序期間,日誌檔案對於驗證系統在新環境中的運作、偵測相容性問題,以及識別任何非預期行為來說非常寶貴。問題可能與操作或安全性有關。對於與安全相關的問題,儘早偵測未經授權的存取嘗試或可疑活動對於維護安全和法規合規至關重要。處理敏感資料或關鍵系統時,此功能特別重要。

對於需要維持高應用程式可用性並快速回應生產問題的團隊來說,此模式特別重要。它與各種產業和使用案例相關。例如,在電信中,它可以快速識別網路組態錯誤或中斷,並偵測次佳路由路徑,以精確找出潛在的擁塞。在物聯網 (IoT) 網域中,Greengrass 元件可以將日誌發佈至 CloudWatch,讓此技術擷取相關日誌詳細資訊,並在全方位儀表板中呈現。

先決條件和限制

先決條件

  • 部署在作用中的生產應用程式 AWS 帳戶

  • 基本了解生產應用程式的記錄格式和例外狀況模式

  • 設定為串流至 Amazon CloudWatch Logs 的應用程式日誌

限制

架構

下圖顯示 CloudWatch Logs Insights 如何評估資源日誌,並將相關資料視覺化傳送至 CloudWatch 儀表板。

CloudWatch Logs Insights 會評估資源日誌,並將資料視覺化傳送至儀表板。

該圖顯示以下工作流程:

  1. 資源會將日誌發佈至 CloudWatch Logs。資源可以包含 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體或 Amazon Simple Storage Service (Amazon S3) 儲存貯體等 AWS 資源。另一個範例包括已安裝 CloudWatch Agent 的現場部署系統,可將日誌發佈至 CloudWatch。

  2. 相關模式字串的 CloudWatch Logs Insights 篩選條件。搜尋模式字串的範例包括「錯誤」、「例外」或特定規則表達式。

  3. 一般而言,生產支援團隊或開發人員會將模式視覺化新增至 CloudWatch 儀表板。

自動化和擴展

開發人員可以使用 AWS Cloud Development Kit (AWS CDK)、 或 AWS SDKs 來處理多個字串模式 AWS CloudFormation,來自動化此模式的解決方案。團隊可以將此自動化納入其持續整合和部署 (CI/CD) DevOps 程序。

工具

AWS 服務

最佳實務

史詩

任務描述所需的技能

設定 IAM 許可。

若要設定 IAM 許可,請執行下列動作:

  1. 識別應用程式用於撰寫日誌的 IAM 角色,以及將建立儀表板、查詢和警示的使用者或服務。

  2. 針對應用程式角色,將下列 API 動作和資源新增至政策:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ] }
  3. 若要管理 CloudWatch 資源,請將下列項目新增至政策:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutDashboard", "cloudwatch:GetDashboard", "logs:StartQuery", "logs:StopQuery", "logs:GetQueryResults", "cloudwatch:PutMetricAlarm" ], "Resource": "*" } ] }

如需如何建立 IAM 政策或將許可新增至現有政策的詳細資訊,請參閱《IAM 使用者指南》中的使用客戶受管政策定義自訂 IAM 許可編輯 IAM 政策如需詳細資訊,請參閱《Amazon CloudWatch Logs 使用者指南》中的 Amazon CloudWatch Logs 和 CloudWatch Logs 許可參考的身分和存取管理CloudWatch Amazon CloudWatch

AWS 管理員、AWS DevOps、AWS 系統管理員、雲端管理員、雲端架構師、DevOps 工程師

建立 日誌群組

若要建立日誌群組,請使用下列任一選項:

AWS 管理員、AWS DevOps、AWS 系統管理員、雲端管理員、雲端架構師、DevOps 工程師

產生 CloudWatch Logs Insights 查詢。

若要建立和儲存 CloudWatch Logs Insights 查詢:

  1. 開啟 CloudWatch 主控台。

  2. 導覽至 Logs Insights

  3. 使用下列其中一種方法來建立查詢:

    • 查詢區段的範例查詢開始。

    • 撰寫自訂查詢。

    • 修改下列範例查詢:

      fields @timestamp, @message | filter @message like /(?i)exception/|stats count() by bin(30s)

      此查詢會檢查日誌檔案、擷取時間戳記和訊息內容、篩選單字「例外」(不區分大小寫),並以 30 秒的間隔計數出現次數。

AWS 管理員、AWS DevOps、AWS 系統管理員、雲端管理員、雲端架構師、DevOps 工程師

在 CloudWatch 儀表板中建立視覺化。

若要使用 CloudWatch 儀表板建立視覺化效果,請執行下列動作:

  1. 開啟 CloudWatch 主控台,並建立 CloudWatch 儀表板 (如果您還沒有儀表板) 或開啟現有的儀表板。

  2. 新增您的例外狀況監控視覺化效果。根據您的業務需求,提供長條圖、折線圖和圓餅圖。如需詳細資訊,請參閱《Amazon CloudWatch Logs 使用者指南》中的在 CloudWatch 儀表板上使用小工具Amazon CloudWatch 對於即時資料視覺化,您可以自訂小工具以符合您的需求。

如需儀表板選項和功能的詳細資訊,請參閱《Amazon CloudWatch Logs 使用者指南》中的使用 Amazon CloudWatch 儀表板使用儀表板變數建立靈活的 CloudWatch CloudWatch 儀表板。 Amazon CloudWatch

AWS 管理員、AWS DevOps、AWS 系統管理員、雲端管理員、雲端架構師、DevOps 工程師

故障診斷

問題解決方案

找不到查詢結果或查詢似乎已中斷

從從範例查詢修改的工作查詢開始。對部分查詢 (例如篩選條件或欄位) 執行小型增量變更,並利用 CloudWatch Logs 查詢產生器功能

日誌群組未建立日誌串流

在 IAM 政策中,請確定 CreateLogStreamCreateLogGroup 操作的資源具有萬用字元(*)值。如果沒有此萬用字元許可,create 操作將無法成功。

相關資源