Prometheus实战篇:Prometheus监控rabbitmq

这篇具有很好参考价值的文章主要介绍了Prometheus实战篇:Prometheus监控rabbitmq。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Prometheus实战篇:Prometheus监控rabbitmq

准备环境

docker-compose安装rabbitmq

这里注意rabbitmq需要暴露2个端口

docker-compose.yaml

version: '3'
services:
   rabbitmq:
 	image: rabbitmq:3.7.15-management
 	container_name: rabbitmq
 	 restart: always
 	 volumes:
 	 	- /data/rabbitmq/data: /var/lib/rabbitmq
 	 	- /data/rabbitmq/log: /var/log/rabbitmq
 	 port:
 	 - 5672:5672
 	 - 15672:15672
docker-compose up -d

监控rabbitmq

docker安装exporter

docker直接运行

docker run -d  -p 9419:9419  --name rabbitmq_exporter -e RABBIT_URL=http://localhost:15672 -e RABBIT_USER=guest -e RABBIT_PASSWORD=guest kbudde/rabbitmq_exporter

docker-compose方式

cat >docker-compose.yaml <<FOF
version: '3.3'
services:
 rabbitmq_exproter:
 	image: kbudde/rabbitmq-exporter
 	container_name: rabbitmq_exporter
 	restart: always
 	environment:
 		RABBIT_URL: "localhost:15672"
 		RABBIT_USER: "guest"
 		REDIS_PASSWORD: "guest"
 		PUBLISH_PORT: "9419"
 		OUTPUT_FORMAT: "JSON"
 	port:
 	 - "9419:9419"
EOF

启动

docker-compose up -d

检查

查看正在运行的容器
docker ps

或者:

查看redis_exporter容器的运行日志
docker logs -f rabbitmq_exporter

参数解释

Environment variable 描述
RABBIT_URL localhost:15672 rabbitmq管理插件的url(必须以http(2)开头)
RABBIT_USER guest rabbitmq管理插件的用户名
REDIS_PASSWORD guest rabbitmq管理插件的密码
OUTPUT_FORMAT JSON 输出格式
PUBLISH_PORT 9419 运行端口(监听端口)

metrics地址

安装好Exporter后会暴露一个/metrics结尾的服务

名称 地址
rabbitmq_exporter http://localhost:9419/metrics

Prometheus配置

配置Prometheus去采集(拉取)nginx_exporter的监控样本数据

cd /data/docker-prometheus

# 在scrapc_configs(搜刮配置):下面增加如下配置:
cat >prometheus/prometheus.yml <<FOF
 - job_name: 'rabbitmq_exporter'
   static_configs:
   - targets: ['localhost:9419']
   	 labels:
   	 	instance: test服务器 
EOF

重新加载配置

curl -x POST http://localhost:9090/-/reload

检查

Prometheus实战篇:Prometheus监控rabbitmq,企业监控prometheus与Grafana生产,prometheus,rabbitmq,分布式

常用的rabbitmq监控指标

rabbitmq_queue_messages_unacknowledged_global			队列中有未确认的消息总数(未被消费的消息)
rabbitmq_node_disk_free_limit							使用磁盘大小
rabbitmq_node_disk_free									磁盘总大小
	
rabbitmq_node_mem_used									使用内存大小
rabbitmq_node_mem_limit									内存总大小

rabbitmq_sockets_used	 								使用的sockets的数量		
rabbitmq_sockets_available	 							可用的sockets总数
	
rabbitmq_fd_used										使用文件描述符的数量
rabbitmq_fd_available									可用的文件描述符总数

触发器配置

由于之前的触发器是全部写在了一个yml里面就是alert.yam,这样随着后面配置的触发器越来越多最终会变得难以维护.这里我们让它去读rules目录下所有的yml文件即可

Prometheus配置

rule_files:
	- "alert.yml"
	- "rules/*.yml"

配置rabbitmq触发器

