概述

今天主要介绍一下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(监控特定队列)相关推荐

  1. zabbix 自定义 key (转)

    转自:http://www.cnblogs.com/miclesvic/p/6164303.html 1.在zabbix_agent端zabbix_agentd.conf配置文件中增加自定义Key(/ ...

  2. python连接oracle进行监控_使用Python脚本zabbix自定义key监控oracle连接状态

    目的:此次实验目的是为了zabbix服务端能够实时监控某服务器上oracle实例能否正常连接 环境:1.zabbix_server 2.zabbix_agent(含有oracle) 主要知识点: 1. ...

  3. Git详解之七 自定义Git

    Git详解之七 自定义Git 自定义 Git 到目前为止,我阐述了 Git基本的运作机制和使用方式,介绍了 Git提供的许多工具来帮助你简单且有效地使用它.在本章,我将会介绍 Git的一些重要的配置方 ...

  4. android tablayout 自定义,TabLayout用法详解及自定义样式

    TabLayout的默认样式: app:theme="@style/Widget.Design.TabLayout" 从系统定义的该样式继续深入: fill fixed 264dp ...

  5. 学习TeXworks编辑器(二)TAB补全详解与自定义补全命令总结

    文章目录 写在前面 内置补全命令及记忆 希腊字母的补全 规则 对应表 小写希腊字母 大写希腊字母 作为变量的希腊字母 常用数学命令(字体)的补全 常用环境的补全 自定义补全命令 结语 参考文献 写在前 ...

  6. python def函数报错详解_python自定义函数def的应用详解

    这篇文章主要介绍了python自定义函数def的应用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 这里是三岁,来和大家唠唠 ...

  7. React中使用Vditor详解(自定义图片)

    安装 npm install vditor -s 引用 导入依赖包 import Vditor from "vditor"; 导入样式 import "vditor/sr ...

  8. Service 服务详解 及自定义服务模板

    文章目录 1.服务简介 2.服务的生命周期 1) Service 的 启动 停止 2).服务的生命周期的方法 3.使用startService 启动后服务的生命周期 1).文件结构 2) activi ...

  9. 【详解】 ELK (ElasticStack) 实现日志监控

    目录 ElasticStack 介绍: Demo 实现 说在前面 案例实现流程图 创建Spring Boot 项目 项目部署.运行 Logstash配置 FileBeat配置 ES配置 Kibana配 ...

最新文章

  1. 0.38秒!MIT 机器人还原3阶魔方的时间再破记录
  2. volatile关键字解析
  3. scanf()函数错误把输入缓存里的回车作为一次字符输入
  4. div靠边隐藏_css如何隐藏div不占位置?
  5. 帮助罕见病患者买得到药 京东健康上线“罕见病关爱中心”
  6. SN战队创造历史,苏宁集团发内部嘉奖令
  7. oracle回滚断查询,Oracle回滚段使用查询代码详解
  8. 和catch的区别_面试刷题2:Exception和Error的区别?
  9. c++的准备知识18
  10. 计算机辅助英语教学电子版,计算机辅助英语教学探究.pdf
  11. Metasploit中meterpreter里cmd乱码解决办法
  12. 厉害了:tcgames电脑玩手游助手新功能强势上线,可编程游戏按键
  13. 函数图像计算器java版下载_Mathlab图形计算器(Graphing Calculator Mathlab)无广告版下载-Mathlab图形计算器专业版下载v4.14.159-西西软件下载...
  14. python 智能语音_python实现人工智能语音助手
  15. SpringSecurity授权
  16. android 设置锁屏壁纸
  17. 水仙花数n位c语言程序,水仙花数C语言的
  18. C++解决八皇后问题
  19. kubernetes 网络
  20. 寓教于乐——玩转角色互换游戏

热门文章

  1. 第一天2017/03/28
  2. 微博收藏(机器学习探讨)(二)
  3. Programming Computer Vision with Python (学习笔记九)
  4. OpenCV捕获视频和摄像头
  5. MySQL中有关TIMESTAMP和DATETIME的总结
  6. Java时间日期格式转换
  7. 程序员要学会读源代码
  8. [BetterExplained]遇到问题为什么应该自己动手
  9. 【OpenCV3】级联分类器目标检测——cv::CascadeClassifier简介
  10. 应用后台省电秘籍——低功耗状态下应用如何正常运行?