View a markdown version of this page

對 Amazon EKS 上的 Container Insights 進行故障診斷 - Amazon CloudWatch

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

對 Amazon EKS 上的 Container Insights 進行故障診斷

本節涵蓋您在 Amazon EKS 上設定或操作 Container Insights 時可能遇到的常見問題。無論您使用 OTel 還是 Classic 方法,都請使用下表和診斷命令來識別和解決問題。

如需特定方法的設定指引,請參閱 快速入門:Amazon EKS 上的 OTel Container Insights設定指南 (AWS CLI)。若要比較方法,請參閱 比較 Container Insights 方法

指標未顯示在 CloudWatch 中

如果您在ContainerInsights命名空間中看不到指標,請使用下表來識別原因。

徵狀 原因 Resolution
ContainerInsights 命名空間中沒有指標 IAM 角色缺少cloudwatch:PutMetricData許可 CloudWatchAgentServerPolicy受管政策連接至客服人員 IAM 角色。
指標對某些節點顯示,但對其他節點顯示 由於污點,代理程式 DaemonSet 未排程在所有節點上 將容錯新增至代理程式 DaemonSet,以允許在污點節點上排程。
指標停止顯示 代理程式 Pod 已 OOMKilled 或正在重新啟動 增加代理程式 Pod 資源規格中的記憶體限制。
指標為過時或零 網路連線已封鎖 檢查 VPC 安全群組,並確認 CloudWatch VPC 端點是否存在。
缺少增強型指標 代理程式未設定為增強可觀測性 在代理程式組態enhancedObservability: true中設定 。

代理程式 Pod 未啟動

如果代理程式 Pod 無法啟動或保持非執行中狀態,請使用下表來診斷問題。

徵狀 原因 Resolution
ImagePullBackOff 無法連線 Amazon ECR 或映像標籤不正確 驗證映像 URI 並確認節點可存取 Amazon ECR。
Pending 節點上的 CPU 或記憶體不足 擴展節點群組或減少代理程式 Pod 規格中的資源請求。
CrashLoopBackOff 無效的組態或缺少磁碟區掛載 透過在受影響的 Pod kubectl logs上執行 ,檢查 Pod 日誌是否有組態錯誤。
FailedScheduling 節點親和性或污點會阻止排程 檢閱 DaemonSet 規格中的 nodeSelector和 容錯。
結束程式碼 1 服務帳戶缺少 IRSA 註釋 確認服務帳戶具有 eks.amazonaws.com/role-arn註釋。

附加元件安裝失敗

如果附加amazon-cloudwatch-observability元件無法安裝或報告運作狀態不佳的狀態,請使用下表進行故障診斷。

徵狀 原因 Resolution
CREATE_FAILED 先前安裝的資源衝突 刪除衝突的資源,並在建立附加元件--resolve-conflicts OVERWRITE時使用 。
找不到 OIDC 提供者 叢集不存在 IAM OIDC 身分提供者 執行 來建立提供者eksctl utils associate-iam-oidc-provider
版本衝突 附加元件版本與 Kubernetes 版本不相容 執行 以列出相容的版本aws eks describe-addon-versions
DEGRADED 狀態 由於缺少許可,運作狀態檢查失敗 檢查 Pod 日誌,並確認 IRSA 角色已連接必要的政策。

日誌交付問題

如果容器日誌未出現在 Amazon CloudWatch Logs 中,請使用下表來識別原因。

徵狀 原因 Resolution
日誌群組不存在 缺少logs:CreateLogGroup許可 將 Amazon CloudWatch Logs 許可新增至代理程式 IAM 角色。
日誌群組存在,但空白 未為日誌設定代理程式,或區域不相符 確認代理程式組態包含日誌集合,且 區域符合您的叢集區域。
日誌延遲超過 5 分鐘 排清間隔太高或節點負載過重 減少代理程式組態中的force_flush_interval值。
缺少效能日誌 代理程式僅針對應用程式日誌設定 確認 Container Insights 效能日誌區段存在於代理程式組態中。

遷移特定問題

如果您在 Container Insights 方法之間遷移時遇到問題,請使用下表。如需完整的遷移工作流程,請參閱 遷移指南

徵狀 原因 Resolution
平行執行期間重複的指標 這兩種方法同時發佈指標 此行為預期會在平行執行期間發生。驗證新方法之後,請停用舊版方法。
方法之間的不同指標值 不同的計算方法 預期會有些微的差異 (低於 5%)。大差異表示方法之間的組態不相符。
轉返失敗 自訂組態未重新套用 當您轉返時,請重新套用完整的組態值。
警示在遷移期間觸發 轉換期間的指標差距 暫時將受影響警示notBreaching上遺失的資料處理設定為 。

OTel Container Insights 問題

以下是 OTel Container Insights 方法特有的問題。如需一般設定指引,請參閱 快速入門:Amazon EKS 上的 OTel Container Insights

徵狀 原因 Resolution
403 禁止的匯出工具錯誤 IAM 角色缺少 CloudWatch 許可 確認 CloudWatchAgentServerPolicy 已連接至客服人員角色。
指標端點上的連線遭拒 收集器無法連接 kubelet 確認hostNetwork: true已在 Pod 規格中設定 ,或確認服務帳戶具有必要的許可。
高記憶體用量 批次處理器佇列太大 減少收集器組態中的 batch/timeoutbatch/send_batch_size值。
自訂指標未顯示 未為應用程式端點設定接收器 新增 Prometheus 接收器,以收集器組態中的應用程式指標連接埠為目標。

一般診斷命令

使用下列命令來收集容器洞見部署的相關資訊。

若要檢查代理程式 Pod 狀態,請執行下列命令。

kubectl get pods -n amazon-cloudwatch

若要檢視代理程式 Pod 日誌,請執行下列命令。

kubectl logs -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent --tail=50

若要檢查代理程式 DaemonSet 狀態,請執行下列命令。

kubectl get daemonset -n amazon-cloudwatch

若要驗證服務帳戶的 IAM 角色,請執行下列命令。

kubectl get serviceaccount -n amazon-cloudwatch -o yaml

若要檢查叢集附加元件狀態,請執行下列命令。使用 Amazon EKS 叢集的名稱取代 cluster-name

aws eks describe-addon --cluster-name cluster-name --addon-name amazon-cloudwatch-observability

若要列出 Container Insights 日誌群組,請執行下列命令。使用 Amazon EKS 叢集的名稱取代 cluster-name

aws logs describe-log-groups --log-group-name-prefix "/aws/containerinsights/cluster-name"

如需在 Amazon EKS 上設定和操作 Container Insights 的詳細資訊,請參閱下列主題。