Shell脚本--监控mysql的队列,队列超过300告警

首先安装rabbitmqctl 命令

说明:rabbitmqctl 命令 可以获取Mysql对列的信息

rpm -Uvh http://www.rabbitmq.com/releases/rabbitmq-server/v3.5.6/rabbitmq-server-3.5.6-1.noarch.rpm

启动rabbitmq-server
service rabbitmq-server start

在对应的机器创建脚本
vim /usr/local/sbin/mysql.sh
#!/bin/bash  
#堵塞最大数量  
maxNum=100  
#接收者  
email_reciver="anna_wqd@163.com" 
#smtp服务器地址  
email_smtphost=smtp.exmail.126.com  
#发送者邮箱  
email_sender=tinna_wu@126.com  
#邮箱用户名  
email_username=tinna_wu
#使用qq邮箱进行发送需要注意:首先需要开启:POP3/SMTP服务。  
email_password=xxxxx
#服务器ip  
local_ip=`ifconfig|grep inet|awk '{print $2}'|awk -F " " '{print $1}'|head -1`  
#主题  
email_title="服务器${local_ip}消息队列堵塞"  
#Mysql的环境变量  
export RABBITMQPATH=/usr/lib/rabbitmq/bin/  
#获取所有队列的名字和每个队列中的消息数量,存入'queueNum'数组中  
declare -A A queue Json   
queuelindex=0  
for QUEUE in $(rabbitmqctl list_queues |grep -v 'Listing queues ...' | awk -F' ' '{print $1}');  
do   
    #统计每个消息队列的数量  
    queueJson[$QUEUE]=$(rabbitmqctl list_queues |grep $QUEUE | awk -F' ' '{print $2}')   
    nums=${queueJson[$QUEUE]}  
    # -ge    
    if [[ $nums -ge $maxNum ]]; then  
        #存key  
        queueName[$queueIndex]=$QUEUE  
        queueIndex=`expr $queueIndex + 1`  
    fi  
done   
#如果有异常,发送邮件  
exceptionNum=${#queueName[@]}  
if [[ $exceptionNum -gt 0 ]]; then  
    #有队列阻塞,exceptionName存放的为堵塞队列的名称,发送邮件  
    #内容  
    email_content="队列阻塞情况:"  
    for name in ${queueName[*]}  
    do  
        email_content=$email_content"\\n${name}:${queueJson[${name}]}"  
    done  
    echo "###################count at $(date +'%d-%m-%Y %H:%M:%S') ######################"  
    echo -e $email_content  
    #发送邮件  
    /usr/local/sbin/mysql.sh -f ${email_sender} -t ${email_reciver} -s ${email_smtphost} -u ${email_title} -xu ${email_username} -xp ${email_password} -m ${email_content} -o message-charset=utf-8  
fi  


写任务执行
crontab -e

*/30 * * * * root sh /usr/local/sbin/mysql.sh

 

转载于:https://my.oschina.net/AnnaWu/blog/1546481

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值