prometheus针对rocketmq监控指标采集推出了官方的exporter:rocketmq-exporter。github地址如下:https://github.com/apache/rocketmq-exporter。不过官方只提供了源码包,需要使用maven打包成可执行的jar文件。
rocketmq-exporter与rocketmq的版本兼容性:
Support Apache RocketMQ version 4.3.2 (and later).
如何使用maven构建打包?
1.下载源码
https://github.com/apache/rocketmq-exporter.git
2.上传并解压
[root@rocketmq-server packages]# pwd
/data/packages
[root@rocketmq-server packages]# ll rocketmq-exporter-master.zip
-rw-r--r-- 1 root root 89393 Apr 18 14:16 rocketmq-exporter-master.zip
3.修改关键配置
1)必须–修改application.yaml中如下配置
rocketmq.config.rocketmqVersion
rocketmq.config.namesrvAddr
vim /data/packages/rocketmq-exporter-master/src/main/resources/application.yml
修改rocketmq.config.namesrvAddr为实际的rocketmq集群的nameserver集群地址:
rocketmq:
config:
webTelemetryPath: /metrics
rocketmqVersion: 4_9_1
namesrvAddr: 10.90.19.243:9876;10.90.19.245:9876;10.90.19.246:9876
enableCollect: true
enableACL: false # if >=4.4.0,且broker开启了acl
accessKey: # if >=4.4.0,且broker开启了acl
secretKey: # if >=4.4.0,且broker开启了acl
2)按需–修改logback.xml中的日志保存路径,默认保存到用户的家目录下
注意:该日志路径是最终执行rocketmq-exporter 的jar文件的主机上要提前创建
sed -i 's?${user.home}/logs/exporterlogs/?/usr/local/rocketmq/rocketmq-exporter/logs/exporterlogs/?' /data/packages/rocketmq-exporter-master/src/main/resources/logback.xml
3)修改pom.xml中
①修改rocketmq.version
注意:rocketmq 4.9.1版本不需要修改,保持4.8.0即可,否则maven会打包失败。
#①修改rocketmq.version版本
vim /data/packages/rocketmq-exporter-master/pom.xml
将<rocketmq.version>4.8.0</rocketmq.version>
改成需要监控的rocketmq集群对应的版本。
②注释掉一个插件
<!-- <plugin> -->
<!-- <artifactId>maven-checkstyle-plugin</artifactId> -->
<!-- <version>2.17</version> -->
<!-- <executions> -->
<!-- <execution> -->
<!-- <id>verify</id> -->
<!-- <phase>verify</phase> -->
<!-- <configuration> -->
<!-- <configLocation>style/rmq_checkstyle.xml</configLocation> -->
<!-- <encoding>UTF-8</encoding> -->
<!-- <consoleOutput>true</consoleOutput> -->
<!-- <failsOnError>true</failsOnError> -->
<!-- <includeTestSourceDirectory>false</includeTestSourceDirectory> -->
<!-- </configuration> -->
<!-- <goals> -->
<!-- <goal>check</goal> -->
<!-- </goals> -->
<!-- </execution> -->
<!-- </executions> -->
<!-- </plugin> -->
4.mvn编译成jar包
cd /data/packages/rocketmq-exporter-master
mvn clean install
编译后生成/data/packages/rocketmq-exporter-master/target/rocketmq-exporter-0.0.2-SNAPSHOT.jar
启动rocketmq-exporter的jar包
- 创建日志目录
mkdir -p /usr/local/rocketmq/rocketmq-exporter/logs/exporterlogs/
- 在rocketmq集群中的任意节点运行rocketmq-exporter-0.0.2-SNAPSHOT.jar
cd /usr/local/rocketmq/rocketmq-exporter/
nohup java -jar rocketmq-exporter-0.0.2-SNAPSHOT.jar &
若maven打包前,application.yml中的rocketmq.config.nameAddr置空,则可以通过命令行参数指定nameserver地址和rocketmq版本。一旦rocketmq.config.nameAddr有值,则命令行参数则会被忽略。
nohup java -jar rocketmq-exporter-0.0.2-SNAPSHOT.jar --rocketmq.config.namesrvAddr=10.90.19.243:9876;10.90.19.245:9876;10.90.19.246:9876 -rocketmq.config.rocketmqVersion=V4_9_1 &