

 **このページの改善にご協力ください** 

このユーザーガイドに貢献するには、すべてのページの右側のペインにある「**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 配信ソースとして個別に設定できる 1 つ以上のログタイプがあります。

 **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 サービスコントローラーをカバーする単一のログタイプを使用します。ログレコードには、ログを生成した ACK サービスコントローラーを識別する `controllerGroup` フィールド (`s3.services.k8s.aws`、`rds.services.k8s.aws` など) が含まれます。このフィールドを使用して、CloudWatch Logs Insights または他のクエリツールで特定のサービスコントローラーのログをフィルタリングできます。

Argo CD には、コントローラーコンポーネントごとに 1 つずつの、5 つの異なるログタイプがあります。これにより、必要なコントローラーのみのログ記録を有効にし、異なる送信先にルーティングできます。

## ログ配信の設定
<a name="_setting_up_log_delivery"></a>

機能コントローラーのログ配信を設定するには、AWS マネジメントコンソール または Amazon CloudWatch Logs API を使用します。詳細な設定手順については、「Amazon CloudWatch Logs ユーザーガイド」の「[Enabling logging from AWS services](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-vended-logs-permissions-V2.html)」を参照してください。各機能コントローラーは個別の CloudWatch Vended Logs 配信ソースとして設定できるため、受信するログを選択できます。

### コンソール
<a name="_console"></a>

1. https://console.aws.amazon.com/eks/home\#/clusters で Amazon EKS コンソールを開きます。

1. クラスター名を選択します。

1. **[機能]** タブを選択し、機能を選択します。

1. **[ログ配信]** セクションで、**[追加]** を選択します。

1. 機能のログタイプを選択し、送信先を選択します。

1. **[追加]** を選択して配信を作成します。

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

ログ記録の設定には次の 3 つのステップが必要です。

1. CloudWatch `PutDeliverySource` API を使用して機能の配信ソースを作成する 機能 ARN を `resourceArn` として使用し、目的のログタイプを指定します。

1. `PutDeliveryDestination` を使用して配信先を作成します。CloudWatch ロググループ、S3 バケット、または Amazon Data Firehose 配信ストリームの ARN を指定します。

1. `CreateDelivery` を使用して送信元と送信先を接続する配信を作成する

機能 ARN は `describe-capability` コマンドを使用して取得できます。

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

複数の配信を作成することで、1 つの機能 (配信ソース) から複数の送信先にログを送信するよう設定できます。複数の機能から同じ送信先にログを送信することもできます。

### IAM アクセス許可
<a name="_iam_permissions"></a>

選択した送信先によっては、ログ配信が成功するように CloudWatch ロググループ、S3 バケット、または Data Firehose 配信ストリームの IAM ポリシーまたはロールを設定する必要がある場合があります。AWS アカウント間でログを送信する場合は、`PutDeliveryDestinationPolicy` API を使用して、送信先への配信を許可する IAM ポリシーを設定します。詳細については、「[CloudWatch Vended Logs permissions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-V2-CloudWatchLogs)」のドキュメントを参照してください。

## 例: CloudWatch ログインサイトでのログのクエリ
<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 Vended Logs は、標準の CloudWatch Logs と比較して、組み込みの AWS 認証と認可により、信頼性が高く安全なログ配信を低価格で実現します。詳細については、「[CloudWatch 料金ページのVended Logs セクション](https://aws.amazon.com/cloudwatch/pricing/)」を参照してください。