当前位置: 首页 > news >正文

【运维监控】Prometheus+grafana+kafka_exporter监控kafka运行情况

  • 运维监控系列文章入口:【运维监控】系列文章汇总索引

文章目录

  • 一、prometheus
  • 二、grafana
  • 三、部署kafka_exporter
    • 1、下载
    • 2、解压
    • 3、配置
    • 4、启动
    • 5、验证
  • 四、prometheus集成grafana监控kafka
    • 1、修改prometheus配置
    • 2、导入grafana模板
    • 3、验证


  • 本示例通过kafka_exporter收集kafka的监控指标,然后将数据收集到prometheus中,最后通过grafana的dashboard导入模板进行可视化。
  • 本示例分为四个部分,即prometheus、grafana部署、kafka_exporter部署与配置和最后的集成。
  • 说明:本示例中的部署环境没有要求,即应用部署的机器根据实际情况而定,只要网络连通即可。

一、prometheus

参考:【运维监控】prometheus+node exporter+grafana 监控linux机器运行情况关于prometheus的部署。

二、grafana

参考:【运维监控】prometheus+node exporter+grafana 监控linux机器运行情况 关于grafana的部署。

三、部署kafka_exporter

通过kafka_exporter 用来收集 Topic、Broker、ConsumerGroup 的相关信息,可以方便对接 prometheus 和 grafana,使用起来比较方便。

相比JMX,kafka_exporter优势在于不需要消耗 JVM资源,指标收集时间从分钟级别降到秒级别,便于大规模集群的监控。

1、下载

下载地址:https://github.com/danielqsj/kafka_exporter/releases
下载版本:kafka_exporter-1.8.0.linux-amd64.tar.gz

2、解压

tar -xvf kafka_exporter-1.8.0.linux-amd64.tar.gz
cd kafka_exporter-1.8.0.linux-amd64/[alanchan@server3 bigdata]$ pwd
/usr/local/bigdata
[alanchan@server3 bigdata]$ ll
total 742444
drwxr-xr-x  9 alanchan root      4096 Dec 30  2022 kafka_2.12-3.0.0
-rw-r--r--  1 alanchan root  10451435 Sep  6 02:49 kafka_exporter-1.8.0.linux-amd64.tar.gz
[alanchan@server3 bigdata]$ tar -xvf kafka_exporter-1.8.0.linux-amd64.tar.gz
kafka_exporter-1.8.0.linux-amd64/
kafka_exporter-1.8.0.linux-amd64/LICENSE
kafka_exporter-1.8.0.linux-amd64/kafka_exporter
[alanchan@server3 bigdata]$ cd kafka_exporter-1.8.0.linux-amd64
[alanchan@server3 kafka_exporter-1.8.0.linux-amd64]$ ll
total 19980
-rwxr-xr-x 1 alanchan root 20446894 Aug 20 07:06 kafka_exporter
-rw-r--r-- 1 alanchan root    11357 Aug 20 07:02 LICENSE

3、配置

1个kafka集群只需要1个kafka_exporter,在集群上的任意1台服务器部署(视情况而定)。
作者的kafka是一个集群环境,部署在server1、server2和server3上,kafka_exporter选择部署在server3上。

kafka_exporter使用默认配置。

4、启动

# 收集单个kafka集群的指标
cd /usr/local/bigdata/kafka_exporter-1.8.0.linux-amd64
./kafka_exporter --kafka.server=server1:9092[alanchan@server3 kafka_exporter-1.8.0.linux-amd64]$ ./kafka_exporter --kafka.server=server1:9092
I0906 06:21:32.330396   28902 kafka_exporter.go:823] Starting kafka_exporter (version=1.8.0, branch=HEAD, revision=477643dd764c46ddd804ac4bd4022be877e3085b)
I0906 06:21:32.334258   28902 kafka_exporter.go:994] Listening on HTTP :9308
I0906 06:21:59.889927   28902 kafka_exporter.go:678] [server1:9092 server3:9092 server2:9092]# 收集多个kafka集群的指标,以下为示例
kafka_exporter --kafka.server=server1:9092 [--kafka.server=another-server ...]
kafka_exporter --kafka.server=server1:9092 --kafka.server=server2:9092 --kafka.server=server3:9092

5、验证

启动成功后,可以访问 http://server3:9308/metrics
在这里插入图片描述

四、prometheus集成grafana监控kafka

1、修改prometheus配置

在prometheus的配置文件(prometheus.yml)中添加如下配置部分。增加kafka_exporter的收集服务配置,示例如下。

  - job_name: "kafka-monitor"static_configs:- targets: ["server3:9308"]

重启prometheus后,并验证是否收集到监控信息。
查看Prometheus是否监控到运行的kafka应用如下图。
在这里插入图片描述
在prometheus中查询收集到的指标数据,如下图所示。
在这里插入图片描述

2、导入grafana模板

导入过程不再赘述,参考文章:【运维监控】Prometheus+grafana监控tomcat8.5 运行情况
本示例导入的模板ID是7589(kafka-exporter-overview)。

3、验证

以上所涉及的服务均能正常的运行,以及验证都通过。
导入模板完成后,会显示“No Data”,只有当kafka中有数据的时候,才会在模板中显示具体的指标数据。图示如下。
在这里插入图片描述
在这里插入图片描述
以上,完成了Prometheus+grafana监控kafka运行情况的示例。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • linux 操作系统下的cut命令介绍和使用案例
  • JVM字节码
  • UVA1395 Slim Span(最小生成树)
  • Unity3d 以鼠标位置点为中心缩放视角(正交模式下)
  • 详解c++多态---上
  • 动态规划---不相交的线
  • 【前端】ref引用的作用
  • Golang、Python、C语言、Java的圆桌会议
  • Vue.js 计算属性
  • 数据结构:堆的算法
  • Nginx 文件名逻辑漏洞(CVE-2013-4547)
  • ESP8266做httpServer提示Header fields are too long for server to interpret
  • 【论文分享精炼版】 sNPU: Trusted Execution Environments on Integrated NPUs
  • NAT技术
  • vue3 +百度地图 实现 地点检索,输入联想,经纬度,逆地理编码,创建标记,label等
  • 【刷算法】从上往下打印二叉树
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • 2019.2.20 c++ 知识梳理
  • 2019年如何成为全栈工程师?
  • Javascripit类型转换比较那点事儿,双等号(==)
  • JS数组方法汇总
  • ng6--错误信息小结(持续更新)
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • 二维平面内的碰撞检测【一】
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 码农张的Bug人生 - 初来乍到
  • 爬虫模拟登陆 SegmentFault
  • 如何用vue打造一个移动端音乐播放器
  • 使用API自动生成工具优化前端工作流
  • 微信开放平台全网发布【失败】的几点排查方法
  • 微信小程序填坑清单
  • 一道闭包题引发的思考
  • puppet连载22:define用法
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • ​力扣解法汇总946-验证栈序列
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #QT项目实战(天气预报)
  • (1)bark-ml
  • (10)STL算法之搜索(二) 二分查找
  • (16)Reactor的测试——响应式Spring的道法术器
  • (175)FPGA门控时钟技术
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (回溯) LeetCode 78. 子集
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET Core中如何集成RabbitMQ
  • .NET 药厂业务系统 CPU爆高分析
  • .net经典笔试题
  • .NET设计模式(7):创建型模式专题总结(Creational Pattern)
  • .NET下ASPX编程的几个小问题
  • .net专家(高海东的专栏)
  • /var/log/cvslog 太大
  • ??在JSP中,java和JavaScript如何交互?