翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
MSK As Source のトラブルシューティング
このセクションでは、MSK As Source を使用する際の一般的なトラブルシューティングのステップについて解説します。
注記
処理、変換、S3 配信関連の問題に対するトラブルシューティングは、前半のセクションを参照してください。
hose の作成に失敗した
MSK As Source を使用した hose の作成に失敗した場合は、次の点を確認してください。
-
ソース MSK クラスターがアクティブな状態であることをチェックします。
-
プライベート接続を使用している場合は、クラスターのプライベートリンクがオンになっていることを確認します。
パブリック接続を使用している場合は、クラスターのパブリックアクセスがオンになっていることを確認します。
-
プライベート接続を使用する場合は、Firehose にプライベートリンクの作成を許可するリソースベースのポリシーを必ず追加してください。「MSK cross account permissions」も参照してください。
-
クラスターのトピックからデータを取り込むための許可がソース設定のロールに付与されていることを確認します。
-
VPC セキュリティグループが、クラスターのブートストラップサーバーで使用されるポートでの受信トラフィックを許可していることを確認します。
hose が一時停止している
hose の状態が一時停止になっている場合は次の点を確認してください。
-
ソース MSK クラスターがアクティブな状態であることをチェックします。
-
ソーストピックが存在することをチェックします。トピックを削除して再作成した場合は、Firehose ストリームも削除して再作成する必要があります。
hose がバックプレシャーされている
DataReadFromSource.Backpressured の値は、パーティションごとの BytesPerSecondLimit を超過したり、通常の配信フローが遅いか停止したりすると、1 になります。
-
BytesPerSecondLimit の上限に達した場合は、DataReadFromSource.Bytes メトリクスを確認して、上限の引き上げをリクエストします。
-
CloudWatch ログ、送信先メトリクス、データ変換メトリクス、形式の変換メトリクスを確認し、ボトルネックを特定します。
データの鮮度が正しくない
データの鮮度が正しくない可能性がある
-
Firehose は、使用されたレコードのタイムスタンプに基づいてデータの鮮度を計算します。プロデューサーレコードが Kafka のブローカーログで維持されている間、このタイムスタンプが正しく記録されるようにするには、Kafka トピックのタイムスタンプのタイプ設定を
message.timestamp.type=LogAppendTimeに設定します。
MSK クラスター接続の問題
次の手順では、MSK クラスターへの接続を検証する方法について説明します。Amazon MSK クライアントの設定の詳細については、「Amazon Managed Streaming for Apache Kafka デベロッパーガイド」の「Getting started using Amazon MSK」を参照してください。
MSK クラスターへの接続を検証するには
Unix ベースの (AL2 が望ましい) Amazon EC2 インスタンスを作成します。クラスターで VPC 接続のみが有効になっている場合は、EC2 インスタンスが同じ VPC で実行されていることを確認します。インスタンスが使用可能になったら、インスタンスに SSH 接続します。詳細については、「Amazon EC2 ユーザーガイド」のこのチュートリアルを参照してください。
次のコマンドを実行して、Yum パッケージマネージャーを使用して Java をインストールします。詳細については、「Amazon Corretto 8 ユーザーガイド」のインストール手順を参照してください。
sudo yum install java-1.8.0次のコマンドを実行して AWS クライアント
をインストールします。 curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/install次のコマンドを実行して、Apache Kafka クライアント 2.6* バージョンをダウンロードします。
wget https://archive.apache.org/dist/kafka/2.6.2/kafka_2.12-2.6.2.tgz tar -xzf kafka_2.12-2.6.2.tgz-
kafka_2.12-2.6.2/libsディレクトリに移動し、次のコマンドを実行して Amazon MSK IAM JAR ファイルをダウンロードします。wget https://github.com/aws/aws-msk-iam-auth/releases/download/v1.1.3/aws-msk-iam-auth-1.1.3-all.jar -
Kafka bin フォルダに
client.propertiesファイルを作成します。 -
awsRoleArnを FirehoseSourceConfigurationで使用したロール ARN に置き換え、証明書の場所を検証します。 AWS クライアントユーザーにロールの引き受けを許可しますawsRoleArn。 AWS クライアントユーザーはここで指定したロールの引き受けを試みます。[ec2-user@ip-xx-xx-xx-xx bin]$ cat client.properties security.protocol=SASL_SSL sasl.mechanism=AWS_MSK_IAM sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required awsRoleArn="<role arn>" awsStsRegion="<region name>"; sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler awsDebugCreds=true ssl.truststore.location=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.342.b07-1.amzn2.0.1.x86_64/jre/lib/security/cacerts ssl.truststore.password=changeit トピックを一覧表示するには、次の Kafka コマンドを実行します。接続がパブリックの場合は、パブリックエンドポイントのブートストラップサーバーを使用します。接続がプライベートの場合は、プライベートエンドポイントのブートストラップサーバーを使用します。
bin/kafka-topics.sh --list --bootstrap-server<bootstrap servers>--command-config bin/client.propertiesリクエストが正常に実行されると、次の例のような出力が表示されます。
[ec2-user@ip-xx-xx-xx-xx kafka_2.12-2.6.2]$ bin/kafka-topics.sh --list --bootstrap-server<bootstrap servers>--command-config bin/client.properties [xxxx-xx-xx 05:49:50,877] WARN The configuration 'awsDebugCreds' was supplied but isn't a known config. (org.apache.kafka.clients.admin.AdminClientConfig) [xxxx-xx-xx 05:49:50,878] WARN The configuration 'ssl.truststore.location' was supplied but isn't a known config. (org.apache.kafka.clients.admin.AdminClientConfig) [xxxx-xx-xx 05:49:50,878] WARN The configuration 'sasl.jaas.config' was supplied but isn't a known config. (org.apache.kafka.clients.admin.AdminClientConfig) [xxxx-xx-xx 05:49:50,878] WARN The configuration 'sasl.client.callback.handler.class' was supplied but isn't a known config. (org.apache.kafka.clients.admin.AdminClientConfig) [xxxx-xx-xx 05:49:50,878] WARN The configuration 'ssl.truststore.password' was supplied but isn't a known config. (org.apache.kafka.clients.admin.AdminClientConfig) [xxxx-xx-xx 05:50:21,629] WARN [AdminClient clientId=adminclient-1] Connection to node... __amazon_msk_canary __consumer_offsets前のスクリプトの実行に問題がある場合は、指定したブートストラップサーバーが、指定したポートで到達可能であることを検証します。これを実行するには、次のコマンドに示すように、telnet または同様のユーティリティをダウンロードして使用できます。
sudo yum install telnet telnet<bootstrap servers><port>リクエストが成功すると、次の出力が表示されます。これは、ローカル VPC 内の MSK クラスターに接続でき、指定されたポートでブートストラップサーバーが正常であることを意味します。
Connected to ..リクエストが失敗した場合は、VPC セキュリティグループのインバウンドルールを確認してください。例えば、インバウンドルールで次のプロパティを使用できます。
Type: All traffic Port: Port used by the bootstrap server (e.g. 14001) Source: 0.0.0.0/0前のステップで示したように、telnet 接続を再試行します。それでも接続できない場合、または Firehose 接続が引き続き失敗する場合は、AWS サポート
にお問い合わせください。