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://xiahunao.cn/news/2804136.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【知识分享】自动化测试首选接口自动化?

在分层测试的“金字塔”模型中&#xff0c;接口测试属于第二层服务集成测试范畴。 相比UI自动化测试而言&#xff0c;接口自动化测试收益更大&#xff0c;且容易实现&#xff0c;维护成本低&#xff0c;有着更高的投入产出比。因此&#xff0c;项目开展自动化测试的首选一般为接…

OpenHarmony—UIAbility组件间交互(设备内)

UIAbility是系统调度的最小单元。在设备内的功能模块之间跳转时&#xff0c;会涉及到启动特定的UIAbility&#xff0c;该UIAbility可以是应用内的其他UIAbility&#xff0c;也可以是其他应用的UIAbility&#xff08;例如启动三方支付UIAbility&#xff09;。 本章节将从如下场…

MFC 多文档程序的基本编程

下载了一个openGL mfc的多文档程序,以此来学习mfc多文档模式的编程; 1 基本编程 它每次新建一个文档,会在窗口绘制一个三角形、一个矩形;如果没有了图形刷新一下; 先看一下为什么每次打开新文档会绘制图形; 生成工程之后主要有5个类,比单文档程序多了一个子框架类; 可…

主流开发语言和开发环境:探索编程世界的基础

在当今这个快速发展的技术时代&#xff0c;软件开发已经成为推动创新的重要力量。无论是构建下一代应用、开发先进的算法还是创建复杂的系统&#xff0c;选择合适的编程语言和开发环境都是至关重要的。在本文中&#xff0c;我们将探讨当前流行的几种主流开发语言以及它们常用的…

从零学习Linux操作系统第二十六部分 shell的基础知识

一、脚本存在的意义及幻数的作用 什么是shell &#xff1a;保护内核 脚本中命令的解释器 shell脚本的意义 1.记录命令执行的过程和执行逻辑&#xff0c;以便以后重复执行 2.脚本可以批量处理主机 3.脚本可以定时处理主机 如何创建shell脚本 #!/bin/bash ##幻数 幻数是最优…

C# CAD2016 cass10宗地Xdata数据写入

一、 查看cass10写入信息 C# Cad2016二次开发获取XData信息&#xff08;二&#xff09; 一共有81条数据 XData value: QHDM XData value: 121321 XData value: SOUTH XData value: 300000 XData value: 141121JC10720 XData value: 权利人 XData value: 0702 XData value: YB…

jenkins配置ssh的时候测试连接出现Algorithm negotiation fail

背景&#xff1a;当jenkins升级后&#xff0c;同时ssh插件也升级&#xff0c;测试ssh连接的时候 出现的问题&#xff1a; com.jcraft.jsch.JSchAlgoNegoFailException: Algorithm negotiation fail: algorithmName"server_host_key" jschProposal"ecdsa-sha2-n…

pikachu靶场-SQL-Inject

介绍&#xff1a; 在owasp发布的top10排行榜里&#xff0c;注入漏洞一直是危害排名第一的漏洞&#xff0c;其中注入漏洞里面首当其冲的就是数据库注入漏洞。一个严重的SQL注入漏洞&#xff0c;可能会直接导致一家公司破产&#xff01; SQL注入漏洞主要形成的原因是在数据交互中…

Android中Transition过渡动画的简单使用

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂&#xff0c;风趣幽默"&#xff0c;感觉非常有意思,忍不住分享一下给大家。 &#x1f449;点击跳转到教程 一、布局xml文件代码如下&#xff1a; <?xml version"1.0" encoding&quo…

C#与VisionPro联合开发——INI存储和CSV存储

1、INI存储 INI 文件是一种简单的文本文件格式&#xff0c;通常用于在 Windows 环境中存储配置数据。INI 文件格式由一系列节&#xff08;section&#xff09;和键值对&#xff08;key-value pairs&#xff09;组成&#xff0c;用于表示应用程序的配置信息。一个典型的 INI 文…

