針對排程查詢進行故障診斷 - Amazon CloudWatch Logs

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

針對排程查詢進行故障診斷

使用這些疑難排解主題來解決排程查詢的常見問題。

查詢執行失敗並出現許可錯誤

解決防止排程查詢執行或交付結果到目的地的許可錯誤。

當執行角色缺少從日誌群組讀取或寫入目的地資源的必要許可時,就會發生許可錯誤。

解決許可錯誤
  1. 確認執行角色具有目標日誌群組的 logs:GetQueryResultslogs:StartQuerylogs:DescribeLogGroups許可。

  2. 確定執行角色具有目的地資源的寫入許可 (例如 s3:PutObject S3 儲存貯體的 )。

  3. 檢查信任政策是否允許 CloudWatch Logs 擔任執行角色。角色應該信任其信任政策中的日誌服務主體 (logs.amazonaws.com)。

常見原因包括缺少 IAM 許可、政策中的資源 ARNs 不正確,或信任政策組態問題。

為了防止許可錯誤,在將排程查詢部署到生產環境之前,建立執行角色和測試許可時,請使用最低權限原則。

查詢逾時

解決排程查詢超過最大執行時間限制時發生的逾時錯誤。

當查詢需要超過 60 分鐘來處理指定的資料範圍時,就會發生查詢逾時,通常是由於大型資料集或複雜的查詢邏輯。

解決逾時錯誤
  1. 減少開始時間偏移,以在每次執行時處理較少的資料,以減少時間範圍。

  2. 在查詢的早期新增篩選條件來最佳化查詢,以減少處理的資料量。使用篩選條件索引來減少資料掃描大小。

  3. 考慮將複雜的查詢分成更簡單、更專注的查詢。

常見原因包括查詢大量時間範圍、處理大量日誌群組,或使用複雜的彙總而不進行適當的篩選。

為了防止逾時,請在 CloudWatch Logs Insights 中使用預期的資料磁碟區手動測試查詢,並在排程之前最佳化效能。

目的地處理失敗

解決排程查詢結果無法交付至設定目的地時發生的失敗。

當目標 Amazon S3 儲存貯體或 EventBridge 事件匯流排無法存取或設定不正確時,會發生目的地處理失敗。

解決查詢結果未發佈到目的地的失敗
  1. 確認指定的 Amazon S3 儲存貯體存在且可存取。

  2. 檢查目的地組態是否有正確的 URIs。

  3. 確保執行角色具有寫入目的地的必要許可。

常見原因包括已刪除或重新命名目的地資源、不正確URIs 或網路連線問題。

為了防止目的地失敗,請定期驗證目的地組態並監控目的地資源可用性。

無效的查詢錯誤

解決排程查詢字串中無法成功執行的語法和邏輯錯誤。

當查詢字串包含語法錯誤、參考不存在的欄位,或使用不支援的查詢語言功能時,會發生無效的查詢錯誤。

解決無效的查詢錯誤
  1. 在 CloudWatch Logs Insights 中手動測試查詢,以驗證語法和邏輯。

  2. 檢查目標日誌群組中是否存在所有參考的日誌欄位。

  3. 確認排程查詢支援您使用的查詢語言功能。

常見原因包括欄位名稱中的錯別字、查詢語法不正確,或使用排程執行環境中不支援的查詢功能。

為了防止無效的查詢錯誤,請務必在排程之前以互動方式測試查詢,並使用欄位探索功能來驗證欄位名稱。

查詢並行錯誤

當將並行錯誤視為排程查詢使用與 Cloudwatch Logs 洞見查詢相同的配額時,請注意以下幾點。建議您分散排程,以避免達到並行限制。

  • 配額:每個 AWS 帳戶最多可以同時執行 30 個 CloudWatch Logs Insights 查詢。

  • 儀表板:新增至 CloudWatch 儀表板的查詢也會計入此並行限制,因為它們會在載入或重新整理儀表板時執行。

  • OpenSearch Service PPL/SQL:在 30 個並行查詢中,子集 (目前為 15) 可以使用 OpenSearch PPL 或 OpenSearch SQL。

  • 跨帳戶查詢:並行配額適用於單一和跨帳戶查詢。使用 CloudWatch 跨帳戶可觀測性時,監控帳戶中針對連結來源帳戶啟動的查詢也會計入監控帳戶的並行限制。

  • 不常存取日誌群組:對於不常存取日誌類別中的日誌群組,並行 Logs Insights 查詢的數量上限為 5 個。