监控软件
KafkaManager:https://github.com/yahoo/kafka-manager
Kafka-eagle:https://github.com/smartloli/kafka-eagle
CDH自带有很好的监控
JMXtrans + InfluxDB + Grafana实现Kafka性能指标监控
安装
JMXtrans
收集来自已经启动jmx的kafka服务的数据
两种方式:只部署1台,配置多台去采集
每台节点都部署一个
修改 kafka-server-start.sh文件
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
export KAFKA_HEAP_OPTS="-Xmx2G -Xms2G -Xmn1G -XX:PermSize=64m -XX:MaxPermSize=128m -XX:SurvivorRatio=6 -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseCMSInitiatingOccupancyOnly"
export KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.1.58"
fi
重启kafka生效
安装
在这个链接里下某个版本的jmxtrans的jar包
http://central.maven.org/maven2/org/jmxtrans/jmxtrans/
比如jmxtrans-263-all.jar
下载执行脚本
https://github.com/jmxtrans/jmxtrans/blob/master/jmxtrans/jmxtrans.sh
改权限:chmod +x jmxtrans.sh
InfluxDB
时序数据库
https://docs.influxdata.com/influxdb
像这样存数据:
2017-03-03 11:00:00.456 1 xiaoming boy 18
2017-03-03 11:00:10.356 2 xiaowang boy 45
安装,可以参考 官网 。
注意,使用的时候,influx -precision rfc3339
rfc3339是一个时间的格式,比如 2018-02-12T11:03:32.196646259Z
不带rfc3339也可以启动,但是查看的时间是一长串数字(时间戳?)
Grafana
可视化
安装http://docs.grafana.org/installation/rpm/
安装完成后打开web界面http://ip:3000
使用
采集服务启动
JMXTRANS_OPTS="-Dport1=9999 -Dhost1=hadoopdn-01 -Dalias1=kafka1 \
-DinfluxUrl=http://hadoopdn-04:8086/ -DinfluxDb=kafka -DinfluxUser=admin -DinfluxPwd=admin" \
SECONDS_BETWEEN_RUNS=5 \
JAR_FILE=jmxtrans-263-all.jar \
./jmxtrans.sh start test.json
查看状态:
JMXTRANS_OPTS="-Dport1=9999 -Dhost1=hadoopdn-01 -Dalias1=kafka1 \
-DinfluxUrl=http://hadoopdn-04:8086/ -DinfluxDb=kafka -DinfluxUser=admin -DinfluxPwd=admin" \
SECONDS_BETWEEN_RUNS=5 \
JAR_FILE=jmxtrans-263-all.jar \
./jmxtrans.sh start test.json
使用Grafana创建数据源和DashBoard,再创建适合的图表。
server端监控信息(建议):
监控GC time
监控系统状态比如CPU利用率、I/O服务时间等
注意,要在安装的机器上执行多次jmx启动(监控对象不同),来监控集群上的多个节点。