RabbitMQ监控方法以及核心指标

RabbitMQ监控方法以及核心指标

  • 1. 监控指标采集
  • 2. 使用rabbimq插件采集指标
    • 2.1 3.8.0之前版本,使用外部插件暴露
    • 2.2 3.8.0之后版本,使用内置插件暴露
  • 3. 使用rabbitmq_exporter采集指标
    • 3.1 部署rabbitmq_exporter
    • 3.2 prometheus采集rabbitmq_exporter的暴露指标
    • 3.3 promethues配置告警规则或者配置grafana大盘
  • 4. 核心告警指标
  • 5. 参考文章

探讨rabbitmq的监控数据采集方式以及需要关注的核心指标,便于日常生产进行监控和巡检。


1. 监控指标采集

rabbitmq的指标采集有2种方式

  • rabbitmq的内置或者外部下载的插件暴露指标
  • 使用第三方rabbitmq_exporter采集rabbitmq并暴露指标

2. 使用rabbimq插件采集指标

RabbitMQ内部集成Prometheus来获取指标,操作也比较简便。

  • 3.8.0之前版本,RabbitMQ可以使用单独的插件prometheus_rabbitmq_exporter来向Prometheus公开指标,要单独下载到RabbitMQ安装目录中进行安装;rabbitmq_exporter
  • 3.8.0版本后,RabbitMQ附带了内置的Prometheus&Grafana支持,虽然内置了该插件,但也要进行安装,rabbitmq-prometheus

2.1 3.8.0之前版本,使用外部插件暴露

操作如下,更详细操作方式可以参考官方文档 ,

  1. 选择合适的版本,下载prometheus_rabbitmq_exporter 插件

  2. 将插件解压,并放到rabbitmq的安装插件目录/usr/lib/rabbitmq/lib/rabbitmq_server-{version}/plugins下,详细操作可以参考Installing Additional Plugins

  3. 启动rabbitmq

  4. rabbitmq启用插件prometheus_rabbitmq_exporter

# 启用插件
rabbitmq-plugins enable prometheus_rabbitmq_exporter# 查看插件
rabbitmq-plugins list

在这里插入图片描述

  1. 查看相关指标
curl -s localhost:15692/metrics

2.2 3.8.0之后版本,使用内置插件暴露

3.8.0后,rabbitmq内置了相关的插件,因此不需要单独进行下载和配置,只需要开启即可。操作如下,更详细操作方式可以参考官方文档 ,

  1. 启动rabbitmq
  2. rabbitmq启用插件rabbitmq_prometheus
# 启用插件
rabbitmq-plugins enable rabbitmq_prometheus# 查看插件
rabbitmq-plugins list

在这里插入图片描述

  1. 查看相关指标
curl -s localhost:15692/metrics

在这里插入图片描述

3. 使用rabbitmq_exporter采集指标

如果不希望使用rabbit的内部插件采集监控指标,也可以使用rabbitmq_exporter采集相关的指标。该方式可以适用于所有的rabbitmq版本

3.1 部署rabbitmq_exporter

  1. rabbitmq_exporter的 下载地址 选择合适的版本下载,并解压
  2. 配置rabbitmq的账号和密码(如果使用内置的guest/guest该操作可以忽略)

# 需要创建用户名和密码: 
rabbitmqctl add_user user pass
# 需要将用户赋予管理员权限: 
rabbitmqctl set_user_tags user administrator# 需要将用户赋予vhost权限: 
rabbitmqctl set_permissions -p / user ".*" ".*" ".*"
  1. 启动rabbitmq_exporter
cd /usr/local/rabbitmq_exporter-0.29.0.linux-amd64
RABBIT_USER=guest RABBIT_PASSWORD=guest OUTPUT_FORMAT=json PUBLIC_PORT=15692 RABBIT_URL=http://localhost:15672 ./rabbitmq_exporter
  • RABBIT_USER:rabbit用户名
  • RABBIT_PASSWORD:rabbit密码
  • RABBIT_URL:rabbit服务地址和端口
  • OUTPUT_FORMAT:输出格式
  • PUBLIC_PORT:暴露端口
  1. 确定metrics指标暴露出来后,就可以通过prometheus配置target进行指标采集
# 通过promethues协议暴露指标
curl http://localhost:15692/metrics

在这里插入图片描述

3.2 prometheus采集rabbitmq_exporter的暴露指标

配置prometheus的指标采集任务

  - job_name: rabbitmqstatic_configs:- targets: ['172.19.0.2:15692','172.19.0.3:15692','172.19.0.4:15692']labels:instance: rabbitmq

在这里插入图片描述

3.3 promethues配置告警规则或者配置grafana大盘

再次不进行扩展。

4. 核心告警指标

rabbitmq的指标很多,相关的指标含义可以参考 官网文档,本文将摘选出核心的指标,作为rabbitmq集群的核心监控并配置相关的告警。

