執行時期監控疑難排解 - Amazon Elastic Container Service

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

執行時期監控疑難排解

您可能需要對執行時期監控進行疑難排解,或驗證執行時期監控已啟用且在任務與容器上執行。

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

在 Amazon ECS 主控台中,帳戶設定頁面上顯示此資訊。

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

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

Output

名稱設定為 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 User Guide 中的 Reviewing coverage statistics

如何判斷 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

Output

名為 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 儀表板會在涵蓋範圍統計量儀表板中顯示任務缺少保護的狀態。

如何判斷我是否具備為叢集新增執行時期監控標籤的正確許可?

若要標記叢集,您必須同時具備對 ecs:TagResourceCreateCluster 執行 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 任務大小,避免可能出現的記憶體不足狀況。