- 公司需要监控kafka消息队列的消费情况,强调需查看当前topic中的message的数量。
一句话说明解决:
- 像kafka这样的java进程可以先通过jmx agent或者第三方agent(kafka_exporter\kminion等)获取监控数据,再通过prometheus采集数据、通过grafana模板展示数据即可。另外具体的message数量需要通过promql语句查询得到。
多说几句:
- kafka应用的具体指标和jvm虚拟机的指标都可以通过jmx监控得到。
- zabbix也可以监控kafka,也是通过jmx实现。
- prometheus对自定义监控项更友好,相关的grafana模板更多。
- 建议同时使用jmx和kminion,同时使用两者的grafana模板(具体性能损耗的评估稍后有时间我再详细说明,有时间折腾也可以只装一个)
- 三种方式获取的都是kafka监控指标,最终都通过grafana集成显示。
2024.02.12补充注意:好几张截图里的第二个messages per sec值其实是all messages 的值,查看grafana模板promsql 可以确定。编辑配置可以修改,应该是模版作者的小疏漏。
监控效果截图
参考链接
【grafana模板库:搜索kafka】
【阿里云官方文档:如何部署和配置kafka jmx agent】
实际操作
方式一:使用jmx监控
操作要点
- 下载jmx程序包。
- 修改kafka启动参数
- 重启kafka
- 访问jmx-agent端口验证监控指标
- 5.修改配置文件,并重启prometheus
- 访问prometheus,验证target是否监控成功。
- 配置grafana:导入模板、配置数据源、查看监控数据。
1.下载jmx程序包
使用阿里云提供的jmx-agent包,比较稳定靠谱,就不故意选择最新版本了。
下载链接:【阿里云jmx-agent下载】
下载后需传输到kafka所在服务器上,如:
[sysma@kafka-0001 jmx_agent]$ ls
kafka-jmx_prometheus_javaagent-1.18.1.jar
[sysma@kafka-0001 jmx_agent]$ pwd
/ilw/jmx_agent
[sysma@kafka-0001 jmx_agent]$
2.修改kafka启动参数。
修改kafka启动脚本的配置参数,可参考阿里云【阿里云官方文档:如何部署和配置kafka jmx agent】
也可参考我的示例文件,对比阿里云文档截图,我的示例文件更为简单直观:
在extra_args=${extra_args-'-name kafkaserver -loggc '}
这一行之后,新增jmx-agent内容-javaagent:/ilw/jmx_agent/kafka-jmx_prometheus_javaagent-1.18.1.jar=5506
,目的是下次启动kafka进程的同时,运行一个jmx-agent并指定agent的端口。
完整示例文件如下:
[sysma@kafka-0001 bin]$ pwd
/ilw/kafka_2.12-3.5.0/bin
[sysma@kafka-0001 bin]$ cat kafka-server-start.sh
#!/bin/bash
# licensed to the apache software foundation (asf) under one or more
# contributor license agreements. see the notice file distributed with
# this work for additional information regarding copyright ownership.
# the asf licenses this file to you under the apache license, version 2.0
# (the "license"); you may not use this file except in compliance with
# the license. you may obtain a copy of the license at
#
# http://www.apache.org/licenses/license-2.0
#
# unless required by applicable law or agreed to in writing, software
# distributed under the license is distributed on an "as is" basis,
# without warranties or conditions of any kind, either express or implied.
# see the license for the specific language governing permissions and
# limitations under the license.
if [ $# -lt 1 ];
then
echo "usage: $0 [-daemon] server.properties [--override property=value]\*"
exit 1
fi
base\_dir=$(dirname $0)
if [ "x$kafka\_log4j\_opts" = "x" ]; then
export kafka\_log4j\_opts="-dlog4j.configuration=file:$base\_dir/../config/log4j.properties"
fi
if [ "x$kafka\_heap\_opts" = "x" ]; then
export kafka\_heap\_opts="-xmx1g -xms1g"
fi
##修改前,默认配置如下
#extra\_args=${extra\_args-'-name kafkaserver -loggc'}
#修改后,在下一行新增jmx-agent的路径位置,指定jmx暴露端口。
extra\_args=${extra\_args-'-name kafkaserver -loggc -javaagent:/ilw/jmx\_agent/kafka-jmx\_prometheus\_javaagent-1.18.1.jar=5506'}
command=$1
case $command in
-daemon)
extra\_args="-daemon "$extra\_args
shift
;;
*)
;;
esac
exec $base\_dir/kafka-run-class.sh $extra\_args kafka.kafka "$@"
[sysma@kafka-0001 bin]$
3.重启kafka
启动和停止kafka的脚本如下,也可直接复制命令执行:
[sysma@kafka-0001 ilw]$ cat 03_startkfk-3.5.0.sh
sudo /ilw/kafka_2.12-3.5.0/bin/kafka-server-start.sh /ilw/kafka_2.12-3.5.0/config/server.properties &
[sysma@kafka-0001 ilw]$ cat 04_stopkfk-3.5.0.sh
sudo /ilw/kafka_2.12-3.5.0/bin/kafka-server-stop.sh /ilw/kafka_2.12-3.5.0/config/server.properties
4.访问jmx-agent端口验证监控指标
配置文件中指定了jmx-agent端口为5506。在开放防火墙策略、保证kafka重启成功后,可通过web访问查看相关的监控指标,如下图:
5.修改配置文件,并重启prometheus
修改配置文件并重启prometheus
sudo vim prometheus.yml
curl -x post http://127.0.0.1:9091/-/reload
使用curl命令重启prometheus的前提是:首次启动prometheus时,就启用web.enable-lifecycle
功能,具体启动命令如下:
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、oppo等大厂,18年进入阿里一直到现在。**
**深知大多数大数据工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
**因此收集整理了一份《2024年大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。**





**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上大数据开发知识点,真正体系化!**
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
**如果你觉得这些内容对你有帮助,可以添加vx:vip204888 (备注大数据获取)**

学习提升的进阶课程,基本涵盖了95%以上大数据开发知识点,真正体系化!**
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
**如果你觉得这些内容对你有帮助,可以添加vx:vip204888 (备注大数据获取)**
[外链图片转存中...(img-tkppstyq-1712857325462)]
发表评论