如何從 CloudWatch Logs 中擷取日誌資料?

2 分的閱讀內容
0

我想要了解如何使用各種不同的方法 (如訂閱篩選條件、Logs Insights 查詢、S3 匯出、CloudWatch API 和將日誌下載為 CSV 檔案) 從 Amazon CloudWatch Logs 擷取日誌資料。

簡短說明

若要從 CloudWatch Logs 擷取日誌資料,請根據您的使用案例使用下列最佳實務:

  • 使用訂閱篩選條件串流日誌資料。
  • 執行 CloudWatch Logs Insights 查詢。
  • 將日誌資料匯出至 Amazon Simple Storage Service (Amazon S3)。
  • 使用 CloudWatch API。
  • 將日誌下載至 .csv 檔。

解決方法

使用訂閱篩選條件串流日誌資料

若要即時從 CloudWatch Logs 中擷取日誌資料,請使用訂閱篩選條件。日誌資料訂閱篩選條件可防止 CloudWatch API 限流。如需詳細資訊,請參閱透過訂閱即時處理日誌資料日誌群組層級訂閱篩選條件。如果是 Amazon Kinesis Data Streams,則會自動重試受到限流的服務 API。

執行 CloudWatch Logs Insights 查詢

若要搜尋和分析您的日誌資料,請在 CloudWatch Logs Insights 中執行查詢。查詢有助於您回應問題並找出原因,以進行進一步疑難排解。如需詳細資訊,請參閱使用 CloudWatch Logs Insights 分析日誌資料

將日誌資料匯出至 Amazon S3

您可以在批次使用案例中,將 CloudWatch Logs 資料匯出至 Amazon S3。日誌資料匯出最多可能需要十二小時才能從 CloudWatch Logs 使用。對於即時分析和處理,請使用訂閱篩選條件。

注意:PENDINGPENDING_CANCELRUNNING 狀態中,AWS 帳戶只能有一項日誌資料的匯出任務。

使用 CloudWatch API

若要手動找到您的日誌資料,請使用 GetLogEventsFilterLogEvents CloudWatch API。這些 API 因每秒交易 (TPS) 配額的原因而無法擴展。如需目前配額的資訊,請參閱 CloudWatch Logs 配額。如果您遇到 API 限流,請使用訂閱篩選條件。

將日誌下載至 .csv 檔

**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱 Troubleshoot AWS CLI errors。此外,請確認您使用的是最新的 AWS CLI 版本

若要以 .csv 檔案格式擷取日誌資料,請使用下列方法:

  • 使用 CloudWatch 主控台。
  • 使用 AWS CLI。
  • 使用 CloudWatch Logs Insights。

使用 CloudWatch 主控台

請完成下列步驟:

  1. 開啟 CloudWatch 主控台,然後選取您的日誌群組。
  2. 選擇包含您要下載的日誌事件的日誌串流。
  3. 選擇動作,然後選擇下載搜尋結果

使用 AWS CLI

若要以 .csv 檔案格式擷取日誌事件,請執行 get-log-events 命令:

注意: 請將 example-loggroup-name 取代為您的日誌群組名稱,並將 example-logstream-name 取代為您的日誌串流名稱。

aws logs get-log-events --log-group-name example-loggroup-name  --log-stream-name example-logstream-name  --start-time 1705147529 --end-time 1705233929 > log_events.csv

注意: .csv 檔案儲存在從中啟動命令的相同目錄內。此外,AWS CLI 也使用為工作站設定的預設 AWS 區域和設定檔。指定適當的區域。透過權杖有更多日誌事件可用時,GetLogEvents API 可能會執行空的結果。

使用 CloudWatch Logs Insights

請完成下列步驟:

  1. 執行查詢以擷取日誌資料。
  2. 視日誌數而定,請使用下列其中一種方法匯出資料:
    如果日誌不到 10,000 個,請選擇匯出結果
    如果日誌超過 10,000 個,請將日誌匯出至 Amazon S3 儲存貯體。然後,將資料下載至 .csv 檔案。
AWS 官方
AWS 官方已更新 7 個月前