Zabbix监控Kafka集群 Brokers服务

Posted by Yancy on 2017-06-01

Zabbix监控Kafka集群 Brokers服务

前言:

Monitoring Kafka with Datadog

This post is the final part of a 3-part series on how to monitor Kafka. Part 1 explores the key metrics available from Kafka, and Part 2 is about collecting those metrics on an ad hoc basis.

To implement ongoing, meaningful monitoring, you will need a dedicated system that allows you to store, visualize, and correlate your Kafka metrics with the rest of your infrastructure.

Kafka deployments often rely on additional software packages not included in the Kafka codebase itself, in particular Apache ZooKeeper. A comprehensive monitoring implementation includes all the layers of your deployment, including host-level metrics when appropriate, and not just the metrics emitted by Kafka itself.

我在处理Hadoop及相关服务监控、报警这里主要讲kafka集群服务。这里我也看了几篇kafka相关文章,好文贴出来:

在我们公司主要Kafka 的几个特性非常满足我们的需求:可扩展性、数据分区、低延迟、处理大量不同消费者的能力。

而这里我想帮忙BI团队实现Kafka全面监控。分两点:

1
2
1. 监控Kafka Brokers服务
2. 监控Kafka Lag堆积数

对于Kafka的监控,已经有现成的开源软件了,在我们公司内部也使用了一段时间,有两种方案。我们公司用第三种方案。
一般都会选择两个开源的工具:KafkaOffsetMonitor和kafka-web-console,这两款我都有用过.

  • Kafka三款监控工具比较

目录

1
2
3
1、Kafka Web Conslole
2、Kafka Manager
3、KafkaOffsetMonitor

KafkaOffsetMonitor:最大的好处就是配置简单,只需要配个zookeeper的地址就能用了,坑爹的地方就是不能自动刷新,手动刷新时耗时较长,而且有时候都刷不出来,另外就是图像用了一段时间就完全显示不了了,不知道大家是不是这样。

kafka-web-console:相比与前者,数据是落地的,因此刷新较快,而且支持在前端自定义zookeeper的地址,还能列出实时的topic里的具体内容。但是搭建比较复杂,而且github上的默认数据库是H2的,像我们一般用mysql的,还得自己转化。另外在用的过程中,我遇到一个问题,在连接kafka的leader失败的时候,会一直重试,其结果就是导致我kafka的那台机子连接数过高,都到2w了,不知道是不是它的一个bug。

具体介绍以及安装在我另外篇博文。这里不详细讲解开源软件,这里用zabbix监控Kafka Brokers服务。

kafka-monitoring Brokers服务

操作系统环境:

1
2
3
Centos 7.1
64G内存
2T磁盘空间,指定kafka写入数据目录。

说明下:

监控Brokers是利用Zabbix JMX监控获取数据。

☝️第一步:不用解释前提你在zabbix-server端已经安装过abbix-java-gataway 如果没有安装可以看下面,安装过可以略过第一步。

1.0 安装配置zabbix-java-gataway

1
2
3
4
5
6
7
8
9
10
11
yum install -y zabbix-java-gataway
vi /etc/zabbix/zabbix_java_gateway.conf
START_POLLERS=10
Uncoment并设置为StartJavaPollers = 5 更改JavaGateway的 IP = IP_address_java_gateway
```
1.1 重新启动zabbix-server
```bash
/etc/init.d/zabbix-java-gataway restart
chkconfig --level 345 zabbix-java-gataway on
/etc/init.d/zabbix-java-gataway start

☝️第二步:Kafka配置

这里我们服务器给大数据那边安装在指定用户目录下面:/home/jollybi/tools/kafka_2.10-0.8.2.1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
su - jollybi 进入相应用户
vim /home/jollybi/tools/kafka_2.10-0.8.2.1/kafka-run-class.sh
# JMX settings
if [ -z "$KAFKA_JMX_OPTS" ]; then
KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false - Dcom.sun.management.jmxremote.ssl=false "
fi
# JMX settings
if [ -z "$KAFKA_JMX_OPTS" ]; then
KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 - Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false "
fi

重启服务:

1
2
/home/jollybi/tools/kafka_2.10-0.8.2.1/bin/kafka-server-stop.sh
/home/jollybi/tools/kafka_2.10-0.8.2.1/bin/kafka-server-start.sh

☝️第三步:导入模板登录到您的zabbix网页.

导入模板登录到您的zabbix网页

单击配置 - >模板 - >导入

下载模板 zbx_kafka_templates.xml 并上传到zabbix然后将此模板添加到Kafka并在zabbix上配置JMX接口

输入Kafka IP地址和JMX端口如果看到jmx图标,您配置了JMX监控好!

  • 查看数据:


  • 查看效果图:

参考官网监控指标的含义;

Servilo Metrics broker Metrics
Producer Metrics Global Request Metrics
Global Connection Metrics

交流学习:

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

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