groups:
- name: RabbitMQ节点宕机rules:- alert: RabbitmqNodeDownexpr: sum(rabbitmq_build_info) < 3for: 0mlabels:severity: errorannotations:summary: "Rabbitmq node down (instance {{ $labels.instance }})"description: "RabbitMQ集群中运行的节点少于3个\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"- name: RabbitMQ节点未分发rules:            - alert: RabbitmqNodeNotDistributedexpr: erlang_vm_dist_node_state < 3for: 0mlabels:severity: warningannotations:summary: "Rabbitmq node not distributed (instance {{ $labels.instance }})"description: "RabbitMQ集群分发链接状态未启动\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"         - name: RabbitMQ内存高于90%rules:                    - alert: RabbitmqMemoryHighexpr: rabbitmq_process_resident_memory_bytes / rabbitmq_resident_memory_limit_bytes * 100 > 90for: 2mlabels:severity: warningannotations:summary: "Rabbitmq memory high (instance {{ $labels.instance }})"description: "RabbitMQ集群节点使用超过90%的已分配 RAM\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"          - name: RabbitMQ未确认消息过高rules:    - alert: RabbitmqTooManyUnackMessagesexpr: sum(rabbitmq_queue_messages_unacked) BY (queue) > 1000for: 1mlabels:severity: warningannotations:summary: "Rabbitmq too many unack messages (instance {{ $labels.instance }})"description: "RabbitMQ集群未确认的消息大于1000\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"- name: RabbitMQ节点总连接数太高rules:    - alert: RabbitmqTooManyConnectionsexpr: rabbitmq_connections > 1000for: 2mlabels:severity: warningannotations:summary: "Rabbitmq too many connections (instance {{ $labels.instance }})"description: "RabbitMQ集群节点的总连接数大于1000\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"               - name: RabbitMQ没有队列消费者rules:                      - alert: RabbitmqNoQueueConsumerexpr: rabbitmq_queue_consumers < 1for: 1mlabels:severity: warningannotations:summary: "Rabbitmq no queue consumer (instance {{ $labels.instance }})"description: "RabbitMQ集群队列的消费者少于1个\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"

另外,需要关注执行命令中的alarm,mq集群会内部自检,如果出现alarm需要注意修复

rabbitmqctl cluster_status

在这里插入图片描述
通常alarm相关信息,在mq的日志中会有相关的记录,注意获取相关的配置

5. 参考文章

  • rabbitmq官网
  • rabbitmq监控官网

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/262459.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MacBook的nginx出现13: Permission denied 的问题分析和解决办法

同样的项目代码&#xff0c;电脑从Windows更换到了MacBook&#xff0c;发现网站的样式都没有了&#xff0c;直接访问CSS文件 http://crm.ms-test.cc/toolstatic/css/bootstrap.min.css 发现无法访问。查看Nginx错误日志&#xff1a; 说明是nginx没有权限访问这个CSS文件&#…

LeetCode--代码详解 59. 螺旋矩阵 II

59. 螺旋矩阵 II 题目 给你一个正整数 n &#xff0c;生成一个包含 1 到 n2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;[[1,2,3],[8,9,4],[7,6,5]]示例 2&#xff1a; 输入&a…

Stable Diffusion 模型分享:Indigo Furry mix(人类与野兽的混合)

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十

Recorder 实现语音录制并上传到后端(兼容PC和移动端)

Recorder 首页&#xff1a;https://github.com/xiangyuecn/Recorder 一、安装 npm install recorder-core二、代码部分 1. HTML页面 <template><div><el-inputv-model"ttsText"type"textarea"placeholder"请输入内容"><…

C#写的一个计算DCI-P3色域和SRGB的小工具

文章最后附带分享链接与提取码 方便需要测试屏幕的小伙伴&#xff0c;只需要输入RGB就能得到覆盖率与比率&#xff0c;W计算色温&#xff0c;不测也要写上&#xff0c;不然会报错 链接&#xff1a;https://pan.baidu.com/s/1wdmAwmwiXjNvn1tGsvy0HA 提取码&#xff1a;1234

基于SpringBoot的在线拍卖系统设计与实现(源码+调试+LW+PPT)

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。今天给大家介绍一篇基于SpringBoot的在线拍…

HarmonyOS—使用预览器查看应用/服务效果

DevEco Studio为开发者提供了UI界面预览功能&#xff0c;可以查看应用/服务的UI界面效果&#xff0c;方便开发者随时调整界面UI布局。预览器支持布局代码的实时预览&#xff0c;只需要将开发的源代码进行保存&#xff0c;就可以通过预览器实时查看应用/服务运行效果&#xff0c…

Kotlin filterIsInstance filterNotNull forEach

