当前位置: 代码网 > 服务器>服务器>Linux > Prometheus监控Kafka(三种方法JMX Kafka_exporter KMINION监控Kafka)_kafka exporter

Prometheus监控Kafka(三种方法JMX Kafka_exporter KMINION监控Kafka)_kafka exporter

2024年08月02日 Linux 我要评论
配置文件中指定了jmx-agent端口为5506。,目的是下次启动kafka进程的同时,运行一个jmx-agent并指定agent的端口。使用curl命令重启prometheus的前提是:首次启动Prometheus时,就启用。使用阿里云提供的jmx-agent包,比较稳定靠谱,就不故意选择最新版本了。修改kafka启动脚本的配置参数,可参考阿里云。这一行之后,新增JMX-agent内容。修改配置文件并重启Prometheus。
  • 公司需要监控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监控

操作要点

  1. 下载jmx程序包。
  2. 修改kafka启动参数
  3. 重启kafka
  4. 访问jmx-agent端口验证监控指标
  5. 5.修改配置文件,并重启prometheus
  6. 访问prometheus,验证target是否监控成功。
  7. 配置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年大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。**
![img](https://img-blog.csdnimg.cn/img_convert/5d4f11e7f2204223bf6235632624e98a.png)
![img](https://img-blog.csdnimg.cn/img_convert/8a807aa43925cfba8d3c2b9f33fd7da3.png)
![img](https://img-blog.csdnimg.cn/img_convert/73d2dd65c226c3932dc50566585d67e5.png)
![img](https://img-blog.csdnimg.cn/img_convert/43724056106680c8edf8e337e82df5b7.png)
![img](https://img-blog.csdnimg.cn/img_convert/a61350830ff3820e74d710bbeb8de1e6.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上大数据开发知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以添加vx:vip204888 (备注大数据获取)**
![img](https://img-blog.csdnimg.cn/img_convert/512d83659ea81b97519d359686c87f7b.png)

学习提升的进阶课程,基本涵盖了95%以上大数据开发知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以添加vx:vip204888 (备注大数据获取)**
[外链图片转存中...(img-tkppstyq-1712857325462)]

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com