rabbitmq-monitor.py

玩转rabbitmq-delphi(一) 介绍 先决条件 本教程假设 RabbitMQ 已安装并运行在标准端口(5672)上的本地主机上。如果您使用不同的主机、端口或凭据,则需要调整连接设置。 RabbitMQ 是一个消息代理:它接受和转发消息。您可以将其视为邮局:当您将要投递的邮件放入邮箱时,您可以确定信件承运人最终会将邮件递送给您的收件人。在这个比喻中,RabbitMQ 是一个邮箱、一个邮局和一个信件载体。 RabbitMQ 和邮局之间的主要区别在于它不处理纸张,而是接受、存储和转发二进制数据 blob消息。 Rabbi.. 阅读详情

转载git代码: https://github.com/iambocai/falcon-monit-scripts/tree/master/rabbitmq

#!/bin/env python
#-*- coding:utf-8 -*-

__author__ = 'iambocai'

import sys, urllib2, base64, json, time,socket


step = 60
#ip = socket.gethostname()
ip = "192.168.126.101"
ts = int(time.time())
keys = ('messages_ready', 'messages_unacknowledged')
rates = ('ack', 'deliver', 'deliver_get', 'publish')

request = urllib2.Request("http://%s:15672/api/queues" %ip)
# see #issue4
base64string = base64.b64encode('ops:123123')
request.add_header("Authorization", "Basic %s" % base64string)   
result = urllib2.urlopen(request)
data = json.loads(result.read())
tag = ''
#tag = sys.argv[1].replace('_',',').replace('.','=')

p = []
for queue in data:
    # ready and unack
    msg_total = 0
    for key in keys:
        q = {}
        q["endpoint"] = ip
        q['timestamp'] = ts
        q['step'] = step
        q['counterType'] = "GAUGE"
        q['metric'] = 'rabbitmq.%s' % key
        q['tags'] = 'name=%s,%s' % (queue['name'],tag)
        q['value'] = int(queue[key])
        msg_total += q['value']
        p.append(q)

    # total
    q = {}
    q["endpoint"] = ip
    q['timestamp'] = ts
    q['step'] = step
    q['counterType'] = "GAUGE"
    q['metric'] = 'rabbitmq.messages_total'
    q['tags'] = 'name=%s,%s' % (queue['name'],tag)
    q['value'] = msg_total
    p.append(q)

    # rates
    for rate in rates:
        q = {}
        q["endpoint"] = ip
        q['timestamp'] = ts
        q['step'] = step
        q['counterType'] = "GAUGE"
        q['metric'] = 'rabbitmq.%s_rate' % rate
        q['tags'] = 'name=%s,%s' % (queue['name'],tag)
        try:
            q['value'] = int(queue['message_stats']["%s_details" % rate]['rate'])
        except:
            q['value'] = 0
        p.append(q)

print json.dumps(p, indent=4)


method = "POST"
handler = urllib2.HTTPHandler()
opener = urllib2.build_opener(handler)
url = 'http://127.0.0.1:1988/v1/push'
request = urllib2.Request(url, data=json.dumps(p) )
request.add_header("Content-Type",'application/json')
request.get_method = lambda: method
try:
    connection = opener.open(request)
except urllib2.HTTPError,e:
    connection = e

# check. Substitute with appropriate HTTP code.
if connection.code == 200:
    print connection.read()
else:
    print '{"err":1,"msg":"%s"}' % connection
  • 假如有几个队列,那么作图的时候会有点麻烦,写个小脚本,生成falcon里面的规则
#!/bin/bash

for line in `cat 1`
do
    echo 
    echo 
    part1=`echo $line | awk '{print $1}'`
    for line2 in `cat 2`
    do
        part2=`echo $line2 | awk '{print $1}'`
        echo "$part1/$part2"
    done
done
  • rabbitmq-monitor可以提供的指标
rabbitmq.ack_rate
rabbitmq.deliver_get_rate
rabbitmq.deliver_rate
rabbitmq.messages_ready
rabbitmq.messages_total //这个指标重要,我们是高于5k就报警
rabbitmq.messages_unacknowledged
rabbitmq.publish_rate
使用Python编写脚本运行监测器 1. 先说答案 对于像我这种没有耐心的同学,我这里先直接给出答案。这里先说明几个前提: 假设要运行的脚本名称为 handle.py,通常该脚本里面是一个循环运行的程序,对应着某个服务或者处理端,当然,也可以只是一个简单的程序,这个不重要,重要的是我们需要该脚本一直在运行,如果脚本因为某些不可抗拒的因素终止了,需要能够检测到并且自动重启该脚本; 脚本直接运行的命令为:python3 action.... 阅读详情

相关推荐

开源CVE监控系统Poc-Monitor:构建自动化漏洞情报预警防线

在网络安全领域,CVE(公共漏洞和暴露)是标识已知安全漏洞的重要标准。其原理是通过唯一的编号对漏洞进行跟踪和管理,为风险评估和修复提供依据。这项技术的核心价值在于,它建立了全球统一的安全漏洞语言,使得安全团队能够高效地识别、评估和响应威胁。在实际的工程实践中,如何及时、准确地获取与自身资产相关的CVE情报,并将其转化为行动,是安全运维面临的关键挑战。这涉及到对GitHub、安全社区、社交媒体等多源情报的自动化监控、智能去重以及分级告警。应用场景广泛,尤其适合需要紧盯特定组件(如Struts2、Log4j2)