因为是单机所以未配置集群的触发器

cat >prometheus/rules/rabbitmq.yml <<FOF
groups:
- name: Rabbitmq
	rules:
    - alert: RabbitMQDown
      expr: rabbitmq_up != 1
      labels:
        severity: High
      annotations:
          summary: "Rabbitmq Down,实例:{{$labels.instance }}"
          description: "Rabbitmq_exporter连不上RabbitMQ!"
    - alert: Rabbitmq有未确认消息
      expr: rabbitmq_queue_messages_unacknowledged_global > 0
      for: 1m
      labels:
        severity: critical
      annotations:
          summary: "RabbitMQ有未确认消息,实例:{{$labels.instance }}"
          description: "Rabbitmq未确认消息>0当前值为:{{ $value }}"
    - alert: RabbitMQ可用磁盘空间不足告警
      expr: rabbitmq_node_disk_free_alarm !=0
      for: 0m
      labels:
        severity: critical
      annotations:
          summary: "RabbitMQ可用磁盘空间不足,实例:{{$labels.instance }}"
          description: "RabbitMQ可用磁盘空间不足,请检查"
    - alert: RabbitMQ可用内存不足告警
      expr: rabbitmq_sockets_used / rabbitmq_sockets_available * 100 >60
      for: 0m
      labels:
        severity: critical
      annotations:
          summary: "RabbitMQ可用内存不足,实例:{{$labels.instance }}"
          description: "RabbitMQ可用内存不足,请检查"
    - alert: RabbitMQ_socket连接数使用过高告警
      expr: rabbitmq_sockets_used / rabbitmq_sockets_available * 100 >60
      for: 0m
      labels:
        severity: critical
      annotations:
          summary: "RabbitMQ_socket使用过高,实例:{{$labels.instance }}"
          description: "RabbitMQ_socket使用>60%当前值为::{{ $value }}"
    - alert: RabbitMQ文件描述符使用过高告警
      expr: rabbitmq_fd_used / rabbitmq_fd_available * 100 > 60
      for: 0m
      labels:
        severity: critical
      annotations:
          summary: "RaiibitMQ文件描述符使用过高,实例:{{$labels.instance }}"
          description: "RaiibitMQ文件描述符使用>60%,当前值为:{{ $value }}"
  		
EOF

一定记住这里需要仔细校对yaml语法,最好是能去在线验证yaml语法的网站上看看.yaml语法还是比较严格的一点缩进错误都不能有

检查配置

docker exec -it prometheus promtool check config /etc/prometheus/prometheus.yml

重新加载配置

curl -x POST http://localhost:9090/-/reload

检查

http://localhost:9090/alerts?search=

或:

http://localhost:9090/rules
Prometheus实战篇:Prometheus监控rabbitmq,企业监控prometheus与Grafana生产,prometheus,rabbitmq,分布式

dashboard

grafana展示Prometheus从redis_exporter收集到的数据

id :4279
Prometheus实战篇:Prometheus监控rabbitmq,企业监控prometheus与Grafana生产,prometheus,rabbitmq,分布式文章来源地址https://www.toymoban.com/news/detail-821673.html

