试验简介
钻研 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 实例。)
- 装置 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
- 编译和打包
批改配置文件中的 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(曾经启动则不必操作)
- 启动试验环境 Prometheus 实例
进入 Prometheus 根目录,启动 Prometheus
cd /usr/local/services/3-prometheus
./restart.sh
也能够通过拜访 http:// 试验公网 IP:30902 的模式拜访 prometheus
- 配置 Prometheus 采集 RocketMQ Exporter
进入 prometheus 根目录,批改配置文件
cd /usr/local/services/3-prometheus
vim prometheus.yml
执行热加载配置命令
./reload.sh
验证配置是否失效
登录 promethues 页面,通过观察 Targets,咱们看到配置曾经失效了
- 在 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 账号密码登录。
- 配置 Prometheus 为 Grafana 数据源
找到数据源配置菜单,点击进入
填写 prometheus 信息,保留
创立一个 dashboard, 并创立一个 RocketMQ 指标监控折线图。上面请依照截图操作。
抉择刚刚创立的 Prometheus 数据源,填写一个指标名,则能够预览一个指标的监控曲线。
点击地位 4 时,弹窗提醒保留
tips:Grafana 能够用文件夹的模式保留雷同类型的 Dashboard
- 配置一个 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/…