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

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

背景

一句话说明需求:

  • 公司需要监控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集成显示。

监控效果截图

prometheus 监控kafka,运维,1024程序员节,kafka,prometheus
prometheus 监控kafka,运维,1024程序员节,kafka,prometheus
prometheus 监控kafka,运维,1024程序员节,kafka,prometheus
prometheus 监控kafka,运维,1024程序员节,kafka,prometheus

参考链接

【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访问查看相关的监控指标,如下图:
prometheus 监控kafka,运维,1024程序员节,kafka,prometheus

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

修改配置文件并重启Prometheus

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

使用curl命令重启prometheus的前提是:首次启动Prometheus时,就启用web.enable-lifecycle功能,具体启动命令如下:

#使用sudo权限,后台执行Prometheus启动命令,并启用lifecycle功能,指定监听端口为9091
sudo nohup ./prometheus --web.enable-lifecycle --web.listen-address=:9091 &

修改内容如下:
prometheus 监控kafka,运维,1024程序员节,kafka,prometheus

6.访问Prometheus,验证target是否监控成功。

prometheus 监控kafka,运维,1024程序员节,kafka,prometheus

7.配置Grafana:导入模板、配置数据源、查看监控数据。

下载dashboard模板,配合jmx-agent使用时,建议使用11962号模板。【Grafana官方:11962号模板下载地址】
prometheus 监控kafka,运维,1024程序员节,kafka,prometheus
导入模板,上传json文件。
prometheus 监控kafka,运维,1024程序员节,kafka,prometheus
查看仪表板,成功取得监控数据。
prometheus 监控kafka,运维,1024程序员节,kafka,prometheus
注意:文章来源地址https://www.toymoban.com/news/detail-762799.html

  1. 需要开通kafka、Prometheus、Grafana之间对具体端口的防火墙策略。
  2. 没啥注意的了,你们先操作吧,方式二、方式三我后面再补充。

方式二:使用kafka_exporter监控

  1. 下载kafka_exporter程序包。
  2. 修改kafka_exporter配置文件。
  3. 启动kafka_exporter。
  4. 重启prometheus。
  5. 导入grafana模板。

方式三:使用Kminion监控

  1. 下载Kminion程序包。
  2. 修改kminion配置文件。
  3. 创建kminion配置文件的环境变量。
  4. 启动kminion。
  5. 重启prometheus。
  6. 导入grafana模板。

注意:

  1. 防火墙策略。
  2. 端口占用情况。

相关截图

结束

到了这里,关于Prometheus监控Kafka(三种方法JMX/Kafka_exporter/KMINION监控Kafka)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索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日
    浏览(26)
  • Grafana Prometheus 通过JMX监控kafka

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

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

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

    2024年02月13日
    浏览(42)
  • 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日
    浏览(54)
  • 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日
    浏览(25)
  • JMX+Prometheus监控Grafana展示

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

    2024年02月13日
    浏览(35)
  • 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日
    浏览(53)
  • 【Java万花筒】Java 应用程序监控与管理综述:从JMX到Prometheus的全面指南

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

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

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

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

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

    2024年02月16日
    浏览(30)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包