文章目录

  • 配置步骤
  • 1 安装RocketMQ Exporter
  • 2 配置Prometheus
  • 3 配置告警规则
  • 4 配置grafana
    • 4.1 导入模板
  • 5 参考链接
  • 6 关于作者

本文基于官方提供的RocketMQ Exporter来监控RocketMQ集群。可以实现以下功能:

  1. Broker TPS/QPS的监控
  2. 消息积压监控
  3. 消费组消费演示监控

最终的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相关推荐

  1. Prometheus 监控详解

    文章目录 一.常用监控系统介绍 1. Cacti 2. Nagios 3. Zabbix 4. Prometheus 5. Open-falcon 二.运维监控平台设计思路 三.Prometheus ...

  2. Prometheus监控系列--“普罗米修斯“ 入门 | 初识 | 简述 | 超详细

    Prometheus监控软件 常见的监控软件 1.Cacti 2.Nagios 3.zabbix 4.prometheus 5.open-falcaon 运维监控平台设计思路 监控体系 系统层监控 中 ...

  3. Prometheus监控(kube-prometheus)

    Prometheus监控实战(kube-prometheus) 部署kube-prometheus监控套件 调试 manifests下用户可以自定义CRD等资源配置 增加prometheus监控K8S ...

  4. 阿里云Prometheus监控服务

    什么是Prometheus? Prometheus是一个开源系统监控和警报工具包 原生Prometheus:Overview | Prometheus 工作原理:prometheus原理简介_袁胜的博 ...

  5. SpringBoot使用prometheus监控

    本文介绍SpringBoot如何使用Prometheus配合Grafana监控. 1.关于Prometheus Prometheus是一个根据应用的metrics来进行监控的开源工具.相信很多工程都在 ...

  6. Prometheus监控的最佳实践——关于监控的3项关键指标

    本文来自Weaveworks的工程师Anita Burhrle在Rancher Labs与Weaveworks联合举办的Online Meetup上的技术分享.在此次分享中,嘉宾们讨论了如何使用Ran ...

  7. 基于 eBPF 的 prometheus 监控方案

    基于 eBPF 的 prometheus 监控方案 1. 前言 2. ebpf_exporter 环境搭建 3. Prometheus 与 Grafana 配置 4. ebpf_exporter 代码 ...

  8. prometheus监控_使用Prometheus和Grafana监视开放自由

    prometheus监控 我录制了一个视频,该视频如何通过简单地配置服务器功能,使用Prometheus和Grafana向Open Liberty实例添加监视. 如果我们仅添加监视功能( monito ...

  9. 使用 Docker 部署 Grafana + Prometheus 监控 MySQL 数据库

    使用 Docker 部署 Grafana + Prometheus 监控 MySQL 数据库 原文:使用 Docker 部署 Grafana + Prometheus 监控 MySQL 数据库 一.背 ...

最新文章

  1. GoogLeNet Inception 系列
  2. 数据库查询语言SQL概念
  3. Java中Socket通信-客户端向服务端发送照片
  4. Android 优秀开源项目
  5. flash cs3 代码提示 应该加强
  6. oracle数据库导入导出expdp/impdp命令详细操作过程
  7. 伦敦大学金史密斯学院计算机专业,伦敦大学金史密斯学院 Goldsmiths, University of London...
  8. 多重异常处理 java
  9. c语言怎么定义一个条件变量,C++ 条件变量(condition_variable)
  10. Windows mobile 下读取手机SIM卡信息
  11. 2018年计算机基础模拟试题,2018年大学计算机基础试题及答案
  12. 项目经理,别让猴子跳回背上!
  13. Kafka设计解析(三):Kafka High Availability (下)
  14. python滚动条翻页爬取数据_scrapy实践之翻页爬取的实现
  15. Eview操作步骤——数据导入及数据建模
  16. 深度学习 目标检测Yolo算法代码实现
  17. java毕业答辩ppt_java网上商城系统毕业设计答辩.ppt
  18. nordic 52832 键盘
  19. matlab geodetic2ecef,卫星轨道问题
  20. 工作日志,常见的统计解决方案

热门文章

  1. 法国制药巨头赛诺菲将利用人工智能来打击流感
  2. mcem r语言代码_一个简单文本分类任务-EM算法-R语言
  3. 爱客IKCRMCOM外包SaaS和云服务的五个关键因素
  4. 如何用沉浸式叙事做品牌营销|技术就是沉浸式的全部吗?
  5. 计算流体力学简介(一)——一些基本概念
  6. 目前我国软件人才紧缺
  7. 三极管-晶体管开关速度有两种方法
  8. 给微信5.0泼凉水:社交+电商难落地
  9. 《机器学习基石》作业一
  10. TaaS(通证即服务,Token as a Service)介绍