Kafkatool.exe は新しい KafkaAdminClient SASL_PLAINTEXT の作成に失敗しました

Kafkatool.exe は新しい KafkaAdminClient SASL_PLAINTEXT の作成に失敗しました

私はケルベロス化されたKafkaクラスタ。問題なく動作しており、メッセージの生成と消費が可能です。次に、カフカツール2ソフトウェアであり、次のコマンドで cmd 経由でプログラムを実行しています。

kafkatool.exe -J-Djava.security.auth.login.config=d:\client_jaas.conf

しかし、空白を埋めると、こうなりますエラー:

エラー Kafkatool.exe - SASL_PLAINTEXT

これは私のJAASファイル:

Server {
  com.sun.security.auth.module.Krb5LoginModule required
  useKeyTab=true
  keyTab="D:\kafkaadmin.keytab"
  storeKey=true
  useTicketCache=false
  principal="admin/[email protected]";
};

KafkaServer {
  com.sun.security.auth.module.Krb5LoginModule required debug=true
  useKeyTab=true
  storeKey=true
  keyTab="D:\kafkaadmin.keytab"
  principal="admin/[email protected]";
};

// For Zookeeper Client
Client {
  com.sun.security.auth.module.Krb5LoginModule required debug=true
  useKeyTab=true
  storeKey=true
  keyTab="D:\kafkaadmin.keytab"
  principal="admin/[email protected]";
};

KafkaClient {
  com.sun.security.auth.module.Krb5LoginModule required debug=true
  useKeyTab=true
  storeKey=true
  keyTab="D:\kafkaadmin.keytab"
  principal="admin/[email protected]";
};

何が欠けているのでしょうか?

Kafka クラスター OS: Ubuntu 14.04
ユーザー OS: Windows 10 Enterprise

答え1

Kerberos 化された kafka 環境でメッセージを確認しようとしたときに、仮想マシンで同様の問題が発生しました。KafkaClient 構成で serviceName="kafka" を設定してみてください。

また、引数として -J-Djava.security.auth.login.config を渡して kafkatool を実行するようにしてください。

クライアント JAAS 構成の例:

KafkaClient {
  com.sun.security.auth.module.Krb5LoginModule required
  serviceName="kafka"
  useKeyTab=true
  keyTab="<path_to>/user.keytab"
  principal="user@domain";
};

私は Linux 環境でツールを使用しましたが、上記の方法で Windows でも問題が解決すると思います。

関連情報