Kafka Manager を構築してみたら Kafka 2.0.0 は対応していなかったお話
Kafka
でクラスター中のノード(Broker
)やパーティション、トピックを WEB ベースで管理するためのツールとして、Kafka Manager
というものがあるそうです。公式ページである Github リポジトリには、README.md 中に実際の WEB の UI が載っていました。表示されている情報としては、
Kafka
にバンドルされている kafka-topics.sh
や kafka-consumer-groups.sh
等から取れるもののようですが、統計的に可視化されていたり、更新処理までできるようです。Kafka Manager を構築する
公式ページからはバイナリやrpm
パッケージ等は配布されていないようなので、自分でビルドしていきます。まずは
Github
からソースコードを clone
しておきましょう。$ git clone git@github.com:yahoo/kafka-manager.gitブランチは特に何も考えずに
master
を使うことにします。ソースコードを取得したら、ビルドツールの
sbt
からビルドすることができます。$ ./sbt clean distビルドすると
target/universal/
ディレクトリ配下に kafka-manager-1.3.3.21.zip
ができあがります。これが Kafka Manager
の実行バイナリを固めた zip
ファイルです。これを展開すると、
bin
ディレクトリ下に kafka-manager
という実行バイナリがあります。これを使うと Kafka Manager
が起動します。$ bin/kafka-manager -Dkafka-manager.zkhosts=localhost:2181 -Dhttp.port=8080システムプロパティ
kafka-manager.zkhosts
には Kafka
の Zookeeper
のホストを指定します。今回は localhsot
で Kafka
クラスターが動いているという前提で、同じマシンの Zookeeper
を指定しました。 http.port
値は Kafka Manager
自体の待受ポートです。8080 ポートを指定しているので、http://localhost:8080 にアクセスすれば Kafka Manager
を使うことができます。Kafka Manager を使ってみる
ここからは失敗談になります。起動した
Kafka Manager
にアクセスするとクラスターの一覧が表示されるらしいのですが、このリストが空になっていました。繋いでいる Kafka
クラスターはすでに CLI からいろいろさわっていた環境だったので、そこで使っていたクラスターが表示されそうなものですが、ひとまずトップメニューからクラスターを作ってみることにしました。クラスターの作成フォームで
Cluster Name
を入れ、Cluster Zookeeper Hosts
を入れ、そこで Kafka Version
欄から 1.1.0
までしか選べないことに気づきました。私が組んでいた Kafka
クラスターって 2.0.0なんですよね……。とりあえずそのまま
1.1.0
を選んでクラスターを作ってみましたが、作成後にトップページで Summery を表示しようとするとエラーがでてしまいました。やはり未対応バージョンであることが影響しているようです。Github
の issues を見てみると、2.0.0 対応の issueが 7 月頃に切られていました。コメント欄で Yes please ! が連呼されているのがなかなかおもしろいです。Kafka Manager
のリポジトリは Yahoo というアカウントに置かれているのですが、あの Yahoo なんでしょうか。コミットログでは今年の 7 月末ころまではコミットがされているのですが、その後は動きがないようです。WEB ベースの管理 UI はそれなりに需要がありそうなので、またメンテナンスされていくといいなと思います。Kafka コメント (0) 2018/10/05 19:54:32