執行期監控故障診斷 - Amazon Elastic Container Service

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

執行期監控故障診斷

您可能需要對任務和容器上的執行期監控已啟用和執行,進行故障診斷或驗證。

如何判斷我的帳戶是否已啟用執行期監控?

在 Amazon ECS 主控台中,資訊位於帳戶設定頁面上的 中。

您也可以list-account-settings使用 effective-settings選項執行 。

aws ecs list-account-settings --effective-settings

輸出

名稱設為 guardDutyActivate設為 on 表示帳戶已設定。您必須向您的 GuardDuty 管理員確認管理是自動還是手動。

{ "setting": { "name": "guardDutyActivate", "value": "enabled", "principalArn": "arn:aws:iam::123456789012:root", "type": "aws-managed" } }

如何判斷叢集上的執行期監控是否處於作用中狀態?

您可以在 GuardDuty 主控台中檢閱涵蓋範圍統計資料。這包括與您自己的 帳戶或成員帳戶相關聯的 Amazon ECS 資源資訊,是所選叢集中運作狀態良好的叢集百分比 AWS 區域。這包括使用 Fargate 和 EC2 啟動類型的叢集涵蓋範圍。如需詳細資訊,請參閱《Amazon GuardDuty 使用者指南》中的檢閱涵蓋範圍統計資料

如何判斷 GuardDuty 安全代理程式是否正在 Fargate 任務上執行?

GuardDuty 安全代理程式會做為 Fargate 任務的附屬容器執行。

在 Amazon ECS 主控台中,附屬項目會顯示在任務詳細資訊頁面上的容器下方。

您可以執行describe-tasks並尋找名稱設為 aws-gd-agentlastStatus 設為 的容器RUNNING

下列範例顯示任務 的預設叢集輸出aws:ecs:us-east-1:123456789012:task/0b69d5c0-d655-4695-98cd-5d2d5EXAMPLE

aws ecs describe-tasks --cluster default --tasks aws:ecs:us-east-1:123456789012:task/0b69d5c0-d655-4695-98cd-5d2d5EXAMPLE

輸出

名為 的容器gd-agent處於 RUNNING 狀態。

"containers": [ { "containerArn": "arn:aws:ecs:us-east-1:123456789012:container/4df26bb4-f057-467b-a079-96167EXAMPLE", "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/0b69d5c0-d655-4695-98cd-5d2d5EXAMPLE", "lastStatus": "RUNNING", "healthStatus": "UNKNOWN", "memory": "string", "name": "aws-gd-agent" } ]

如何判斷 GuardDuty 安全代理程式是否在 EC2 容器執行個體上執行?

執行下列命令以檢視狀態:

sudo systemctl status amazon-guardduty-agent

日誌檔案位於下列位置:

/var/log/amzn-guardduty-agent

當叢集上執行的任務沒有任務執行角色時,會發生什麼情況?

對於 Fargate 任務,任務在沒有 GuardDuty 安全代理程式附屬容器的情況下啟動。GuardDuty 儀表板會在涵蓋範圍統計資料儀表板中顯示任務缺少保護。

如何判斷我是否具有標記叢集以進行執行期監控的正確許可?

若要標記叢集,您必須同時擁有 CreateClusterecs:TagResource的動作UpdateCluster

以下是範例政策的程式碼片段。

{ "Statement": [ { "Effect": "Allow", "Action": [ "ecs:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "ecs:CreateAction" : "CreateCluster", "ecs:CreateAction" : "UpdateCluster", } } } ] }

沒有連線 Amazon ECR 時會發生什麼情況?

對於 Fargate 任務,任務在沒有 GuardDuty 安全代理程式附屬容器的情況下啟動。GuardDuty 儀表板會在涵蓋範圍統計資料儀表板中顯示任務缺少保護。

啟用執行期監控後,如何解決 Fargate 任務上的記憶體不足錯誤?

GuardDuty 安全代理程式是一種輕量型程序。不過,程序仍會根據工作負載的大小耗用資源。我們建議您使用容器資源追蹤工具,例如 Amazon CloudWatch Container Insights,在您的叢集中暫存 GuardDuty 部署。這些工具可協助您探索應用程式 GuardDuty 安全代理程式的耗用設定檔。然後,您可以視需要調整 Fargate 任務大小,以避免潛在的記憶體不足情況。