SDK クライアントがメッセージを送受信できない場合、またはインスタンスへの接続に失敗した場合は、Kafka ヘルスチェックツールを使用してインスタンスのヘルス状態を確認します。このツールは、ネットワーク接続とインスタンスステータスを検証します。ツールによってインスタンスが正常であることが確認された場合は、ご利用のクライアントのネットワーク接続とコード設定を調査してください。
前提条件
-
ヘルスチェックツール kafka-checker.zip をダウンロードして展開していること。
-
メッセージの送受信と消費をテストするために、Topic とコンシューマーグループを作成していること。
ネットワーク接続のテスト
-
エンドポイントを取得します。
-
ApsaraMQ for Kafka コンソールにログインします。
-
概要 ページの リソースの分布 セクションで、リージョンを選択します。
-
インスタンスリスト ページで、ターゲットインスタンスの名前をクリックします。
-
インスタンスの詳細 ページの アクセスポイント情報 セクションで、ご利用のインスタンスのエンドポイントを取得します。
このセクションには、VPC デフォルトエンドポイント (VPC ネットワーク、PLAINTEXT プロトコル)、インターネット SSL エンドポイント (インターネット、SASL_SSL プロトコル)、VPC SASL エンドポイント (VPC ネットワーク、SASL_PLAINTEXT プロトコル) の 3 種類のエンドポイントが表示されます。接続要件に基づいてエンドポイントドメインを選択し、コピーします。
説明エンドポイント間の違いの詳細については、「エンドポイントの比較」をご参照ください。
-
-
telnet テストを実行して、エンドポイントの接続性を検証します。次の例では、Linux オペレーティングシステムを使用します。
-
Linux システムにログインし、KafkaChecker.jar ツールが配置されているディレクトリに移動します。
cd /usr/opt/kafka-checker/usr/opt/kafka-checkerを実際のローカルパスに置き換えてください。 -
次のコマンドを実行して、ApsaraMQ for Kafka への接続をテストします。
java -jar KafkaChecker.jar telnet -s <endpoint-string>たとえば、クライアントが VPC デフォルトエンドポイント経由で ApsaraMQ for Kafka に接続する場合、次のコマンドを実行します:
java -jar KafkaChecker.jar telnet -s alikafka-pre-cn-zv**********-1-vpc.alikafka.aliyuncs.com:9092,alikafka-pre-cn-zv**********-2-vpc.alikafka.aliyuncs.com:9092,alikafka-pre-cn-zv**********-3-vpc.alikafka.aliyuncs.com:9092。説明Virtual Private Cloud (VPC) エンドポイントを使用して接続する場合、ご利用のデバイスはインスタンスと同じ VPC 内にある必要があります。
次のような出力は、ネットワーク接続が成功したことを示します。
telnet xxx 9092 success telnet xxx:xxx:xxx 9092 success telnet xxx:xxx:xxx 9092 success次の出力が返された場合、ApsaraMQ for Kafka インスタンスにホワイトリストが設定されていません。詳細については、「ホワイトリストの設定」をご参照ください。
telnet xxx 9092 failure, please add ip to white list in Alikafka console telnet xxx 9092 failure, please add ip to white list in Alikafka console telnet xxx 9092 failure, please add ip to white list in Alikafka console
-
メッセージ送信のテスト
メッセージを送信するとテストデータが生成されます。本番データに影響を与えないように、ヘルスチェックテスト専用の Topic を作成してください。
エンドポイントタイプに対応するコマンドを実行して、メッセージを送信します。
-
ポート 9092 の VPC デフォルトエンドポイント経由で接続する場合:
java -jar KafkaChecker.jar send -s <endpoint-domain>:9092 --topic <topic-name>例:
java -jar KafkaChecker.jar send -s alikafka-pre-cn-zv**********-1-vpc.alikafka.aliyuncs.com:9092 --topic test -
ポート 9093 のインターネット SSL エンドポイント経由で接続する場合。SASL は PLAIN または SCRAM-SHA-256 メカニズムによる認証をサポートします。ご利用の認証メカニズムに対応するコマンドを実行してください。
説明-
インターネット環境では、インスタンスのデフォルト SASL ユーザーは PLAIN メカニズムを使用して認証を行います。
-
よりきめ細かなアクセス制御のために SASL ユーザーを作成し、認証メカニズムを PLAIN または SCRAM-SHA-256 のいずれかに設定できます。詳細については、「SASL ユーザーへの権限付与」をご参照ください。
PLAIN メカニズム
java -jar KafkaChecker.jar send -sm PLAIN -ss true -u <username> -psw <password> -s <endpoint-domain>:9093 --topic <topic-name>例:
java -jar KafkaChecker.jar send -sm PLAIN -ss true -u test -psw test**** -s alikafka-pre-cn-zv**********-1.alikafka.aliyuncs.com:9093 --topic testSCRAM-SHA-256 メカニズム
java -jar KafkaChecker.jar send -sm SCRAM-SHA-256 -ss true -u <username> -psw <password> -s <endpoint-domain>:9093 --topic <topic-name>例:
java -jar KafkaChecker.jar send -sm SCRAM-SHA-256 -ss true -u test -psw test**** -s alikafka-pre-cn-zv**********-1.alikafka.aliyuncs.com:9093 --topic test -
-
ポート 9094 の VPC SASL エンドポイント経由で接続する場合。SASL は PLAIN または SCRAM-SHA-256 メカニズムによる認証をサポートします。ご利用の認証メカニズムに対応するコマンドを実行してください。
PLAIN メカニズム
java -jar KafkaChecker.jar send -sm PLAIN -sp true -u <username> -psw <password> -s <endpoint-domain>:9094 --topic <topic-name>例:
java -jar KafkaChecker.jar send -sm PLAIN -sp true -u test -psw test**** -s alikafka-pre-cn-zv**********-1-vpc.alikafka.aliyuncs.com:9094 --topic testSCRAM-SHA-256 メカニズム
java -jar KafkaChecker.jar send -sm SCRAM-SHA-256 -sp true -u <username> -psw <password> -s <endpoint-domain>:9094 --topic <topic-name>例:
java -jar KafkaChecker.jar send -sm SCRAM-SHA-256 -sp true -u test -psw test**** -s alikafka-pre-cn-zv**********-1-vpc.alikafka.aliyuncs.com:9094 --topic test
次のような出力は、メッセージが正常に送信されたことを示します。
[2021-08-27 11:29:18.838]Produce ok number:0 p:2 offset:21 response:test-2@21 cost:1342 ms
[2021-08-27 11:29:19.252]Produce ok number:1 p:2 offset:22 response:test-2@22 cost:410 ms
[2021-08-27 11:29:19.254]Produce ok number:1 p:6 offset:9 response:test-6@9 cost:412 ms
[2021-08-27 11:29:19.301]Produce ok number:2 p:5 offset:25 response:test-5@25 cost:47 ms
[2021-08-27 11:29:19.302]Produce ok number:2 p:4 offset:20 response:test-4@20 cost:48 ms
[2021-08-27 11:29:19.347]Produce ok number:3 p:1 offset:19 response:test-1@19 cost:45 ms
[2021-08-27 11:29:19.348]Produce ok number:3 p:8 offset:17 response:test-8@17 cost:46 ms
メッセージ消費のテスト
エンドポイントタイプに対応するコマンドを実行して、メッセージを消費します。
-
ポート 9092 の VPC デフォルトエンドポイント経由で接続する場合:
java -jar KafkaChecker.jar pull -s <endpoint-domain>:9092 --topic <topic-name> --group <group-name> --partition 0 --offset 0 --count 10例:
java -jar KafkaChecker.jar pull -s alikafka-pre-cn-zv**********-1-vpc.alikafka.aliyuncs.com:9092 --topic test --group test --partition 0 --offset 0 --count 10 -
ポート 9093 のインターネット SSL エンドポイント経で接続する場合。SASL は PLAIN または SCRAM-SHA-256 メカニズムによる認証をサポートします。ご利用の認証メカニズムに対応するコマンドを実行してください。
説明-
インターネット環境では、インスタンスのデフォルト SASL ユーザーは PLAIN メカニズムを使用して認証を行います。
-
よりきめ細かなアクセス制御のために SASL ユーザーを作成し、認証メカニズムを PLAIN または SCRAM-SHA-256 のいずれかに設定できます。詳細については、「SASL ユーザーへの権限付与」をご参照ください。
PLAIN メカニズム
java -jar KafkaChecker.jar pull -sm PLAIN -ss true -u <username> -psw <password> -s <endpoint-domain>:9093 --topic <topic-name> --group <group-name> --partition 0 --offset 0 --count 10例:
java -jar KafkaChecker.jar pull -sm PLAIN -ss true -u test -psw test**** -s alikafka-pre-cn-zv**********-1.alikafka.aliyuncs.com:9093 --topic test --group test --partition 0 --offset 0 --count 10SCRAM-SHA-256 メカニズム
java -jar KafkaChecker.jar pull -sm SCRAM-SHA-256 -ss true -u <username> -psw <password> -s <endpoint-domain>:9093 --topic <topic-name> --group <group-name> --partition 0 --offset 0 --count 10例:
java -jar KafkaChecker.jar pull -sm SCRAM-SHA-256 -ss true -u test -psw test**** -s alikafka-pre-cn-zv**********-1.alikafka.aliyuncs.com:9093 --topic test --group test --partition 0 --offset 0 --count 10 -
-
ポート 9094 の VPC SASL エンドポイント経由で接続する場合。SASL は PLAIN または SCRAM-SHA-256 メカニズムによる認証をサポートします。ご利用の認証メカニズムに対応するコマンドを実行してください。
PLAIN メカニズム
java -jar KafkaChecker.jar pull -sm PLAIN -sp true -u <username> -psw <password> -s <endpoint-domain>:9094 --topic <topic-name> --group <group-name> --partition 0 --offset 0 --count 10例:
java -jar KafkaChecker.jar pull -sm PLAIN -sp true -u test -psw test**** -s alikafka-pre-cn-zv**********-1-vpc.alikafka.aliyuncs.com:9094 --topic test --group test --partition 0 --offset 0 --count 10SCRAM-SHA-256 メカニズム
java -jar KafkaChecker.jar pull -sm SCRAM-SHA-256 -sp true -u <username> -psw <password> -s <endpoint-domain>:9094 --topic <topic-name> --group <group-name> --partition 0 --offset 0 --count 10例:
java -jar KafkaChecker.jar pull -sm SCRAM-SHA-256 -sp true -u test -psw test**** -s alikafka-pre-cn-zv**********-1-vpc.alikafka.aliyuncs.com:9094 --topic test --group test --partition 0 --offset 0 --count 10
次のような出力は、メッセージが正常に消費されたことを示します。
[2021-08-27 11:32:37.917]Pull Succ topic:test partition:0 offset:0 key:demo value: time:2021-08-10 15:08:10.629 cha:1455867288
[2021-08-27 11:32:37.918]Pull Succ topic:test partition:0 offset:1 key:demo value: time:2021-08-10 15:16:08.386 cha:1455389532
[2021-08-27 11:32:37.918]Pull Succ topic:test partition:0 offset:2 key:demo value: time:2021-08-10 15:16:50.374 cha:1455347544
[2021-08-27 11:32:37.918]Pull Succ topic:test partition:0 offset:3 key:null value: time:2021-08-18 21:08:23.532 cha:743054386
[2021-08-27 11:32:37.918]Pull Succ topic:test partition:0 offset:4 key:null value: time:2021-08-18 21:08:23.778 cha:743054140
[2021-08-27 11:32:37.918]Pull Succ topic:test partition:0 offset:5 key:null value: time:2021-08-18 21:08:23.892 cha:743054026
[2021-08-27 11:32:37.918]Pull Succ topic:test partition:0 offset:6 key:null value: time:2021-08-18 21:08:24.352 cha:743053566
[2021-08-27 11:32:37.919]Pull Succ topic:test partition:0 offset:7 key:null value: time:2021-08-18 21:08:24.452 cha:743053467
関連ドキュメント
関連する SDK パッケージについては、「SDK の概要」をご参照ください。