试验简介

钻研RocketMQ的同学都晓得,RocketMQ的生态目前并不是很欠缺,包含官网的文档资料也无限,官网的Console存在一些Bug,页面
的款式有的也有问题,然而正是因为这些起因,咱们针对RocketMQ能做的事有很多,不像Kafka,生态曾经很欠缺,一些企业也对Kafka
做了开源的产品,最近开始做基于K8S的RocketMQ治理控制台,须要对每个集群有欠缺的监控告警,接下来就简略阐明一下做
RocketMQ的监控有哪些步骤。

试验地址:https://developer.aliyun.com/...

试验详情

一、试验环境阐明

启动namesrv。察看到启动胜利的日志后, ctrl + c,终止日志输入。

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

restart.sh

启动broker

批改broker配置项brokerIP1为试验公网IP,启动broker。察看到启动胜利的日志后, ctrl + c,终止日志输入。

操作命令如下:

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 下载:https://www.oracle.com/hk/java/technologies/javase/javase8-archive-downloads.html            jdk 装置                    macos:https://juejin.cn/post/6844903878694010893                        windows:https://www.runoob.com/w3cnote/windows10-java-setup.html                maven装置        maven 下载二进制:https://dist.apache.org/repos/dist/release/maven/maven-3/            maven 装置(windows + macos):https://www.runoob.com/maven/maven-setup.html            如果对于国外网站拜访慢, 能够配置maven国内镜像:https://cloud.tencent.com/developer/article/1452479    git装置 ( 可选 , 不装置的话间接下载4.9.3源代码:https://github.com/apache/rocketmq/releases)    下载地址:https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git

2.下载代码

在本人电脑上, 进入命令行, 抉择一个保留源码的目录, 这里我把源码保留到 /tiger/tmp为例

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

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

2.2 克隆master代码

git clone https://github.com/apache/roc...
or
git clone https://gitee.com/mirrors_apa...

2.3 进入源码根目录:

cd rocketmq-exporter

  1. 编译和打包
批改配置文件中的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, 能够看到采集后果.

三、配置Prometheus采集RocketMQ

(本节将介绍如何在Prometheus上配置RocketMQ Exporter。Prometheus的部署在这里临时不做更多介绍, 试验环境曾经部署好一个Prometheus,这里咱们间接应用)

1.启动RocketMQ Exporter(曾经启动则不必操作)

  1. 启动试验环境Prometheus实例
进入Prometheus根目录,启动Prometheus

cd /usr/local/services/3-prometheus

./restart.sh

也能够通过拜访http://试验公网IP:30902 的模式拜访prometheus

  1. 配置Prometheus采集RocketMQ Exporter
进入prometheus根目录,批改配置文件

cd /usr/local/services/3-prometheus

vim prometheus.yml

执行热加载配置命令

./reload.sh

验证配置是否失效

登录promethues页面,通过观察Targets,咱们看到配置曾经失效了

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

登录promethues首页, 通过输出rocketmq咱们能够查问到全副rocketmq的指标。目前在试验环境中的Exporter总共82个指标。想理解每个指标的具体含意能够翻看我写的<<RocketMQ分布式消息中间件:外围原理与最佳实际>>, 这外面有对namesrv,broker全副配置,exporter全副指标的含意分享。

四、配置Grafana展现RocketMQ监控

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

1.  启动Grafana

cd /usr/local/services/4-grafana

./restart.sh

启动实现后, 能够拜访http://试验环境公网IP:30901, 应用账号 rocketmq/rocketmq666 账号密码登录。

  1. 配置Prometheus为Grafana数据源
找到数据源配置菜单,点击进入

填写prometheus信息,保留

创立一个dashboard, 并创立一个RocketMQ指标监控折线图。上面请依照截图操作。

抉择刚刚创立的Prometheus数据源,填写一个指标名,则能够预览一个指标的监控曲线。

点击地位4时,弹窗提醒保留

tips:Grafana能够用文件夹的模式保留雷同类型的Dashboard
  1. 配置一个Broker指标监控。

在RocketMQ中一个物理集群能够蕴含多个逻辑集群, 每个逻辑集群能够有本人的集群名和所蕴含的Broker。所以这里咱们先配置一个下拉列表抉择集群名、Broker的关系。

填充一些变量根本信息变量名,会被曲线图query sql中援用变量展现的名字, 仅展现数据源, 这里抉择咱们之前配置的prometheus填写查问全副集群名的query。获取一个指标的全副label的值:

label_values(rocketmq_brokeruntime_commitlogdir_capacity_total, cluster)

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

如果步骤4正确填写, 能够在这里预览全副的集群名。

点击update能够保留一个集群变量。

上面咱们配置抉择好一个集群后, 主动筛选出这个集群中的broker, 整个步骤和创立一个变量是一样的,只是query中会援用另一个变量:

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

保留后, 咱们查看最初的成果

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

这里以下面配置的曲线为例, 批改query:

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

批改后果为:

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

五、RocketMQ官网举荐大盘配置

通过上一节的学习, 咱们晓得RocketMQ有很多指标, 如果挨个配置曲线比拟吃力。 Grafana社区曾经收集了很多罕用组件的大盘配置,拿到后间接导入本人的Grafana。

上面咱们找到RocketMQ的dashboard,而后导入试验环境。

进入dashboard仓库地址:https://grafana.com/grafana/dashboards/,输出rocketmq搜寻

抉择一个你喜爱的dashboard,点击进去,下载dashboard的json字符串。

导入Grafana, 并保留。

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

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

导入实现后咱们能够看到后果

·  想理解更多场景细节请返回云起实验室

立刻返回:https://developer.aliyun.com/...