首页  >  文章  >  数据库  >  Nagios里面监控MySQL事务一直RUNNING没有结束的报警Shell脚本_MySQL

Nagios里面监控MySQL事务一直RUNNING没有结束的报警Shell脚本_MySQL

WBOY
WBOY原创
2016-06-01 13:01:091045浏览
序言:

1、编写事务监控脚本

#!/bin/bash


ST_OK=0
ST_WR=1
ST_CR=2
ST_UK 上的 RUNNING TRANSACTION =3


TIME_TRX=10


# 提示信息
print_help() {
echo "$PROGNAME -w INT -c INT"
echo "选项:"
echo "-w/--警告)"
echo "设置警告编号"
echo "-c/--ritic)"
echo " 设置 io 的临界级别"
退出 $ST_UK
}



while test -n "$1";做
案例“$1”在
-帮助|-h)
print_help
> 打印帮助 退出 $ST_UK
;;



--警告|-w)
警告=$2
转变
;;



--关键|-c)
关键=$2
转变
;;



*)
echo "未知参数: $1"
print_help
> 打印帮助 退出 $ST_UK
;;



esac
> esac 移位
完成






get_wcdiff() {
; 如果 [ ! -z "$警告" -a ! -z“$关键”]
然后
wclvls=1
>



if [ ${警告} -gt ${严重} ]
然后
wcdiff=1
> wcdiff=1

埃利夫[! -z“$警告”-a -z“$关键”]
然后
wcdiff=2
> wcdiff=2
elif [ -z "$警告" -a ! -z“$关键”]
然后
wcdiff=3
> wcdiff=3
fi
}


#脚本判断
val_wcdiff() {
; if [ "$wcdiff" = 1 ]
; 然后
echo "请调整您的警告/严重阈值。警告必须低于严重级别!"



退出 $ST_UK
elif [ "$wcdiff" = 2 ]
然后
echo "当您想使用警告/临界阈值时,还请设置一个临界值!"



退出 $ST_UK
elif [ "$wcdiff" = 3 ]
然后
echo "当您想使用警告/严重阈值时,还请设置一个警告值!"



退出 $ST_UK
fi
}


get_wcdiff
val_wcdiff


>#统计mysql的事务中最大运行时间
max_over_time=`/usr/local/mysql/bin/mysql --user=nagios --password="nagiosq@xxx" -NS /usr/local/mysql/mysql.sock -e " SELECT TIME_TO_SEC(TIMEDIFF(NOW(),t.trx_started)) FROM information_schem
a.INNODB_TRX t WHERE TIME_TO_SEC(TIMEDIFF(NOW(),t.trx_started))>$TIME_TRX ORDER BY TIME_TO_SEC(TIMEDIFF(NOW) (),t.trx_started)) DESC 限制 1;" |awk '{print $1}'`


#如果当前没有RUNNING的事务,则直接赋值为0,惨下面if判断错误
if [ ! -n "$max_over_time" ];then max_over_time=0
fi



#获取当前所以阻塞的事务数量
num_trx=`/ usr/local/mysql/bin/mysql --user=nagios --password="nagiosq@xxx" -NS /usr/local/mysql/mysql.sock -e "从 information_schema.INNODB_TRX t WHERE TIME_TO_SEC 中选择 COUNT(1) 个(TIMEDIF
F(NOW(),t.trx_started))>$TIME_TRX;" |awk '{打印$1}'`
2,在nagios客户端添加脚本监控
先测试下脚本
[root@wgq_idc_dbm_3_61 binlog]#


在nrpe.cfg里面添加监控命令
4,在nagios主监控服务器上面添加配置选项
先去nagios服务器上面check一下
在services.cfg里面添加事务监控选项:


在commands.cnf里面添加事务监控命令:
然后重新加载nagios
5,去nagios主监控界面查看监控效果


正常监控效果:
严重监控效果:



声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn