Bigdata-开源的Kafka集群管理器(kafka-web-console)

Posted by Yancy on 2017-05-25

前言

源码的地址在:kafka-web-console

Kafka Web Console也是用Scala语言编写的Java web程序用于监控Apache Kafka。这个系统的功能和KafkaOffsetMonitor很类似,但是我们从源码角度来看,这款系统实现比KafkaOffsetMonitor要复杂很多,而且编译配置比KafkaOffsetMonitor较麻烦。

 要想运行这套系统我们需要的先行条件为:

1
2
3
Play Framework 2.2.x
Apache Kafka 0.8.x
Zookeeper 3.3.3 or 3.3.4

入门

同样,我们从https://github.com/claudemamo/kafka-web-console上面将源码下载下来,然后用sbt进行编译,在编译前我们需要做如下的修改:

Kafka Web控制台需要一个关系数据库。默认情况下,服务器连接到嵌入式H2数据库,不需要数据库安装或配置。请咨询Play!的文档以指定控制台的数据库。支持以下数据库:

1
git clone https://github.com/claudemamo/kafka-web-console.git
  • H2(默认)
  • PostgreSql
  • Oracle
  • DB2
  • MySQL
  • Apache Derby
  • Microsoft SQL Server

为了方便,我们可以使用Mysql数据库,只要做如下修改即可,找到 conf/application.conf文件,并修改如下

1
2
3
4
5
6
7
8
9
10
11
12
将这个
db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:file:play"
# db.default.user=sa
# db.default.password=""
修改成
db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost:3306/kafkamonitor"
db.default.user=iteblog
db.default.pass=wyp

我们还需要修改build.sbt,加入对Mysql的依赖:

1
"mysql" % "mysql-connector-java" % "5.1.31"

 2、执行conf/evolutions/default/bak目录下面的1.sql、2.sql和3.sql三个文件。需要注意的是,这三个sql文件不能直接运行,有语法错误,需要做一些修改。
上面的注意事项弄完之后,我们就可以编译下载过来的源码:

1
# sbt package

编译的过程比较慢,有些依赖包下载速度非常地慢,请耐心等待。
 在编译的过程中,可能会出现有些依赖包无法下载,如下错误:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[warn] module not found: com.typesafe.play#sbt-plugin;2.2.1
[warn] ==== typesafe-ivy-releases: tried
[warn] http://repo.typesafe.com/typesafe/ivy-releases/
com.typesafe.play/sbt-plugin/scala_2.9.2/sbt_0.12/2.2.1/ivys/ivy.xml
[warn] ==== sbt-plugin-releases: tried
[warn] http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases/
com.typesafe.play/sbt-plugin/scala_2.9.2/sbt_0.12/2.2.1/ivys/ivy.xml
[warn] ==== local: tried
[warn] /home/iteblog/.ivy2/local/com.typesafe.play/
sbt-plugin/scala_2.9.2/sbt_0.12/2.2.1/ivys/ivy.xml
[warn] ==== Typesafe repository: tried
[warn] http://repo.typesafe.com/typesafe/releases/com/
typesafe/play/sbt-plugin_2.9.2_0.12/2.2.1/sbt-plugin-2.2.1.pom
[warn] ==== public: tried
[warn] http://repo1.maven.org/maven2/com/typesafe/play/
sbt-plugin_2.9.2_0.12/2.2.1/sbt-plugin-2.2.1.pom
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
==== local: tried
/home/iteblog/.ivy2/local/org.scala-sbt/collections/0.13.0/jars/collections.jar
::::::::::::::::::::::::::::::::::::::::::::::
:: FAILED DOWNLOADS ::
:: ^ see resolution messages for details ^ ::
::::::::::::::::::::::::::::::::::::::::::::::
:: org.scala-sbt#collections;0.13.0!collections.jar
::::::::::::::::::::::::::::::::::::::::::::::

我们可以手动地下载相关依赖,并放到类似/home/iteblog/.ivy2/local/org.scala-sbt/collections/0.13.0/jars/目录下面。然后再编译就可以了。

  最后,我们可以通过下面命令启动Kafka Web Console监控系统:

1
# sbt run

并可以在http://localhost:9000 查看下面是一张效果图

交流学习:

🐧 Linux shell_高级运维派: 459096184 圈子 (系统运维-应用运维-自动化运维-虚拟化技术研究欢迎加入)
🐧 BigData-Exchange School : 521621407 圈子(大数据运维)(Hadoop开发人员)(大数据研究爱好者) 欢迎加入

相应Bidata有内部微信交流群互相学习,加入QQ群有链接。