RocketMQ系列二:RocketMQ监控/告警一站式搭建应用

实验简介


 

研究RocketMQ的同学都知道,RocketMQ的生态目前并不是很完善,包括官方的文档资料也有限,官方的Console存在一些Bug,页面
的样式有的也有问题,但是正是由于这些原因,我们针对RocketMQ能做的事有很多,不像Kafka,生态已经很完善,一些企业也对Kafka
做了开源的产品,最近开始做基于K8S的RocketMQ管理控制台,需要对每个集群有完善的监控告警,接下来就简单说明一下做
RocketMQ的监控有哪些步骤。

实验地址:RocketMQ监控/告警一站式搭建应用 - 云起实验室-在线实验-上云实践-阿里云开发者社区-阿里云官方实验平台-阿里云

实验详情


一、实验环境说明

  1. 启动namesrv。观察到启动成功的日志后, ctrl + c,终止日志输出。
cd /usr/local/services/5-rocketmq/namesrv-01

restart.sh



  1. 启动broker

修改broker配置项brokerIP1为实验公网IP,启动broker。观察到启动成功的日志后, ctrl + c,终止日志输出。

RocketMQ系列二:RocketMQ监控/告警一站式搭建应用_第1张图片

操作命令如下:

cd /usr/local/services/5-rocketmq/broker-01

vim ./conf/broker.conf 

restart.sh


二、如何编译和部署RocketMQ

(本教程会以如何利用RocketMQ Exporter源码编译并打包,部署一个Exporter实例。)

1. 安装git,jdk, maven等工具**(当前实验环境已经安装好。参考或者baidu/google)**

  • jdk安装

    • jdk 下载:Java Archive Downloads - Java SE 8 | Oracle Hong Kong SAR, PRC

    • jdk 安装

      • macos:Mac 配置JDK环境变量 - 掘金

      • windows:Windows 10 配置Java 环境变量 | 菜鸟教程

  • maven安装

    • maven 下载二进制:dist - Revision 55898: /release/maven/maven-3

    • maven 安装(windows + macos):Maven 环境配置 | 菜鸟教程

    • 如果对于国外网站访问慢, 可以配置maven国内镜像:推荐一些常用镜像及国内maven仓库 - 腾讯云开发者社区-腾讯云

  • git安装 ( 可选 , 不安装的话直接下载4.9.3源代码:Releases · apache/rocketmq · GitHub)

    • 下载地址:Git - 安装 Git

**2.**下载代码

在自己电脑上, 进入命令行, 选择一个保存源码的目录, 这里我把源码保存到 /tiger/tmp为例

2.1 创建代码保存目录(已创建则不操作)并进入代码保存目录:

mkdir -p /tiger/tmp
cd /tiger/tmp

2.2 克隆master代码

git clone https://github.com/apache/rocketmq-exporter.git
or 
git clone https://gitee.com/mirrors_apache/rocketmq-exporter

2.3 进入源码根目录:

cd rocketmq-exporter

3. 编译和打包

  • 修改配置文件中的namesrv地址
vim src/main/resources/application.yml

  • 执行打包命令
mvn clean package -Dmaven.test.skip=true

  • 编译打包成功后, 我们执行:
cd target
ls -l

  • 运行exporter
java -Xms200m -Xmx200m -Xmn200m  -jar rocketmq-exporter-0.0.2-SNAPSHOT.jar

  • 查看exporter采集结果

通过访问http://实验公网IP:30903/metrics, 可以看到采集结果.

RocketMQ系列二:RocketMQ监控/告警一站式搭建应用_第2张图片

三、配置Prometheus采集RocketMQ

(本节将介绍如何在Prometheus上配置RocketMQ Exporter。Prometheus的部署在这里暂时不做更多介绍, 实验环境已经部署好一个Prometheus,这里我们直接使用)

1.启动RocketMQ Exporter(已经启动则不用操作)

2. 启动实验环境Prometheus实例

  • 进入Prometheus根目录,启动Prometheus
cd /usr/local/services/3-prometheus

./restart.sh

也可以通过访问http://实验公网IP:30902 的形式访问prometheus

RocketMQ系列二:RocketMQ监控/告警一站式搭建应用_第3张图片

3. 配置Prometheus采集RocketMQ Exporter

  • 进入prometheus根目录,修改配置文件
cd /usr/local/services/3-prometheus

vim prometheus.yml

  • 执行热加载配置命令
./reload.sh

  • 验证配置是否生效

登录promethues页面,通过观察Targets,我们看到配置已经生效了

RocketMQ系列二:RocketMQ监控/告警一站式搭建应用_第4张图片

4. 在Prometheus上查看RocketMQ Exporter采集的指标

登录promethues首页, 通过输入rocketmq我们可以查询到全部rocketmq的指标。目前在实验环境中的Exporter总共82个指标。想了解每个指标的具体含义可以翻看我写的<>, 这里面有对namesrv,broker全部配置,exporter全部指标的含义分享。

RocketMQ系列二:RocketMQ监控/告警一站式搭建应用_第5张图片

