研究RocketMQ的同学都知道,RocketMQ的生态目前并不是很完善,包括官方的文档资料也有限,官方的Console存在一些Bug,页面的样式有的也有问题,但是正是由于这些原因,我们针对RocketMQ能做的事有很多,不像Kafka,生态已经很完善,一些企业也对Kafka做了开源的产品,最近开始做基于K8S的RocketMQ管理控制台,需要对每个集群有完善的监控告警,接下来就简单说明一下做RocketMQ的监控有哪些步骤。
实验地址: https://developer.aliyun.com/adc/scenario/78eb946f67644f0db4450889dcdf43bf
修改broker配置项brokerIP1为 实验公网IP,启动broker。观察到启动成功的日志后, ctrl + c,终止日志输出。
操作命令如下:
(本教程会以如何利用RocketMQ Exporter源码编译并打包,部署一个Exporter实例。)
1. 安装git,jdk, maven等工具**(当前实验环境已经安装好。参考或者baidu/google)**
jdk安装
jdk 下载:
jdk 安装
macos:
windows:
maven安装
maven 下载二进制:
maven 安装(windows + macos):
如果对于国外网站访问慢, 可以配置maven国内镜像: https://cloud.tencent.com/developer/article/1452479
git安装 ( 可选 , 不安装的话直接下载4.9.3源代码: )
**2.** 下载代码
在自己电脑上, 进入命令行, 选择一个保存源码的目录, 这里我把源码保存到 /tiger/tmp为例
2.1 创建代码保存目录(已创建则不操作)并进入代码保存目录:
2.2 克隆master代码
2.3 进入源码根目录:
3. 编译和打包
通过访问http://实验公网IP:30903/metrics, 可以看到采集结果.
(本节将介绍如何在Prometheus上配置RocketMQ Exporter。Prometheus的部署在这里暂时不做更多介绍, 实验环境已经部署好一个Prometheus,这里我们直接使用)
1. 启动RocketMQ Exporter(已经启动则不用操作)
2. 启动实验环境Prometheus实例
也可以通过访问http://实验公网IP:30902 的形式访问prometheus
3. 配置Prometheus采集RocketMQ Exporter
登录promethues页面,通过观察Targets,我们看到配置已经生效了
4. 在Prometheus上查看RocketMQ Exporter采集的指标
登录promethues首页, 通过输入rocketmq我们可以查询到全部rocketmq的指标。目前在实验环境中的Exporter总共82个指标。想了解每个指标的具体含义可以翻看我写的<<RocketMQ分布式消息中间件:核心原理与最佳实践>>, 这里面有对namesrv,broker全部配置,exporter全部指标的含义分享。
(本节将介绍如何在Grafana上配置RocketMQ的监控指标。实验环境已经安装好了RocketMQ集群, RocketMQ Exporter, Prometheus, 只需要启动即可)
1. 启动Grafana
启动完成后, 可以访问http://实验环境公网IP:30901, 使用账号 rocketmq/rocketmq666 账号密码登录。
2. 配置Prometheus为Grafana数据源
3. 配置一个Broker指标监控。
在RocketMQ中一个物理集群可以包含多个逻辑集群, 每个逻辑集群可以有自己的集群名和所包含的Broker。所以这里我们先配置一个下拉列表选择集群名、Broker的关系。
变量名,会被曲线图query sql中引用
变量展示的名字, 仅展示
数据源, 这里选择我们之前配置的prometheus
填写查询全部集群名的query。获取一个指标的全部label的值:
rocketmq_brokeruntime_commitlogdir_capacity_total是一个指标名, cluster是这个指标的label名字。
点击 update可以保存一个集群变量。
下面我们配置选择好一个集群后, 自动筛选出这个集群中的broker, 整个步骤和创建一个变量是一样的,只是query中会引用另一个变量:
保存后, 我们查看最后的效果
还有一个问题, 选择了一个集群,一个broker后, 曲线数据没有变化呢? 因为曲线没有和变量联动。
这里以上面配置的曲线为例, 修改query:
修改结果为:
点击保存后, 曲线的指标和集群、broker就会联动。
通过上一节的学习, 我们知道RocketMQ有很多指标, 如果挨个配置曲线比较费劲。 Grafana社区已经收集了很多常用组件的大盘配置,拿到后直接导入自己的Grafana。
下面我们找到RocketMQ的dashboard,然后导入实验环境。
选择刚刚下载的json文件,导入即可。
选择已有的RocketMQ数据源, 点击导入。
导入完成后我们可以看到结果
立即前往: https://developer.aliyun.com/adc/series/activity/rocketmq1
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69975905/viewspace-2907154/ ,如需转载,请注明出处,否则将追究法律责任。