到了这里,关于Prometheus实战篇:Prometheus监控rabbitmq的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Prometheus监控实战之Prometheus监控K8S

    Cadvisor + node-exporter + prometheus + grafana Cadvisor:数据采集 node-exporter:汇总 prometheus:处理、存储 grafana:展示 容器监控:Prometheus使用cadvisor采集容器监控指标,而 cadvisor集成在K8S的kubelet中所以无需部署 ,通过Prometheus进程存储,使用grafana进行展示。 node节点监控:node端的监控通

    2023年04月21日
    浏览(59)
  • Prometheus监控实战之Docker容器监控

    容器的使用已经非常普及,将服务迁移到容器上正成为了越来越多公司的选择。而对于运维人员而言,熟悉容器的使用与监控,也已成为一项必不可少的专业技能。 关于容器的开源产品,目前知名的有Docker、Containerd、CoreOS rkt、LXC 等,在这其中Docker占据了绝对的统治地位,也

    2024年02月06日
    浏览(40)
  • Prometheus实战教程:监控Kafka消息

    今天我们使用prometheus+Grafana+kafka_exporter+kafka实现监控Kafka运行状态。 kafka_exporter:采集kafka各项指标数据 prometheus:获取kafka_exporter数据 Grafana:展示prometheus采集的数据 如何使用prometheus和Grafana监控Kafka运行状态呢,请君继续往下看。 一、Kafka简介 (1)Kafka基本概念        K

    2024年02月16日
    浏览(42)
  • Prometheus监控运维实战十: 主机监控指标

    1、CPU指标 CPU负载 以上三个指标为主机的CPU平均负载,分别对应一分钟、五分钟和十五分钟的时间间隔。CPU负载是指某段时间内占用CPU时间的进程和等待CPU时间的进程数之和。一般来说,cpu负载数/cpu核数如果超过0.7,应该开始关注机器性能情况 ,如果超过1的话,运维人员应

    2024年02月06日
    浏览(49)
  • 【监控系统】Prometheus监控组件Node-Exporter配置实战

    这一节,我们来配置一下Node-Exporter,那么我们先来了解一下什么是Prometheus的Exporter? 任何向Prometheus提供监控样本数据的程序都可以被称为一个Exporter,它是一种用于将不同数据源的指标提供给Prometheus进行收集和监控的工具。运行在应用程序、计算机、网络设备或者其他系统

    2024年02月15日
    浏览(51)
  • 【监控系统】Prometheus监控组件Mysql-Exporter配置实战

    Mysql-Exporter主要监控Mysql数据库的稳定性、吞吐量、连接情况、缓冲池使用情况、查询性能等各项指标,是我们压测时常常需要监控的一些指标。 目前,Exporter 支持高于5.6版本的 MySQL 和高于10.1版本的 MariaDB。在 MySQL/MariaDB 低于5.6版本时,部分监控指标可能无法被采集。 OK,下

    2024年02月16日
    浏览(44)
  • Prometheus监控实战之node_exporter详解

    目录 1 概述 2 功能 2.1 不同操作系统采集端 2.2 linux操作系统采集端 2.3 监控指标 2.4 参数定义 2.4.1 默认启用的参数  2.4.2 默认不启用的参数 2.5 启动参数 3 安装部署 3.1 下载 3.2 安装配置 3.3 测试验证 3.4 prometheus配置 3.5 在 grafana 中添加图表   Exporter是Prometheus的指标数据收

    2024年02月03日
    浏览(49)
  • Prometheus监控实战之rate与irate的区别

    irate和rate都会用于计算某个指标在一定时间间隔内的变化速率。但是它们的计算方法有所不同:irate取的是在指定时间范围内的最近两个数据点来算速率,而rate会取指定时间范围内所有数据点,算出一组速率,然后取平均值作为结果。 所以官网文档说:irate适合快速变化的计

    2024年03月11日
    浏览(54)
  • 【云原生】prometheus监控告警之安装部署alertmanager实战

    前言 🏠个人主页:我是沐风晓月 🧑个人简介:大家好,我是沐风晓月,阿里云社区博客专家😉😉 💕 座右铭: 先努力成长自己,再帮助更多的人 ,一起加油进步🍺🍺🍺 💕欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信😘 本文中的是prome

    2023年04月27日
    浏览(54)
  • 云原生系列之使用prometheus监控redis集群实战

    本次实战使用prometheus监控redis集群,如果你只想监控redis的某一个单机服务,可以参考: 超级实用,解密云原生监控技术,使用prometheus轻松搞定redis监控 本文中的是prometheus已经安装好,如果你还未安装,可以参考上一篇文章:prometheus安装及使用入门 若你想监控其他服务可以

    2023年04月14日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包