四、配置Grafana展示RocketMQ监控

(本节将介绍如何在Grafana上配置RocketMQ的监控指标。实验环境已经安装好了RocketMQ集群, RocketMQ Exporter, Prometheus, 只需要启动即可)

1.  启动Grafana

cd /usr/local/services/4-grafana

./restart.sh

启动完成后, 可以访问http://实验环境公网IP:30901, 使用账号 rocketmq/rocketmq666 账号密码登录。

2. 配置Prometheus为Grafana数据源

  • 找到数据源配置菜单,点击进入
RocketMQ系列二:RocketMQ监控/告警一站式搭建应用_第6张图片
RocketMQ系列二:RocketMQ监控/告警一站式搭建应用_第7张图片
RocketMQ系列二:RocketMQ监控/告警一站式搭建应用_第8张图片
  • 填写prometheus信息,保存
RocketMQ系列二:RocketMQ监控/告警一站式搭建应用_第9张图片
RocketMQ系列二:RocketMQ监控/告警一站式搭建应用_第10张图片
RocketMQ系列二:RocketMQ监控/告警一站式搭建应用_第11张图片
  • 创建一个dashboard, 并创建一个RocketMQ指标监控折线图。下面请按照截图操作。
RocketMQ系列二:RocketMQ监控/告警一站式搭建应用_第12张图片
  • 选择刚刚创建的Prometheus数据源,填写一个指标名,则可以预览一个指标的监控曲线。
RocketMQ系列二:RocketMQ监控/告警一站式搭建应用_第13张图片
  • 点击位置4时,弹窗提示保存
RocketMQ系列二:RocketMQ监控/告警一站式搭建应用_第14张图片
  • tips:Grafana可以用文件夹的形式保存相同类型的Dashboard

3. 配置一个Broker指标监控。

在RocketMQ中一个物理集群可以包含多个逻辑集群, 每个逻辑集群可以有自己的集群名和所包含的Broker。所以这里我们先配置一个下拉列表选择集群名、Broker的关系。

RocketMQ系列二:RocketMQ监控/告警一站式搭建应用_第15张图片

RocketMQ系列二:RocketMQ监控/告警一站式搭建应用_第16张图片

  • 填充一些变量基本信息
  1. 变量名,会被曲线图query sql中引用

  2. 变量展示的名字, 仅展示

  3. 数据源, 这里选择我们之前配置的prometheus

  4. 填写查询全部集群名的query。获取一个指标的全部label的值:

label_values(rocketmq_brokeruntime_commitlogdir_capacity_total, cluster)

rocketmq_brokeruntime_commitlogdir_capacity_total是一个指标名, cluster是这个指标的label名字。

  1. 如果步骤4正确填写, 可以在这里预览全部的集群名。

RocketMQ系列二:RocketMQ监控/告警一站式搭建应用_第17张图片

点击update可以保存一个集群变量。

下面我们配置选择好一个集群后, 自动筛选出这个集群中的broker, 整个步骤和创建一个变量是一样的,只是query中会引用另一个变量:

label_values(rocketmq_brokeruntime_commitlogdir_capacity_total{cluster="$clusterName"}, brokerIP)

保存后, 我们查看最后的效果

RocketMQ系列二:RocketMQ监控/告警一站式搭建应用_第18张图片

还有一个问题, 选择了一个集群,一个broker后, 曲线数据没有变化呢? 因为曲线没有和变量联动。

这里以上面配置的曲线为例, 修改query:

rocketmq_brokeruntime_commitlog_disk_ratio{cluster="$clusterName", brokerIP="$broker"}

修改结果为:

RocketMQ系列二:RocketMQ监控/告警一站式搭建应用_第19张图片

点击保存后, 曲线的指标和集群、broker就会联动。

五、RocketMQ官方推荐大盘配置

通过上一节的学习, 我们知道RocketMQ有很多指标, 如果挨个配置曲线比较费劲。 Grafana社区已经收集了很多常用组件的大盘配置,拿到后直接导入自己的Grafana。

下面我们找到RocketMQ的dashboard,然后导入实验环境。

  • 进入dashboard仓库地址:Dashboards | Grafana Labs,输入rocketmq搜索

RocketMQ系列二:RocketMQ监控/告警一站式搭建应用_第20张图片

  • 选择一个你喜欢的dashboard,点击进去,下载dashboard的json字符串。

RocketMQ系列二:RocketMQ监控/告警一站式搭建应用_第21张图片

  • 导入Grafana, 并保存。

RocketMQ系列二:RocketMQ监控/告警一站式搭建应用_第22张图片

选择刚刚下载的json文件,导入即可。

RocketMQ系列二:RocketMQ监控/告警一站式搭建应用_第23张图片

选择已有的RocketMQ数据源, 点击导入。

RocketMQ系列二:RocketMQ监控/告警一站式搭建应用_第24张图片

导入完成后我们可以看到结果

·  想了解更多场景细节请前往云起实验室

立即前往:RocketMQ 钉钉消息推送 应用实战营

你可能感兴趣的:(rocketmq)