试验简介
钻研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/...