weixin_34277853的博客 508

RabbitMQ学习笔记:Monitoring(监控)

本文概述了与RabbitMQ相关的主题。监控RabbitMQ和使用它的应用程序非常重要。监控有助于在问题影响到环境的其它部分以及最终影响最终用户之前检测到问题。 系统的许多方面都可以被监控,本文档将它们分为几个类别: 什么是监控,有什么共同的方法存在,为什么它是重要的。 内置和外部监视选项。 哪些基础设施和内核指标是重要的监视对象。 有哪些RabbitMQ指标可用: 节点指标 队列指标...

OceanSky的专栏 7304

OpenStack Neutron故障诊断:锁路径、消息队列与内核协同机制

Neutron是OpenStack核心网络服务,其高可用依赖分布式锁、异步消息队列与Linux内核网络栈的深度协同。锁路径(lock path)本质是基于文件系统fcntl的轻量级互斥机制,性能直接受本地磁盘IO影响;消息队列(如RabbitMQ/Pulsar)并非简单管道,而是解耦Neutron-server与Agent的关键神经中枢,决定网络配置下发的实时性;Keystone提供跨服务token认证,构成RPC调用链的信任基础;所有上层逻辑最终落地于Linux内核——通过netlink与openvswi

anmishi2025的博客 568

RabbitMQ用户角色及权限控制

####################### #用户角色 ####################### RabbitMQ的用户角色分类: none、management、policymaker、monitoring、administrator RabbitMQ各类角色描述: none 不能访问 management plugin management 用户可以通过

刀刀的专栏 13万+

OpenStack Glance手动安装与生产级配置实战指南

Glance是OpenStack中负责虚拟机镜像管理的核心服务,其本质是一个提供RESTful API的元数据与二进制镜像存储系统。它基于分层架构设计,通过glance-api暴露v2/v3接口,依赖Keystone实现身份认证、MySQL持久化元数据、RBD/Swift等后端存储镜像文件。技术价值在于支持多租户隔离、高并发上传(>20 QPS)、TB级镜像仓库及等保三级审计能力。典型应用场景包括金融云镜像合规管控、高校科研云多项目镜像权限划分、以及云管平台直连原生API集成。本文聚焦Glance手动部署这

weixin_34293246的博客 502

VPS轻量级工作队列实战:Beanstalkd从零部署与生产运维

工作队列是异步任务调度的核心基础设施,其本质是解耦生产者与消费者、实现流量削峰与故障隔离。Beanstalkd作为纯内存、低开销、TCP直连的轻量级队列系统,凭借原子状态机(ready/reserved/delayed/buried)、极简协议和2MB常驻内存特性,在资源受限的VPS环境中展现出独特优势。相比Redis List缺乏任务生命周期管理、RabbitMQ依赖复杂且内存占用高,Beanstalkd以‘功能克制’换取极致稳定与调试透明——支持telnet手工验证、无抽象层客户端、systemd原生服

weixin_36250541的博客 511

18_小米监控Open-Falcon:Rabbitmq监控

小米监控Open-Falcon:Rabbitmq监控更多干货分布式实战(干货)spring cloud 实战(干货)mybatis 实战(干货)spring boot 实战(干货)React 入门实战(干货)构建中小型互联网企业架构(干货)python 学习持续更新一、 介绍在数据采集一节中我们介绍了常见的监控数据源。open-falcon作为一个监控框架,可以去采集任何系统的监控指标数据,只要将...

架构师的成长之路的博客 3693

docker一键部署笔记

默认 登录用户名: postgres如果遇到 FATAL: password authentication failed for user "XXX"有可能防火墙的问题,禁止外部访问解决方法: 在 data 的 pg_hba.conf 中的 ipv4 添加以下一行。

Angindem博客 462

Django 1.5.4 专题23 Celery RabbitMQ

aptitude install rabbitmq-server

wcc526的专栏 3873

物联网管理平台实战解析:工业级架构设计与部署

物联网管理平台是连接设备、数据与业务的核心枢纽,其本质是一套面向真实产线的系统工程——涵盖设备接入协议适配、时序数据存储优化、低延迟告警推送及RBAC权限管控等关键技术环节。理解其分层架构(设备层→接入层→存储层→服务层→应用层)有助于掌握高可用物联网系统的构建逻辑;而MQTT连接池调优、InfluxDB降采样策略、RabbitMQ替代Kafka的SLA驱动选型等实践决策,则体现了工程落地中对稳定性、确定性与可交付性的深度权衡。本文以一个真实运行过的工业级zip包为蓝本,解析从设备注册、数据清洗到告警引擎的

weixin_34408717的博客 506

Delphi-RabbitMQ.zip

Delphi RabbitMQ 访问代码

rabbitmq监控

