下载Kafka Manager,并进行打包,由于Kafka manager是由scala写的,所以需要由sbt的支持
apt-get -y install git
git clone https://github.com/yahoo/kafka-manager
安装sbt
echo "deb https://dl.bintray.com/sbt/debian /" | sudo tee -a /etc/apt/sources.list.d/sbt.list
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2EE0EA64E40A89B84B2DF73499E82A75642AC823
sudo apt-get update
sudo apt-get install sbt
配置zk的地址
在conf/application.conf中将kafka-manager.zkhosts的值设置为真实的服务器地址
打包完成后,对kafka-manager-xxxx.zip包进行解压,位置在target/universal目录下
kafka-manager/target/universal
修改配置
vim kafka-manager-xxxx/conf/application.conf
启动Kafka manager
bin/kafka-manager -Dconfig.file=/opt/kafka-manager-1xxxx7/conf/application.conf -Dhttp.port=7778
访问
http://localhost:9000
然后在cluster中add cluster,比如
启动后如果遇到
[warn] o.a.k.c.p.Errors - Unexpected error code: 38.
[warn] o.a.k.c.NetworkClient - Error while fetching metadata with correlation id 98 : {__consumer_offsets=UNKNOWN}
就手动创建一个叫__consumer_offsets的topic
如果你的kafka只有一台机器,然后遇到kafka-console-consumer无法消费的情况,可以查看一下
offsets.topic.replication.factor这个参数是否为1,不是1的话消费者的offset是无法提交上去的
启动Kafka的JMX,只需要修改kafka的启动命令就行,注意给kafka添加jmx需要在kafka manager之前
启动kafka服务时指定JMX_PORT值:
JMX_PORT=9999 bin/kafka-server-start.sh -daemon config/server.properties
//一台机器部署多个server采用此方法
或者修改kafka-server-start.sh,在前面加上:
export JMX_PORT=9999
//如果一台机器部署一个server 建议采用此方法
关于Kafka Manager中的一些参数说明:
Topic 指标
Replication (副本数)
Number of Partitions (分区数)
Sum of partition offsets (offset大小,需要开启JMX支持)
Total number of Brokers (Broker总数)
Number of Brokers for Topic (Topic所占Broker数)
Preferred Replicas % ()
Brokers Skewed % (Broker 均衡率)
Brokers Spread % (Broker 扩散率)
Under-replicated % (处于同步状态的比率)
Metrics 指标
Message in /sec 消息数据流量
Bytes in /sec kafka输入数据流量
Bytes out /sec kafka输出数据流量
Bytes rejected /sec 拒绝的流量
Failed fetch request /sec 失败的获取请求
Failed produce request /sec 失败的生产请求
如果执行sbt clean all失败执行如下操作再次尝试
rm -rf ~/.ivy2
rm -rf ~/.sbt