

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

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

Amazon MSK は、標準ブローカーと Express ブローカーのブローカーログとオーソライザーログをサポートします。これらのログは、Amazon CloudWatch Logs、Amazon S3、Amazon Data Firehose の 1 つ以上の送信先タイプに配信できます。を使用して Amazon MSK API コールを記録することもできます AWS CloudTrail。

ログを配信するようにクラスターを設定する前に、送信先リソースを作成する必要があります。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"></a>

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

### を使用してブローカーログを設定する 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` レベルのログを指定された宛先に記録します。ただし、Standard および Express ブローカーの場合、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` ログレベルが問題の根本原因を特定するのに十分なほど詳細でない場合にのみ使用する必要があります。

## オーソライザーログ
<a name="authorizer-logs"></a>

オーソライザーログは、MSK クラスターによって行われた認可決定をキャプチャします。これらのログを使用して、クライアントアクセスパターンをモニタリングし、認可の問題をトラブルシューティングできます。オーソライザーログを CloudWatch ロググループ、S3 バケット、Firehose 配信ストリームの 1 つ以上のタイプの送信先リソースに配信するように MSK クラスターを設定できます。

### を使用してオーソライザーログを設定する AWS CLI
<a name="authorizer-logs-cli"></a>

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

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

### API を使用してオーソライザーログを設定する
<a name="authorizer-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` 構造を指定できます。

### 必要なアクセス許可
<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>

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

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