德州红马来酰亚胺,Texas Red-Mal,标记反应反应迅速、选择性高

您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;德州红马来酰亚胺&#xff0c;Texas Red maleimide &#xff0c;Texas Red Mal&#xff0c;Texas Red-maleimide &#xff0c;Texas Red-Mal 一、基本信息 【产品简介】&#xff1a;Texas Red maleimide is a fluor…

论文笔记:利用词对比注意增强预训练汉字表征

整理了 ACL2020短文 Enhancing Pre-trained Chinese Character Representation with Word-aligned Att&#xff09;论文的阅读笔记 背景模型实验 论文地址&#xff1a;论文 背景 近年来&#xff0c;以 BERT 为代表的预训练模型在 NLP 领域取得取得了非常显著的效果。但是&…

前端数据可视化:ECharts使用

可视化介绍 ​  ​  应对现在数据可视化的趋势&#xff0c;越来越多企业需要在很多场景(营销数据&#xff0c;生产数据&#xff0c;用户数据)下使用&#xff0c;可视化图表来展示体现数据&#xff0c;让数据更加直观&#xff0c;数据特点更加突出。   ​  数据可视化主要目…

【工具】阿莫智能设备之脱机烧录器K202C-1

注意&#xff0c;本文档仅仅是介绍烧录器的资料构成&#xff0c;并非烧录器的说明书&#xff0c;详细请看各对说明书及视频。 1. 资料图解 首先需要下载资料&#xff0c;通常稳定发布版本可以从 www.amomcu.cn 下载&#xff0c; 也可以向我们客服获取最新版本&#xff0c; 获…

4G模块获取多个基站信息

获取多个基站信息&#xff0c;需要将其模块注网上不同的频段 以下使用ATQCFG"band" 配置频段 验证一 ATQENG"SERVINGCELL" 获取注网信息解析说明 在没锁频之前查询注网信息 [2024-02-23_11:22:41:108]ATCPIN? [2024-02-23_11:22:41:108]CPIN: R…

推荐系统经典模型YouTubeDNN

文章目录 YouTubeDNN概念YouTubeDNN模型架构图YouTubeDNN召回阶段YouTubeDNN层级介绍 YouTubeDNN排序阶段YoutubeDNN模型中的一些Trick负采样问题特征构造上下文选择 总结 YouTubeDNN概念 YouTubeDNN是YouTube用于做视频推荐的落地模型&#xff0c;其大体思路就是召回阶段使用…

Linux系统运维:离线安装sar-性能监视和分析工具

目 录 一、前言 二、系统环境 三、安装sar &#xff08;一&#xff09;准备工作 1、下载 sar 工具的安装包&#xff1a; 2、将安装包传输到 CentOS 服务器 &#xff08;二&#xff09;安装工作 1、解压 2、配置安装 3、编译 4、安装 &#xff08;三&#xff0…

每日五道java面试题之spring篇(四)

目录&#xff1a; 第一题 Spring框架的设计目标&#xff0c;设计理念&#xff0c;和核心是什么&#xff1f;第二题. Spring由哪些模块组成&#xff1f;第三题. 详细讲解一下核心容器&#xff08;spring context应用上下文) 模块第四题.Spring框架中有哪些不同类型的事件第五题.…

【2024软件测试面试必会技能】Jmeter_性能测试(6):收集性能测试结果

收集性能测试结果 性能测试执行过程中&#xff0c;场景监控的主要任务是收集测试结果&#xff0c;测试结果有事 务响应时间、吞吐量、TPS、服务器硬件性能、JVM使用情况和数据库性能状态 等。Jmeter中通过监听器及其它外置工具来完成测试结果收集工作 事务响应时间 用户从发…

html的无语义标签:div span

html的无语义标签&#xff1a;div & span 无语义标签&#xff1a;div & span 标题&#xff0c;段落&#xff0c;图片等都是通过固定的标签来表示&#xff0c;标题用h1~h6标签来表示&#xff0c;段落用p标签来表示&#xff0c;图片用img标签来表示……每个标签都有自己…