rabbitmq死信队列消息监听

#邮件通知并发送队列消息
#!/bin/bash maillog="/var/log/mq.maillog" message_file="/tmp/mq_message" echo "$(date +%Y-%m-%d-%H:%M:%S)" >> $maillog receiver="xxx01@xxx.com xxx02@xxx.com"
user="xxx"
password="xxxx"
message_count=`./rabbitmqadmin.py -H mq服务器地址 -u $user -p $password list queues|column -t|grep -vE 'message|\+'|grep "deadLetterQueue"|awk '$4!=0 {print $4}'` for i in seq `1 $message_count` do #requeue=false会将消息取出,测试可以配成requeue=true message_body=`./rabbitmqadmin.py -H mq服务器地址 -u $user -p $password get queue=deadLetterQueue requeue=false` echo $message_body >> $message_file done message=`cat $message_file` echo $message >> $maillog cat << EOF |mail -s "Rabbitmq Dead Letter Message" $receiver $message EOF rm -f "$message_file"

#rabbitmqadmin.py可以通过官方的接口去下载

 

#短信通知
#!/bin/bash
#echo "$(date +%Y-%m-%d-%H:%M:%S)" >> $maillog
cd /root/monitor/service/rabbitmq/
message_count=`./rabbitmqadmin.py  -H mq服务器地址   -u xxx  -p xxxx  list queues|column -t|grep -vE 'message|\+'|grep "deadLetterQueue"|awk '{print $4}'`
#message_count=1

if [ $message_count -eq 0 ];then
   echo "0" > ./messagefile
fi
#配置告警收敛
if [ `cat messagefile` -eq 0 ];then
   if [ $message_count -gt 0 ];then
      /usr/bin/python ./message.py
      echo "1" > ./messagefile
   fi
fi
echo "0" > messagefile

message.py #使用云片网发送短信

#!/usr/bin/python
#-*- coding:utf-8 -*-
# apikey:成功注册后登录云片官网,进入后台可查看
# text:需要使用已审核通过的模板或者默认模板
# mobile:接收的手机号,仅支持单号码发送
import os
import urllib,urllib2,httplib,time
from subprocess import Popen,PIPE
def send_sms(apikey, text, mobile):
#服务地址
sms_host = "sms.yunpian.com"
#端口号
port = 443
#版本号
version = "v2"
#智能匹配模板短信接口的URI
sms_send_uri = "/" + version + "/sms/batch_send.json"
params = urllib.urlencode({'apikey': apikey, 'text': text, 'mobile':mobile})
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
conn = httplib.HTTPSConnection(sms_host, port=port, timeout=30)
conn.request("POST", sms_send_uri, params, headers)
response = conn.getresponse()
response_str = response.read()
conn.close()
return response_str
print "#"*50
if __name__=='__main__':
apikey='xxxxx'
mobile='xxxxx,xxxxxx'
message="【xx告警】Rabbitmq死信队列存在堆积消息,请注意查看!"
print message
send_sms(apikey,message,mobile)

 

转载于:https://www.cnblogs.com/imcati/p/11276122.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值