

 **協助改進此頁面** 

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

若要為本使用者指南貢獻內容，請點選每個頁面右側面板中的**在 GitHub 上編輯此頁面**連結。

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

# 存取 EKS 功能控制器日誌
<a name="capabilities-controller-logs"></a>

ACK、kro 和 Argo CD 的 EKS 功能控制器會在叢集外部執行受 AWS管基礎設施。您可以使用 Amazon CloudWatch Vended Logs 為這些控制器設定日誌交付，讓您了解控制器行為以進行監控和故障診斷。

日誌會以結構化 JSON 格式交付，並包含操作欄位，例如日誌層級、訊息、控制器名稱和對帳識別符。交付前會先篩選內部 AWS 中繼資料，您只會收到與功能控制器相關的操作日誌內容。

## 支援的日誌類型
<a name="_supported_log_types"></a>

每個 功能都有一或多個日誌類型，您可以獨立設定為 CloudWatch Vended Logs 交付來源。

 **ACK** 
+  **EKS\_CAPABILITY\_ACK\_LOGS** 

 **kro** 
+  **EKS\_CAPABILITY\_KRO\_LOGS** 

 **Argo CD** 
+  **EKS\_CAPABILITY\_ARGOCD\_APPLICATION\_LOGS** 
+  **EKS\_CAPABILITY\_ARGOCD\_APPLICATIONSET\_LOGS** 
+  **EKS\_CAPABILITY\_ARGOCD\_COMMITSERVER\_LOGS** 
+  **EKS\_CAPABILITY\_ARGOCD\_REPOSERVER\_LOGS** 
+  **EKS\_CAPABILITY\_ARGOCD\_SERVER\_LOGS** 

ACK 使用涵蓋所有 ACK 服務控制器的單一日誌類型。日誌記錄包含 `controllerGroup` 欄位 （例如 `s3.services.k8s.aws`、`rds.services.k8s.aws`)，可識別哪些 ACK 服務控制器產生日誌。您可以使用此欄位來篩選 CloudWatch Logs Insights 或其他查詢工具中特定服務控制器的日誌。

Argo CD 有五種不同的日誌類型，每個控制器元件一個。這可讓您僅啟用所需控制器的記錄，並將其路由到不同的目的地。

## 設定日誌交付
<a name="_setting_up_log_delivery"></a>

若要設定功能控制器日誌交付，請使用 AWS 管理主控台 或 Amazon CloudWatch Logs API。如需詳細設定指示，請參閱《Amazon CloudWatch Logs 使用者指南》中的[從 AWS 服務啟用記錄](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-vended-logs-permissions-V2.html)。每個功能控制器都可以設定為個別的 CloudWatch Vended Logs 交付來源，因此您可以選擇要接收的日誌。

### 主控台
<a name="_console"></a>

1. 在以下網址開啟 Amazon EKS 主控台：https://console.aws.amazon.com/eks/home\#/clusters。

1. 選取您的叢集名稱。

1. 選擇**功能**索引標籤，然後選取您的功能。

1. 在**日誌交付**區段中，選擇**新增**。

1. 選取您 功能的日誌類型，然後選擇目的地。

1. 選擇**新增**以建立交付。

### 使用 Amazon CloudWatch APIs
<a name="_using_amazon_cloudwatch_apis"></a>

設定記錄需要三個步驟：

1. 使用 CloudWatch `PutDeliverySource` API 建立 功能的交付來源。使用 功能 ARN 做為 ，`resourceArn`並指定所需的日誌類型。

1. 使用 建立交付目的地`PutDeliveryDestination`。指定 CloudWatch 日誌群組、S3 儲存貯體或 Amazon Data Firehose 交付串流的 ARN。

1. 建立交付以使用 連接來源和目的地`CreateDelivery`。

您可以使用 `describe-capability`命令擷取功能 ARN：

```
aws eks describe-capability \
  --region {{region-code}} \
  --cluster-name {{my-cluster}} \
  --capability-name {{my-capability}} \
  --query 'capability.capabilityArn' --output text
```

您可以設定單一功能 （交付來源），透過建立多個交付將日誌傳送至多個目的地。您也可以將日誌從多個功能傳送至相同的目的地。

### IAM 許可
<a name="_iam_permissions"></a>

根據選取的目的地，您可能需要為 CloudWatch 日誌群組、S3 儲存貯體或 Data Firehose 交付串流設定 IAM 政策或角色，以確保日誌交付成功。如果您要跨 AWS 帳戶傳送日誌，請使用 `PutDeliveryDestinationPolicy` API 來設定允許交付至目的地的 IAM 政策。如需其他資訊，請參閱 [CloudWatch Vended Logs 許可文件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-V2-CloudWatchLogs)。

## 範例：使用 CloudWatch Logs Insights 查詢日誌
<a name="_example_querying_logs_with_cloudwatch_logs_insights"></a>

若要檢視所有控制器的錯誤日誌：

```
fields @timestamp, controller, message, error
| filter level = "error"
| sort @timestamp desc
| limit 50
```

如需更多查詢範例，包括依服務控制器篩選、追蹤對帳週期和 Argo CD 應用程式篩選，請參閱[使用控制器日誌進行故障診斷](capabilities-troubleshooting.md)。

## 檢視您的日誌
<a name="_viewing_your_logs"></a>

設定日誌交付後，日誌會交付到您指定的目的地。存取日誌的方法取決於您選擇的目的地類型：
+  **CloudWatch Logs** — 在 CloudWatch Logs 主控台中檢視日誌、使用 AWS CLI 命令，或搭配 CloudWatch Logs Insights 進行查詢。
+  **Amazon S3** — 透過 S3 主控台、 AWS CLI 或 Amazon Athena 等分析工具，將日誌作為 S3 儲存貯體中的物件存取。
+  **Amazon Data Firehose** — 日誌會串流到您設定的 Firehose 目標 （例如 S3、OpenSearch Service、Redshift 等）。

## 定價
<a name="_pricing"></a>

根據您選擇的交付目的地，CloudWatch Vended Logs 會收取日誌交付和儲存的費用。與標準 CloudWatch Logs 相比，CloudWatch Vended Logs 以更低的價格使用內建 AWS 身分驗證和授權來實現可靠、安全的日誌交付。如需詳細資訊[，請參閱 CloudWatch 定價頁面的已修訂日誌一節](https://aws.amazon.com/cloudwatch/pricing/)。