Kotlin filterIsInstance filterNotNull forEach fun main(args: Array<String>) {val i1 MyItem(1, 1)val i2: MyItem? nullval i3: Int 3val i4 "4"val i5 nullval i6 MyItem(6, 6)val list mutableListOf<Any?>(i1, i2, i3, i4, i5, i6)lis…

学习Markdown

https://shadows.brumm.af 欢迎使用Markdown编辑器 你好&#xff01; 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章&#xff0c;了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些…

Flink中的双流Join

1. Flink中双流Join介绍 Flink版本Join支持类型Join API1.4innerTable/SQL1.5inner,left,right,fullTable/SQL1.6inner,left,right,fullTable/SQL/DataStream Join大体分为两种&#xff1a;Window Join 和 Interval Join 两种。 Window Join又可以根据Window的类型细分为3种…

Video generation models as world simulators-视频生成模型作为世界模拟器

原文地址&#xff1a;Video generation models as world simulators 我们探索在视频数据上进行大规模生成模型的训练。具体来说&#xff0c;我们联合训练文本条件扩散模型&#xff0c;同时处理不同持续时间、分辨率和长宽比的视频和图像。我们利用一个在视频和图像潜在编码的时…

六、回归与聚类算法 - 岭回归

目录 1、带有L2正则化的线性回归 - 岭回归 1.1 API 2、正则化程度的变化对结果的影响 3、波士顿房价预测 线性回归欠拟合与过拟合线性回归的改进 - 岭回归分类算法&#xff1a;逻辑回归模型保存与加载无监督学习&#xff1a;K-means算法 1、带有L2正则化的线性回归 - 岭回…

命令执行 [WUSTCTF2020]朴实无华1

做题&#xff1a; 打开题目 我们用dirsearch扫描一下看看 扫描到有robots.txt&#xff0c;访问一下看看 提示我们 /fAke_f1agggg.php 那就访问一下&#xff0c;不是真的flag bp抓包一下 得到提示&#xff0c; /fl4g.php&#xff0c;访问一下看看 按alt&#xff0c;点击修复文…

FairyGUI × Cocos Creator 3.x 使用方式

前言 上一篇文章 FariyGUI Cocos Creator 入门 简单介绍了FairyGUI&#xff0c;并且按照官方demo成功在Cocos Creator2.4.0上运行起来了。 当我今天使用Creator 3.x 再引入2.x的Lib时&#xff0c;发现出现了报错。 这篇文章将介绍如何在Creator 3.x上使用fgui。 引入 首先&…

学习数仓工具 dbt

DBT 是一个有趣的工具&#xff0c;它通过一种结构化的方式定义了数仓中各种表、视图的构建和填充方式。 dbt 面相的对象是数据开发团队&#xff0c;提供了如下几个最有价值的能力&#xff1a; 支持多种数据库通过 select 来定义数据&#xff0c;无需编写 DML构建数据时&#…

C语言-指针初学速成

1.指针是什么 C语言指针是一种特殊的变量&#xff0c;用于存储内存地址。它可以指向其他变量或者其他数据结构&#xff0c;通过指针可以直接访问或修改存储在指定地址的值。指针可以帮助我们在程序中动态地分配和释放内存&#xff0c;以及进行复杂的数据操作。在C语言中&#…

冒泡排序法的名字由来,排序步骤是什么,最坏情况下的排序次数如何计算得来的呢?

问题描述&#xff1a;冒泡排序法的名字由来&#xff0c;排序步骤是什么&#xff0c;最坏情况下的排序次数如何计算得来的呢&#xff1f; 问题解答&#xff1a; 冒泡排序法的名字来源于排序过程中较大的元素会像气泡一样逐渐“冒”到序列的顶端&#xff0c;而较小的元素则会逐…

BI 数据分析,数据库,Office,可视化,数据仓库

AIGC ChatGPT 职场案例 AI 绘画 与 短视频制作 PowerBI 商业智能 68集 Mysql 8.0 54集 Oracle 21C 142集 Office 2021实战应用 Python 数据分析实战&#xff0c; ETL Informatica 数据仓库案例实战 51集 Excel 2021实操 100集&#xff0c; Excel 2021函数大全 80集 Excel 2021…

谷歌掀桌子!开源Gemma:可商用,性能超过Llama 2!

2月22日&#xff0c;谷歌在官网宣布&#xff0c;开源大语言模型Gemma。 Gemma与谷歌最新发布的Gemini 使用了同一架构&#xff0c;有20亿、70亿两种参数&#xff0c;每种参数都有预训练和指令调优两个版本。 根据谷歌公布的测试显示&#xff0c;在MMLU、BBH、GSM8K等主流测试…

PostgreSQL与MySQL,谁更胜一筹

前言 PostgreSQL与MySQL都是优秀的开源数据库。在日常学习中&#xff0c;新手可能接触最多的是MySql,但是实际工作中&#xff0c;两者的应用场景其实都很广。我之前的做过上网流量销售业务&#xff0c;用的是MySQL,现在接触广告业务&#xff0c;用的是pg数据库&#xff0c;每天…