python实例#!/bin/env python # encoding: utf-8import sys, urllib2, base64, json#rabbitmq ip = "127.0.0.1" username = "guest" password = "guest"#monitor keys keys = ('messages_ready', 'messages_unacknowle

曾浩 2263

delphi Stomp客户端连接 RabbitMQ(1)-附件资源

delphi Stomp客户端连接 RabbitMQ(1)-附件资源

RabbitMQ路由键机制与Puka客户端实战解析

消息队列中的路由键(Routing Key)是实现事件驱动架构的核心机制,它通过交换器(Exchange)与绑定键(Binding Key)的字符串匹配规则,完成消息的精准分发。其底层原理基于AMQP协议的轻量级模式匹配,不依赖业务代码判断,具备高并发、低延迟特性。在Direct交换器中表现为严格全等匹配,在Topic交换器中支持*和#通配符语义路由,广泛应用于微服务解耦、日志分级投递、事件总线等场景。本文以贴近协议的Puka客户端为工具,深入拆解routing key从生产、匹配、投递到消费确认的完整生命

chenshixi3325的博客 503

实验室LIMS系统选型指南:从赛默飞到金现代,5大主流方案横评

本文深入分析了实验室LIMS系统选型的5大核心维度,包括架构选择、行业适配性、合规性设计、智能化程度和成本模型。通过对比赛默飞、金现代等主流厂商的优劣势,提供实战避坑策略,帮助实验室管理者做出明智决策,提升运营效率和合规水平。

plum99的博客 259

YOLO详解

本文参考知乎 https://zhuanlan.zhihu.com/p/25236464 1. YOLO的创新点 YOLO将物体检测作为回归问题求解。基于一个单独的end-to-end网络,完成从原始图像的输入到物体位置和类别的输出。 从网络设计上,YOLO与two steps的目标检测方法如RCNN、Fast RCNN和Faster RCNN的区别如下: YOLO训练和检测均是在一个单独网...

UnknownPlayer的博客 9953

OpenDuty性能优化终极指南:大规模告警处理与高可用性配置实战

OpenDuty是一款开源的告警处理和事件升级工具,专为大规模监控系统设计。作为PagerDuty的开源替代方案,OpenDuty提供了强大的告警管理、事件升级和多通道通知功能。本文将深入探讨OpenDuty性能优化的核心策略,帮助您构建高可用的大规模告警处理系统。 ## 🔥 为什么需要OpenDuty性能优化? 随着企业监控规模的扩大,告警数量可能呈指数级增长。未经优化的OpenDuty实

gitblog_01132的博客 544

R语言的下载、安装及环境配置(Rstudio&VSCode)

R for Windows是一个免费的用于统计计算和统计制图的优秀工具,是R语言开发工具。它拥有数据存储和处理系统、数组运算工具(其向量、矩阵运算方面功能尤其强大)、完整连贯的统计分析工具、优秀的统计制图等功能。提供的图形界面,可以在其中访问控制台、创建脚本或安装其他软件包。

zegeai的博客 2万+

Semantica Kafka实时流摄入教程:StreamIngestor构建实时知识图谱

Semantica 是一款面向 AI 系统的图原生基础设施,其 **StreamIngestor** 组件可以让你把 Kafka 消息队列里的实时事件流直接转化为**实时知识图谱**。本教程面向新手,带你用不到 30 行代码,完成从 Kafka 实时流摄入到知识图谱构建的完整流程,并学会监控摄入链路的健康状态。 [![Semantica知识图谱探索器演示:可视化实时知识图谱](https://r

gitblog_01194的博客 860

uniapp: err = err.replace(this._UNI_INPUT_DIR_REG, ‘UNI_TypeError: err.replace is not a function问题修复

问题:uniapp的依赖包出现了问题,需要升级解决办法:升级uniapp依赖包,下载"semver"和”@dcloudio/uni-i18n“两个包,本地锁定postcss为7版本,就解决了。

py_boy的博客 1453

新手必看!Stata工具变量分析中的三大陷阱:如何正确解读LM统计量、CDW检验和Hansen J值

本文深度解析Stata工具变量分析中的三大核心检验:不可识别检验、弱IV检验和过度识别检验,帮助新手避开常见陷阱。详细解读LM统计量、CDW检验和Hansen J值的正确使用方法,提供实战案例和Stata操作指南,确保研究结论的可靠性。

weixin_29231027的博客 572

ai-development-patterns 揭秘:Adversarial Evaluator 对抗式评审,为什么不能让AI给自己打分

**ai-development-patterns** 是一个系统化的 AI 开发模式集合,按成熟度和开发生命周期组织,覆盖 Foundation、Development、Operations 三大阶段。其中 [Adversarial Evaluator(对抗式评审)](https://link.gitcode.com/i/d717fd78dede20e7ccddf1e8bc6f28f7) 是 D

gitblog_00076的博客 395

python-调用动态链接库dll/so的方法

使用python ctyeps CDLL来调用linux下的so动态链接库或windows下的dll动态链接库

XIAOXIANG233233的博客 3662
上一篇: redis-monitor.py
下一篇: openfalcon-mongodb监控插件
LifeSecret
博客等级 码龄20年 172粉丝 825原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值