Apache Kafkaを管理するためのツールとしてkafka-managerというものが便利らしいので、kafka-managerを
インストールして簡単に確認してみます。
GitHub - yahoo/kafka-manager: A tool for managing Apache Kafka.
今回使用するkafka-managerのバージョンは、1.3.3.6とします。
kafka-managerとは?
文字通り、Apache Kafkaを管理するためのツールですが、次のようなことができるそうです。
- 複数のクラスタの管理
- topic、consumer、offsets、broker、replica distribution、partition distributionを簡単に確認
- パーティションの作成と割り当て
- Topicの作成(設定含む)
- Topicの削除
- Topicの一覧表示
- Brokerを選択して複数のTopic向けのパーティション作成をバッチ処理
- 複数のTopic向けにパーティションの再割り当てをバッチ処理
- Topicへのパーティションの追加
- Topicの設定の更新
などなど。
Topicに格納されたメッセージを表示する機能は持たず、その用途の場合はBurrowかTrifectaを使用、
という感じみたいです。
Want to view messages of a topic · Issue #184 · yahoo/kafka-manager · GitHub
GitHub - linkedin/Burrow: Kafka Consumer Lag Checking
では、インストールして使っていってみましょう。
前提
Apache Kafka(2.12-0.10.2.0)およびApache ZooKeeperは、172.17.0.2というホストで動作しているものとします。
kafka-managerは、localhostで動作させるものとします。
せっかくなのでBrokerおよびConsumerも用意しますが、サンプルはこちらを使用するものとします。
Spring Cloud Stream+Apache Kafkaで、Consumer Groupを設定した時の挙動を確認する - CLOVER
Brokerひとつ、Consumer Groupが2つで、それぞれConsumerが2つずつ(計4つ)がApache Kafkaに張り付きます。これらのアプリケーションは、
すでにApache Kafkaに接続済みで起動しているものとします。
ダウンロード&ビルド
ドキュメントによると、どうも自分でkafka-managerをビルドしなくてはいけないみたいです。ビルドには、JDK(Java 8以降)がインストール
されていればよいかと思います。
GitHubのreleasesより、
Releases · yahoo/kafka-manager · GitHub
最新版(今回は1.3.3.6)をダウンロードして展開。
$ wget https://github.com/yahoo/kafka-manager/archive/1.3.3.6.tar.gz
$ tar -zxvf 1.3.3.6.tar.gz
ディレクトリを変更して、sbtでビルドします。sbtはScala向けのビルドツールですが、特にsbtを別途ダウンロードする必要はなく、
kafka-managerに含まれているsbtのランチャーを元に起動します。
$ cd kafka-manager-1.3.3.6
$ ./sbt clean dist
しばらく待って、ビルドに成功すると「target/universal」というディレクトリにkafka-managerをアーカイブしたものができあがります。
[info] Your package is ready in /path/to/kafka-manager-1.3.3.6/target/universal/kafka-manager-1.3.3.6.zip [info] [success] Total time: 92 s, completed 2017/04/29 20:46:17
kafka-managerを起動する
それでは、できあがったkafka-managerを起動してみましょう。先ほどビルドしたzipファイルを展開します。
$ cd target/universal $ unzip kafka-manager-1.3.3.6.zip $ cd kafka-manager-1.3.3.6
README.mdを見ると、kafka-managerは次のコマンドで起動するようですが、
$ bin/kafka-manager
Apache ZooKeeperをkafka-manager自身も使うようです。
Configuration
しかも、どうも接続先はデフォルトで次のホスト、ポートな様子。
kafka-manager-zookeeper:2181
設定ファイルでも指定できるようですが、今回はシステムプロパティでZooKeeperへの接続先を指定することにします。
$ bin/kafka-manager -Dkafka-manager.zkhosts=172.17.0.2:2181
この状態で、「http://localhost:9000/」にアクセスすると、まっさらなkafka-managerを見ることができます。
クラスタを追加する
kafka-managerを起動したはいいですが、まだクラスタが登録されていません。
上部のメニューより、Cluster→Add Clusterでクラスタを登録しましょう。
クラスタ名や、ZooKeeperの接続先、Apache Kafkaのバージョン(微妙に最新版じゃないですが…)などを選択して
画面下部にある「Save」でクラスタを登録します。
クラスタの登録が完了するので、そのまま「Go to cluster view.」でクラスタの一覧へ。
なんか、メニューも大幅に増えていますね。また、起動済みのアプリケーションがTopicを作成しているので、すでにTopicが
存在することになっています。
メニューから「Consumers」を選んでConsumer Groupを確認したりといったことができるようになります。
あとは、適宜メニューから見て回る感じでしょうか。
とりあえず、こんなところでしょう。