本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 AWS PCS 中擴展日誌
擴展日誌可讓您記錄 AWS 平行運算服務如何擴展叢集中的運算節點群組。每個日誌項目都會記錄一個運算節點的一個狀態轉換:例如,執行個體啟動、節點註冊、縮減規模或啟動失敗及其原因。您可以使用擴展日誌來回答問題,例如節點群組未達到目標大小的原因、因容量原因啟動失敗,以及特定節點何時開始或停止。
您可以將擴展日誌傳送至 Amazon CloudWatch、Amazon Simple Storage Service (Amazon S3) 和 Amazon Data Firehose。每次轉換時, AWS PCS 都會記錄下列資料:
-
叢集和運算節點群組識別符
-
節點名稱
-
新狀態
-
原因代碼和人類可讀的描述
-
當執行個體與轉換相關聯時,EC2 執行個體 ID
-
啟動內容,例如執行個體類型和子網路,當相關時
AWS PCS 透過 日誌類型提供擴展PCS_SCALING_LOGS日誌。擴展日誌交付為選擇加入。 AWS 在您為叢集設定交付之前,PCS 不會為叢集提供擴展日誌。
先決條件
管理 AWS PCS 叢集的 IAM 主體必須允許 pcs:AllowVendedLogDeliveryForResource動作。
下列範例 IAM 政策會授予必要的許可。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PcsAllowVendedLogsDelivery", "Effect": "Allow", "Action": ["pcs:AllowVendedLogDeliveryForResource"], "Resource": [ "arn:aws:pcs:*::cluster/*" ] } ] }
設定擴展日誌
您可以使用 AWS 管理主控台 或 為您的 AWS PCS 叢集設定擴展日誌 AWS CLI。
尋找擴展日誌
您可以在 CloudWatch Logs 和 Amazon S3. AWS PCS 中設定日誌目的地,並使用下列結構化路徑名稱和檔案名稱。
CloudWatch Logs
AWS PCS 使用 CloudWatch Logs 串流的下列名稱格式:
AWSLogs/PCS/cluster-id/node_lifecycle.log
例如:AWSLogs/PCS/pcs_abc123de45/node_lifecycle.log
Amazon S3
AWS PCS 使用 S3 路徑的下列名稱格式:
AWSLogs/account-id/PCS/region/cluster-id/node_lifecycle/year/month/day/hour/
例如:AWSLogs/111122223333/PCS/us-east-1/pcs_abc123de45/node_lifecycle/2026/09/03/11/
AWS PCS 對日誌檔案使用以下名稱格式:
PCS_cluster-id_node_lifecycle_year-month-day-hour_random-id.log.gz
例如:PCS_pcs_abc123de45_node_lifecycle_2026-09-03-11_04be080b.log.gz
擴展日誌欄位
AWS PCS 會將擴展日誌資料寫入為 JSON 物件。每個日誌項目都包含頂層中繼資料欄位和details物件。最上層欄位可識別叢集、事件時間和運算節點群組和排程器節點 ID。details 物件會保留轉換詳細資訊。
下表說明每個日誌項目中的最上層欄位。
| 名稱 | 範例值 | 必要 | 備註 |
|---|---|---|---|
resource_id |
"pcs_22l8nzr3t9" |
是 | AWS PCS 叢集 ID |
resource_type |
"PCS_CLUSTER" |
是 | 一律 "PCS_CLUSTER" |
event_timestamp |
1789179816460 |
是 | 事件發生時的 Unix epoch 毫秒數 |
compute_node_group_id |
"pcs_56zr33g8" |
是 | 節點所屬的運算節點群組 |
scheduler_node_id |
"compute-1" |
是 | 排程器節點 ID |
status_code |
"LAUNCH_FAILED" |
是 | 節點的新狀態。請參閱 狀態碼和原因碼 |
reason_code |
"INSUFFICIENT_CAPACITY" |
是 | 轉換發生的原因 |
description |
"The launch failed because EC2 did not have enough capacity" |
是 | 衍生自狀態和原因代碼的人類可讀取摘要 |
details |
{...} |
否 | 轉換的其他內容。金鑰取決於轉換類型 |
下表說明可出現在 details 物件中的金鑰。
| 名稱 | 範例值 | 必要 | 備註 |
|---|---|---|---|
instance_id |
"i-0abcdef01234567a" |
否 | 與節點相關聯的 EC2 執行個體。沒有相關聯的執行個體時不存在,例如在啟動失敗之後 |
ec2_error_code |
"InsufficientInstanceCapacity" |
否 | 失敗啟動的 EC2 錯誤代碼。相同程式碼會出現在您帳戶中 CreateFleet 呼叫的 CloudTrail 記錄中 |
instance_type |
"t4g.micro" |
否 | 啟動的執行個體類型 |
subnet_id |
"subnet-0abc123" |
否 | 啟動的目標子網路 |
狀態碼和原因碼
status_code 欄位會告訴您輸入的節點狀態。reason_code 欄位會告訴您原因。例如,具有INSUFFICIENT_CAPACITY原因LAUNCH_FAILED的狀態表示 Amazon EC2 無法為目標子網路中請求的執行個體類型提供容量。LIMIT_EXCEEDED 表示 Amazon EC2 配額已封鎖啟動。
| 狀態碼 | 原因代碼 | 說明 |
|---|---|---|
LAUNCHED |
SCHEDULER_REQUESTED |
啟動執行個體以滿足排程器擴展請求 |
LAUNCHED |
MAINTAIN_MIN_CAPACITY |
啟動執行個體以維護節點群組的最小容量 |
REGISTERED |
REGISTER_SUCCESS |
透過 PCS 代理程式成功註冊的節點 |
ACTIVE |
BOOTSTRAP_SUCCESS |
節點引導已完成;slurmd 正在執行並接受任務 |
PENDING_REPLACEMENT |
NODE_GROUP_UPDATE |
節點在關閉電源以進行節點群組更新之前耗盡 |
PENDING_REPLACEMENT |
EC2_HEALTH_CHECK_FAILED |
節點正在耗盡,因為節點或其執行個體的運作狀態檢查失敗 |
PENDING_REPLACEMENT |
EC2_SCHEDULED_EVENT |
節點正在耗盡,因為其執行個體有排程的 EC2 維護事件 |
LAUNCH_FAILED |
INSUFFICIENT_CAPACITY |
節點無法取得執行個體,因為沒有足夠的可用容量 |
LAUNCH_FAILED |
LIMIT_EXCEEDED |
執行個體啟動失敗,因為超過帳戶配額 |
LAUNCH_FAILED |
LAUNCH_ERROR |
節點無法啟動其執行個體 |
TERMINATED |
SCHEDULER_REQUESTED |
執行個體在排程器釋出節點後終止 (閒置逾時或關機) |
TERMINATED |
UNHEALTHY_NODE |
執行個體已終止,因為排程器將節點報告為運作狀態不佳 |
TERMINATED |
BOOTSTRAP_FAILED |
執行個體因節點無法引導而終止 |
TERMINATED |
EXTERNALLY_TERMINATED |
執行個體已在 PCS 外部終止;節點已釋出,因此可以取代 |
TERMINATED |
REPLACEMENT_REQUESTED |
執行個體已終止,因為節點已耗盡進行取代 |
TERMINATED |
NODE_GROUP_DELETION |
執行個體因運算節點群組刪除而終止 |
TERMINATE_FAILED |
EC2_OPERATION_NOT_PERMITTED |
執行個體終止失敗。確保執行個體上未啟用終止保護 |
TERMINATE_FAILED |
EC2_ERROR |
執行個體終止失敗 |
擴展日誌範例
下列範例顯示成功的執行個體啟動:
{ "resource_id": "pcs_abc123de45", "resource_type": "PCS_CLUSTER", "event_timestamp": 1789179816460, "compute_node_group_id": "pcs_abcdef01", "scheduler_node_id": "compute-1", "status_code": "LAUNCHED", "reason_code": "SCHEDULER_REQUESTED", "description": "Instance launched to satisfy a scheduler scale-up request.", "details": { "instance_id": "i-0abc12345def67890", "instance_type": "c6i.xlarge", "subnet_id": "subnet-0123456789abcdef0" } }
下列範例顯示 EC2 容量不足導致的啟動失敗。instance_id 不存在 ,因為沒有啟動執行個體。
{ "resource_id": "pcs_abc123de45", "resource_type": "PCS_CLUSTER", "event_timestamp": 1789179816460, "compute_node_group_id": "pcs_abcdef01", "scheduler_node_id": "compute-2", "status_code": "LAUNCH_FAILED", "reason_code": "INSUFFICIENT_CAPACITY", "description": "Node did not get an instance because there was not enough capacity available.", "details": { "ec2_error_code": "InsufficientInstanceCapacity" } }