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

这篇具有很好参考价值的文章主要介绍了Prometheus监控Kafka(三种方法JMX Kafka_exporter KMINION监控Kafka)_kafka exporter。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 公司需要监控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 可以确定。编辑配置可以修改,应该是模版作者的小疏漏。

监控效果截图

kafka-jmx_prometheus_javaagent-1.18.1.jar,2024年程序员学习,prometheus,kafka,分布式
kafka-jmx_prometheus_javaagent-1.18.1.jar,2024年程序员学习,prometheus,kafka,分布式
kafka-jmx_prometheus_javaagent-1.18.1.jar,2024年程序员学习,prometheus,kafka,分布式
kafka-jmx_prometheus_javaagent-1.18.1.jar,2024年程序员学习,prometheus,kafka,分布式

参考链接

【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访问查看相关的监控指标,如下图:
kafka-jmx_prometheus_javaagent-1.18.1.jar,2024年程序员学习,prometheus,kafka,分布式

5.修改配置文件,并重启Prometheus

修改配置文件并重启Prometheus

sudo vim prometheus.yml 
curl -X POST http://127.0.0.1:9091/-/reload

使用curl命令重启prometheus的前提是:首次启动Prometheus时,就启用web.enable-lifecycle功能,具体启动命令如下:文章来源地址https://www.toymoban.com/news/detail-857786.html



**自我介绍一下,小编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)]

到了这里,关于Prometheus监控Kafka(三种方法JMX Kafka_exporter KMINION监控Kafka)_kafka exporter的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • jmx_exporter监控kafka和zk的jvm

    GitHub - prometheus/jmx_exporter: A process for exposing JMX Beans via HTTP for Prometheus consumption wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.16.1/jmx_prometheus_javaagent-0.16.1.jar 可以通过java.lang 采集机器cpu 内存等基础信息 cat \\\"EOF\\\" common.yaml ---    lowercaseOutputLabelNames: true lowercaseOut

    2024年02月19日
    浏览(41)
  • Grafana Prometheus 通过JMX监控kafka

    目前网上关于使用Prometheus 监控kafka的大部分资料都是使用一个第三方的 kafka exporter,他的原理大概就是启动一个kafka客户端,获取kafka服务器的信息,然后提供一些metric接口供Prometheus使用,随意它能展示的监控信息比较有限,只有每个主题的分区数,每秒/分钟消息数,消费组

    2024年02月13日
    浏览(44)
  • Grafana Prometheus 通过JMX监控kafka 【2023最新方式】

    目前网上关于使用Prometheus 监控kafka的大部分资料都是使用一个第三方的 kafka exporter,他的原理大概就是启动一个kafka客户端,获取kafka服务器的信息,然后提供一些metric接口供Prometheus使用,随意它能展示的监控信息比较有限,只有每个主题的分区数,每秒/分钟消息数,消费组

    2024年02月13日
    浏览(59)
  • kafka_exporter部署

    kafka_exporter是prometheus官方提供的用于监控kafka运行状态的exporter 系统 版本 CentOS 7.6.1810 (Core) CPU/内存 4核、8G kafka_exporter 1.6.0 kafka_exporter ID: 7589 参考 prometheus部署 以上是centos上边部署kafka_exporter监控kafka的方法,有问题联系博主,后续也有其他插件

    2023年04月08日
    浏览(63)
  • dcgm-exporter + prometheus + kafka-adapter采集GPU容器监控

    项目地址:https://github.com/NVIDIA/dcgm-exporter dcgm-exporter主要用于将nvidia gpu的监控数据导出到prometheus里,符合prometheus的exporter规范。 deployment/templates/metrics-configmap.yaml定义了采集的指标名及具体含义,我们的场景下主要关注GPU和显存指标。 helm文档:https://helm.sh/zh/docs/ dcgm-exporte

    2024年02月13日
    浏览(39)
  • JMX+Prometheus监控Grafana展示

    最近在阅读InLong的源码,发现它采用通过JMX+Prometheus进行指标监控。 这里做了下延伸将介绍使用JMX+Prometheus+Grafana进行监控指标展示,这里单独将Metric部分代码抽离出来做介绍。 完整代码地址:https://download.csdn.net/download/zhangshenghang/88030454 主要类(使用Prometheus HTTPServer): 启

    2024年02月13日
    浏览(48)
  • Prometheus常用exporter及其常用监控指标

    CPU相关指标: node_cpu_seconds_total{mode=\\\"idle\\\"} :CPU空闲时间(秒)的总和。这是评估CPU使用率的重要指标之一。 node_cpu_seconds_total{mode=\\\"system\\\"} 、 node_cpu_seconds_total{mode=\\\"user\\\"} 等:分别表示CPU在内核态和用户态的运行时间。 内存相关指标: node_memory_MemTotal_bytes :内存总量(以字节为

    2024年03月11日
    浏览(65)
  • 【Java万花筒】Java 应用程序监控与管理综述:从JMX到Prometheus的全面指南

    在现代软件开发中,运维与监控是确保应用程序稳定性和性能的关键环节。Java作为一种广泛应用的编程语言,拥有丰富的运维与监控库,为开发者提供了强大的工具来管理和优化应用程序。本文将深入探讨 Java 中常用的运维与监控库,包括 JMX、Metrics、Spring Boot Admin、AppDyna

    2024年02月19日
    浏览(84)
  • 【监控系统】Prometheus监控组件Mysql-Exporter配置实战

    Mysql-Exporter主要监控Mysql数据库的稳定性、吞吐量、连接情况、缓冲池使用情况、查询性能等各项指标,是我们压测时常常需要监控的一些指标。 目前,Exporter 支持高于5.6版本的 MySQL 和高于10.1版本的 MariaDB。在 MySQL/MariaDB 低于5.6版本时,部分监控指标可能无法被采集。 OK,下

    2024年02月16日
    浏览(43)
  • 【监控系统】Prometheus监控组件Node-Exporter配置实战

    这一节,我们来配置一下Node-Exporter,那么我们先来了解一下什么是Prometheus的Exporter? 任何向Prometheus提供监控样本数据的程序都可以被称为一个Exporter,它是一种用于将不同数据源的指标提供给Prometheus进行收集和监控的工具。运行在应用程序、计算机、网络设备或者其他系统

    2024年02月15日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包