

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon MSK ログ記録
<a name="msk-logging"></a>

Apache Kafka ブローカーログは、Amazon CloudWatch Logs、Amazon S3、Amazon Data Firehose の 1 つまたは複数の配信先タイプに配信できます。を使用して Amazon MSK API コールを記録することもできます AWS CloudTrail。

**注記**  
ブローカーログは、MSK Standard ブローカーと Express ブローカーの両方で使用できます。

## ブローカーログ
<a name="broker-logs"></a>

ブローカーログを使用すると、Apache Kafka アプリケーションのトラブルシューティングを行い、MSK クラスターとの通信を分析できます。新規または既存の MSK クラスターを設定して、INFO レベルのブローカーログを CloudWatch ロググループ、S3 バケット、Firehose 配信ストリームの 1 つまたは複数の配信先リソースのタイプに配信できます。その後、Firehose を使用して、配信ストリームから OpenSearch Service にログデータを配信できます。

ブローカーログをクラスターに配信するようにクラスターを設定する前に、宛先リソースを作成する必要があります。Amazon MSK は、これらの宛先リソースがまだ存在しない場合、それらを作成しません。これらの 3 種類の宛先リソースとその作成方法については、次のドキュメントを参照してください。
+ [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html)
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html)
+ [Amazon Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html)

### 必要なアクセス許可
<a name="broker-logs-perms"></a>

Amazon MSK ブローカーログの送信先を設定するには、Amazon MSK アクションに使用する IAM ID に、[AWS マネージドポリシー: AmazonMSKFullAccess](security-iam-awsmanpol-AmazonMSKFullAccess.md) ポリシーに記載されているアクセス許可が必要です。

ブローカーログを S3 バケットにストリーミングするには、`s3:PutBucketPolicy` アクセス許可も必要です。S3 バケットポリシーについては、「Amazon S3 ユーザーガイド」の「[S3 バケットポリシーを追加する方法](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-bucket-policy.html)」を参照してください。一般的な IAM ポリシーの詳細については、 「IAM ユーザーガイド」の[アクセス管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)を参照してください。

### SSE-KMS バケットで使用するために必要な KMS キーポリシー
<a name="sse-kms-buckets"></a>

カスタマーマネージドキーで マネージドキー (SSE-KMS) AWS KMSを使用して S3 バケットのサーバー側の暗号化を有効にした場合は、Amazon MSK がバケットにブローカーファイルを書き込めるように、KMS キーのキーポリシーに以下を追加します。

```
{
  "Sid": "Allow Amazon MSK to use the key.",
  "Effect": "Allow",
  "Principal": {
    "Service": [
      "delivery.logs.amazonaws.com"
    ]
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
```

### を使用してブローカーログを設定する AWS マネジメントコンソール
<a name="broker-logs-console"></a>

新しいクラスターを作成する場合は、**Monitoring** (モニタリング) セクションで **ブローカーログ配信** の見出しを探します。Amazon MSK がブローカーログを配信する宛先を指定できます。

既存のクラスターの場合は、クラスターのリストから当該クラスターを選択し、**[プロパティ]** タブを選択します。**[ログ配信]** セクションまで下にスクロールして、**[編集]** ボタンを選択します。Amazon MSK がブローカーログを配信する宛先を指定できます。

### を使用してブローカーログを設定する AWS CLI
<a name="broker-logs-cli"></a>

`create-cluster` または `update-monitoring` コマンドを使用する場合は、オプションで `logging-info` パラメータを指定し、次の例のように JSON 構造体を渡すことができます。この JSON では、3 つの送信先タイプはすべてオプションです。

**注記**  
ログ配信を設定するには、Firehose ストリームで `LogDeliveryEnabled` タグを`true`に設定する必要があります。が CloudWatch Logs 用に AWS 作成するサービスにリンクされたロールは、このタグを使用して、すべての Firehose 配信ストリームにアクセス許可を付与します。このタグを削除すると、サービスにリンクされたロールは Firehose ストリームにログを配信できなくなります。サービスにリンクされたロールに含まれるアクセス許可を示す IAM ポリシーの例については、*Amazon CloudWatch ユーザーガイド*の[「リソースアクセス許可に使用される IAM ロール」](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-infrastructure-V2-Firehose.html)を参照してください。

```
{
  "BrokerLogs": {
    "S3": {
      "Bucket": "amzn-s3-demo-bucket",
      "Prefix": "ExamplePrefix",
      "Enabled": true
    },
    "Firehose": {
      "DeliveryStream": "ExampleDeliveryStreamName",
      "Enabled": true
    },
    "CloudWatchLogs": {
      "Enabled": true,
      "LogGroup": "ExampleLogGroupName"
    }
  }
}
```

### API を使用してブローカーログを設定する
<a name="broker-logs-api"></a>

[CreateCluster](https://docs.aws.amazon.com/msk/1.0/apireference/clusters.html#CreateCluster)または[UpdateMonitoring](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-monitoring.html#UpdateMonitoring)オペレーションに渡す JSON でオプションの `loggingInfo` 構造を指定できます。

**注記**  
デフォルトでは、ブローカーロギングが有効になっている場合、Amazon MSK は `INFO` レベルのログを指定された宛先に記録します。ただし、スタンダードブローカーの場合、Apache Kafka 2.4.X 以降のユーザーは、ブローカーログレベルを任意の [log4j ログレベル](https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html)に動的に設定できます。ブローカーのログレベルを動的に設定する方法については、[KIP-412: 動的なアプリケーションログレベルをサポートするように管理者 API を拡張する](https://cwiki.apache.org/confluence/display/KAFKA/KIP-412%3A+Extend+Admin+API+to+support+dynamic+application+log+levels)を参照してください。ログレベルを `DEBUG` または `TRACE` に動的に設定する場合は、ログの送信先として Amazon S3 または Firehose を使用することをお勧めします。CloudWatch Logs をログの宛先として使用し、`DEBUG` または `TRACE` レベルのロギングを動的に有効にした場合、Amazon MSK はログのサンプルを継続的に配信する場合があります。これはブローカーのパフォーマンスに大きな影響を与える可能性があるため、`INFO` ログレベルが問題の根本原因を特定するのに十分なほど詳細でない場合にのみ使用する必要があります。