使用Prometheus监控RocketMQ
文章目录
- 配置步骤
- 1 安装RocketMQ Exporter
- 2 配置Prometheus
- 3 配置告警规则
- 4 配置grafana
- 4.1 导入模板
- 5 参考链接
- 6 关于作者
本文基于官方提供的RocketMQ Exporter来监控RocketMQ集群。可以实现以下功能:
- Broker TPS/QPS的监控
- 消息积压监控
- 消费组消费演示监控
最终的Grafana面板效果图如下:
配置步骤
1 安装RocketMQ Exporter
RocketMQ官方已经提供了exporter,官方链接 https://github.com/apache/rocketmq-exporter
但官方未直接提供镜像,需要我们下载源码然后mvn package -Dmaven.test.skip=true docker:build 生成镜像,笔者已经制作好并上传至docker hub,嫌构建麻烦的同学可直接使用。
docker pull sawyerlan/rocketmq-exporter:latest # https://hub.docker.com/repository/docker/sawyerlan/rocketmq-exporter
docker run --name rocketmq-exporter --restart=always -p 5557:5557 -d sawyerlan/rocketmq-exporter --rocketmq.config.namesrvAddr="172.30.0.150:9876;172.30.0.151:9876"
将上面的地址修改为你RocketMQ nameserver 的地址,笔者的nameserver有2个。
接下来可以验证下是否已经有数据了。访问 http://{{你的ip}}:5557/metrics,如下图表示正常运行
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F0JThDaZ-1624430500843)(rocketmq.assets/image-20210623131300478.png)]
2 配置Prometheus
添加一个RocketMQ监控的job,我这里采用文件发现的方式(为了保证主配置文件prometheus.yml的简洁已经便于管理,笔者都将job按文件进行分类了)。
# prometheus.yml- job_name: rocketmqfile_sd_configs:- files: - '/etc/prometheus/etc.d/job_rocketmq.yaml'
# job_rocketmq.yaml
---
- targets: ['172.33.0.33:5557']labels:project: baiduinstance: 172.33.1.150:9876 # 这里加了一个标签方便检索app: rocketmqenv: pro
reload 你的Prometheus使配置生效
curl -X POST http:/localhost:9090/-/reload
后续如果还有新的mq需要加入,只需要在job_rocketmq.yaml 添加即可,Prometheus会自动发现,不需要重启。
3 配置告警规则
笔者将RocketMQ的告警规则独立成了一个文件,如下
# rules_rocketmq.yml
groups:
- name: rocketmqrules:- alert: RocketMQ Exporter is Down expr: up{job="rocketmq"} == 0for: 20slabels: severity: '灾难'annotations:summary: RocketMQ {{ $labels.instance }} is down- alert: RocketMQ 存在消息积压expr: (sum(irate(rocketmq_producer_offset[1m])) by (topic) - on(topic) group_right sum(irate(rocketmq_consumer_offset[1m])) by (group,topic)) > 5for: 5mlabels: severity: '警告'annotations:summary: RocketMQ (group={{ $labels.group }} topic={{ $labels.topic }})积压数 = {{ .Value }}- alert: GroupGetLatencyByStoretime 消费组的消费延时时间过高expr: rocketmq_group_get_latency_by_storetime/1000 > 5 and rate(rocketmq_group_get_latency_by_storetime[5m]) >0for: 3mlabels:severity: 警告annotations:description: 'consumer {{$labels.group}} on {{$labels.broker}}, {{$labels.topic}} consume time lag behind message store timeand (behind value is {{$value}}).'summary: 消费组的消费延时时间过高- alert: RocketMQClusterProduceHigh 集群TPS > 20expr: sum(rocketmq_producer_tps) by (cluster) >= 20for: 3mlabels:severity: 警告annotations:description: '{{$labels.cluster}} Sending tps too high. now TPS = {{ .Value }}'summary: cluster send tps too high
添加为后需要在你的prometheus.yml 加入此规则文件。
# 笔者的prometheus.yml会通配规则文件,只需要将规则文件放在该目录即可
rule_files:- 'rules/*.yml'- 'rules/*.yaml'
reload 使配置生效
curl -X POST http::/localhost:9090/-/reload
4 配置grafana
grafana的配置较为繁琐,文中的面板已经开源,可以在grafana官网下载该面板 。https://grafana.com/grafana/dashboards/14612
4.1 导入模板
5 参考链接
笔者在实际部署过程中也是参考以下文章,感谢!如果想深入学习的同学可以前往。
基于RocketMQ Prometheus Exporter 打造定制化DevOps平台-InfoQ
6 关于作者
如有收货,可以通过关注公众号
使用Prometheus监控RocketMQ相关推荐
- Prometheus 监控详解
文章目录 一.常用监控系统介绍 1. Cacti 2. Nagios 3. Zabbix 4. Prometheus 5. Open-falcon 二.运维监控平台设计思路 三.Prometheus ...
- Prometheus监控系列--“普罗米修斯“ 入门 | 初识 | 简述 | 超详细
Prometheus监控软件 常见的监控软件 1.Cacti 2.Nagios 3.zabbix 4.prometheus 5.open-falcaon 运维监控平台设计思路 监控体系 系统层监控 中 ...
- Prometheus监控(kube-prometheus)
Prometheus监控实战(kube-prometheus) 部署kube-prometheus监控套件 调试 manifests下用户可以自定义CRD等资源配置 增加prometheus监控K8S ...
- 阿里云Prometheus监控服务
什么是Prometheus? Prometheus是一个开源系统监控和警报工具包 原生Prometheus:Overview | Prometheus 工作原理:prometheus原理简介_袁胜的博 ...
- SpringBoot使用prometheus监控
本文介绍SpringBoot如何使用Prometheus配合Grafana监控. 1.关于Prometheus Prometheus是一个根据应用的metrics来进行监控的开源工具.相信很多工程都在 ...
- Prometheus监控的最佳实践——关于监控的3项关键指标
本文来自Weaveworks的工程师Anita Burhrle在Rancher Labs与Weaveworks联合举办的Online Meetup上的技术分享.在此次分享中,嘉宾们讨论了如何使用Ran ...
- 基于 eBPF 的 prometheus 监控方案
基于 eBPF 的 prometheus 监控方案 1. 前言 2. ebpf_exporter 环境搭建 3. Prometheus 与 Grafana 配置 4. ebpf_exporter 代码 ...
- prometheus监控_使用Prometheus和Grafana监视开放自由
prometheus监控 我录制了一个视频,该视频如何通过简单地配置服务器功能,使用Prometheus和Grafana向Open Liberty实例添加监视. 如果我们仅添加监视功能( monito ...
- 使用 Docker 部署 Grafana + Prometheus 监控 MySQL 数据库
使用 Docker 部署 Grafana + Prometheus 监控 MySQL 数据库 原文:使用 Docker 部署 Grafana + Prometheus 监控 MySQL 数据库 一.背 ...
最新文章
- GoogLeNet Inception 系列
- 数据库查询语言SQL概念
- Java中Socket通信-客户端向服务端发送照片
- Android 优秀开源项目
- flash cs3 代码提示 应该加强
- oracle数据库导入导出expdp/impdp命令详细操作过程
- 伦敦大学金史密斯学院计算机专业,伦敦大学金史密斯学院 Goldsmiths, University of London...
- 多重异常处理 java
- c语言怎么定义一个条件变量,C++ 条件变量(condition_variable)
- Windows mobile 下读取手机SIM卡信息
- 2018年计算机基础模拟试题,2018年大学计算机基础试题及答案
- 项目经理,别让猴子跳回背上!
- Kafka设计解析(三):Kafka High Availability (下)
- python滚动条翻页爬取数据_scrapy实践之翻页爬取的实现
- Eview操作步骤——数据导入及数据建模
- 深度学习 目标检测Yolo算法代码实现
- java毕业答辩ppt_java网上商城系统毕业设计答辩.ppt
- nordic 52832 键盘
- matlab geodetic2ecef,卫星轨道问题
- 工作日志,常见的统计解决方案