c++ 多key_详解Zabbix自定义Key监控Rabbitmq(监控特定队列)
概述
今天主要介绍一下zabbix怎么去自定义key来监控rabbitmq队列。
一、环境准备脚本
1、每秒钟插入一个观察队列情况(queues.py)
# -*- coding: utf-8 -*-import pikaimport timecredentials = pika.PlainCredentials('hwb', 'xxx')connection = pika.BlockingConnection(pika.ConnectionParameters('127.0.0.1',5672,'/',credentials))channel = connection.channel()queuename="hwb"channel.queue_declare(queue=queuename)i = 1while True: channel.basic_publish(exchange='', routing_key=queuename, body='hwb body {0}'.format( i )) print("insert hwb body success") time.sleep(1) i = i + 1
2、消费者程序(rabbitconsumer.py)
# -*- coding: utf-8 -*-import pikacredentials = pika.PlainCredentials('hwb', 'xxx')connection = pika.BlockingConnection(pika.ConnectionParameters('127.0.0.1',5672,'/',credentials))channel = connection.channel()queuename="hwb"channel.queue_declare(queue=queuename)def callback(ch, method, properties, body): print("Received %r" % body)channel.basic_consume(callback,queue=queuename,no_ack=True)print('Consume waiting for messages. To exit press CTRL+C')channel.start_consuming()
二、Rabbitmq监控脚本
1、Python获取队列信息(/etc/zabbix/zabbix_agentd.d/rabbitmqmonitor.py)
# -*- coding: utf-8 -*-try: import jsonexcept: import simplejson as jsonimport commands (status, output) = commands.getstatusoutput("""curl -s -u hwb:fxxx http://127.0.0.1:15672/api/queues""")outputjson = json.loads(output)for one in outputjson: print(one['name']) print(one['messages_ready']) if(one.has_key('message_stats')): if(one['message_stats'].has_key('deliver_get')): print(one['message_stats']['deliver_get']) continue print(0)
分别输出:namemessages_readydeliver_get信息
2、Shell监控脚本:(/etc/zabbix/zabbix_agentd.d/rabbitmq_check.sh)
#!/bin/bashqueuename=$1queuetype=$2result=$(python /etc/zabbix/zabbix_agentd.d/rabbitmqmonitor.py)case $2 in "unread" ) echo "$result" |grep "^$queuename$" -A 2 |awk 'NR==2';; "read" ) echo "$result" |grep "^$queuename$" -A 2 |awk 'NR==3';; *) echo "unsupport key";;esac
测试监控脚本
./rabbitmq_check.sh hwb read
./rabbitmq_check.sh hwb unread
3、自定义Key脚本(/etc/zabbix/zabbix_agentd.d/rabbitmq.conf)
UserParameter=rabbitmq.status[*],sh /etc/zabbix/zabbix_agentd.d/rabbitmq_check.sh $1 $2
4、zabbix_get测试
zabbix_get -s xxx -k rabbitmq.status[hwb,unread]
三、zabbix网页添加监控项
--未读队列名称:queue $1 $2键值:rabbitmq.status[hwb,unread]类型:数字单位:更新间隔:60s--每秒钟处理的队列数名称:queue $1 $2 persecond键值:rabbitmq.status[hwb,read]类型:浮点数单位:更新间隔:60s进程:每秒更改
四、zabbix网页添加触发器
--未读队列超过xxx告警 -> 监控业务有没有在正常处理名称:hwb queue unread>100严重性:严重表达式:{mq.jk:rabbitmq.status[hwb,unread].last()}>100--每秒钟处理的队列数超过xx告警 -> 监控业务的并发的能力名称:hwb queue read persecond > 200严重性:严重表达式:{mq.jk:rabbitmq.status[hwb,read].last()}>200
五、测试
模拟产生队列达到100触发告警
告警邮件如下:
修复邮件如下:
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~
c++ 多key_详解Zabbix自定义Key监控Rabbitmq(监控特定队列)相关推荐
- zabbix 自定义 key (转)
转自:http://www.cnblogs.com/miclesvic/p/6164303.html 1.在zabbix_agent端zabbix_agentd.conf配置文件中增加自定义Key(/ ...
- python连接oracle进行监控_使用Python脚本zabbix自定义key监控oracle连接状态
目的:此次实验目的是为了zabbix服务端能够实时监控某服务器上oracle实例能否正常连接 环境:1.zabbix_server 2.zabbix_agent(含有oracle) 主要知识点: 1. ...
- Git详解之七 自定义Git
Git详解之七 自定义Git 自定义 Git 到目前为止,我阐述了 Git基本的运作机制和使用方式,介绍了 Git提供的许多工具来帮助你简单且有效地使用它.在本章,我将会介绍 Git的一些重要的配置方 ...
- android tablayout 自定义,TabLayout用法详解及自定义样式
TabLayout的默认样式: app:theme="@style/Widget.Design.TabLayout" 从系统定义的该样式继续深入: fill fixed 264dp ...
- 学习TeXworks编辑器(二)TAB补全详解与自定义补全命令总结
文章目录 写在前面 内置补全命令及记忆 希腊字母的补全 规则 对应表 小写希腊字母 大写希腊字母 作为变量的希腊字母 常用数学命令(字体)的补全 常用环境的补全 自定义补全命令 结语 参考文献 写在前 ...
- python def函数报错详解_python自定义函数def的应用详解
这篇文章主要介绍了python自定义函数def的应用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 这里是三岁,来和大家唠唠 ...
- React中使用Vditor详解(自定义图片)
安装 npm install vditor -s 引用 导入依赖包 import Vditor from "vditor"; 导入样式 import "vditor/sr ...
- Service 服务详解 及自定义服务模板
文章目录 1.服务简介 2.服务的生命周期 1) Service 的 启动 停止 2).服务的生命周期的方法 3.使用startService 启动后服务的生命周期 1).文件结构 2) activi ...
- 【详解】 ELK (ElasticStack) 实现日志监控
目录 ElasticStack 介绍: Demo 实现 说在前面 案例实现流程图 创建Spring Boot 项目 项目部署.运行 Logstash配置 FileBeat配置 ES配置 Kibana配 ...
最新文章
- 0.38秒!MIT 机器人还原3阶魔方的时间再破记录
- volatile关键字解析
- scanf()函数错误把输入缓存里的回车作为一次字符输入
- div靠边隐藏_css如何隐藏div不占位置?
- 帮助罕见病患者买得到药 京东健康上线“罕见病关爱中心”
- SN战队创造历史,苏宁集团发内部嘉奖令
- oracle回滚断查询,Oracle回滚段使用查询代码详解
- 和catch的区别_面试刷题2:Exception和Error的区别?
- c++的准备知识18
- 计算机辅助英语教学电子版,计算机辅助英语教学探究.pdf
- Metasploit中meterpreter里cmd乱码解决办法
- 厉害了:tcgames电脑玩手游助手新功能强势上线,可编程游戏按键
- 函数图像计算器java版下载_Mathlab图形计算器(Graphing Calculator Mathlab)无广告版下载-Mathlab图形计算器专业版下载v4.14.159-西西软件下载...
- python 智能语音_python实现人工智能语音助手
- SpringSecurity授权
- android 设置锁屏壁纸
- 水仙花数n位c语言程序,水仙花数C语言的
- C++解决八皇后问题
- kubernetes 网络
- 寓教于乐——玩转角色互换游戏