Apache RocketMQ Prometheus Exporter 教程
1. 项目介绍
Apache RocketMQ Prometheus Exporter 是一个用于监控 RocketMQ Broker 和客户端指标的系统。它将获取到的度量值打包,使这些数据可以被 Prometheus 收集器抓取,从而提供对 RocketMQ 集群性能的全面可见性。通过这个工具,您可以轻松地监控消息发送、消费等关键指标。
2. 项目快速启动
安装依赖
确保您已经安装了以下软件:
- Git
- Go 语言环境
- Docker(可选,仅用于快速测试)
下载并构建项目
首先,克隆项目到本地:
git clone https://github.com/apache/rocketmq-exporter.git
cd rocketmq-exporter
然后,构建 Docker 映像(或使用 go build
构建本地二进制文件):
docker build -t rocketmq-exporter .
启动 RocketMQ Exporter
在运行 Exporter 前,你需要先运行一个 RocketMQ 实例。如果你已经有了一个,可以直接跳过这一步。若没有,可以通过 Docker 快速启动:
docker run -d --name rmq-broker -p 9876:9876 -p 10911:10911 apachemq/rocketmq-namesrv:latest &
docker run -d --name rmq-server --link rmq-broker -p 1098:1098 apachemq/rocketmq-broker:latest
接着,启动 RocketMQ Exporter:
docker run -d -p 5557:5557 \
-e ROCKETMQ_NAMESRV_ADDR=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' rmq-broker):9876 \
-e ROCKETMQ_BROKER_URL=http://$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' rmq-server):1098 \
rocketmq-exporter
配置 Prometheus
编辑 Prometheus 的配置文件 prometheus.yml
,添加新的 Job:
scrape_configs:
- job_name: 'rocketmq-exporter'
static_configs:
- targets: ['localhost:5557']
labels:
Env: 'dev'
Cluster: 'local'
重新启动 Prometheus 并开始抓取数据:
docker restart prometheus
现在,你应该能在 Prometheus UI 中看到 RocketMQ 的相关指标了。
3. 应用案例和最佳实践
案例:实时监控消费者延迟
你可以使用 Exporter 监控消费者的消费延迟,例如 rocketmq_group_get_latency_by_storetime
,并通过设置警报规则当延迟超过阈值时触发通知。
最佳实践:集成 Grafana 可视化
除了 Prometheus,建议配合使用 Grafana 来创建自定义仪表板,可视化 RocketMQ 的关键性能指标,如 TPS、消息积压数等,以便更直观地监控集群状态。
4. 典型生态项目
- OpenTelemetry Collector:RocketMQ Exporter 还支持与其他监控系统的集成,比如 OpenTelemetry,用于进一步的数据收集和导出。
- Grafana:用于创建美观的图表和仪表板,以展示 RocketMQ 的实时指标。
- Prometheus Alertmanager:用来配置告警规则,在发生异常时发送通知。
本教程提供了 Apache RocketMQ Prometheus Exporter 的基础介绍和快速入门指南。深入使用时,建议参考官方文档以了解更多的配置选项和高级特性。祝您使用愉快!