RSS2.0

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


公開範囲:
プロフィール HN: ももかん
ゲーム作ったり雑談書いたり・・・していた時期が私にもありました。
カレンダー
<<2024, 11>>
272829303112
3456789
10111213141516
17181920212223
24252627282930