nagios mysql 并发_nagios 监控 mysql连接数 脚本

#!/bin/bash

#Written by carl zhang

#This Nagios plugin can be check your mysql connections status

USAGE_Method="$(basename $0) [-w|--warning] [-c|--critical] "    ### basename $0  显示$0基本名称  $0指脚本名称

USAGE_Value="WARNING value must be small than CRITICAL value: `basename $0` $*" ### $* 显示向脚本传来的所有参数

MYSQLUSER=nagios    #### mysql  连接用户名

MYSQLPS=nagiosadmin   #### mysql 连接密码

MYSQLBIN=/usr/local/mysql/bin/mysql   ####mysql 安装路径

STATE_OK=0

STATE_WARNING=1

STATE_CRITICAL=2

STATE_UNKNOWN=3

if [ $# -lt 4 ];then

echo

echo "Usage: $USAGE_Method"

echo

exit 0

fi

while [ $# -gt 0 ];do

case "$1" in

-w|--warning)

shift                          ##### linux shell 中shift  表示执行一次 传递的参数提前一位 即减少执行shift 前的变量 提交下一个变量

WARNING=$1

;;

-c|--critical)

shift

CRITICAL=$1

;;

esac

shift

done

if [[ $WARNING -eq $CRITICAL || $WARNING -gt $CRITICAL ]]

then

echo

echo "$USAGE_Value"

echo

echo "Usage: $USAGE_Method"

echo

exit 0

fi

used_connections=$($MYSQLBIN -u$MYSQLUSER -p$MYSQLPS -e "show status like 'Threads_connected'\G" | grep "Value" | awk '{print $2}')

max_connections=$($MYSQLBIN -u$MYSQLUSER -p$MYSQLPS -e "show variables like 'max_connections'\G" | grep "Value" | awk '{print $2}')

PERCENT=$(bc <<< "scale=2;$used_connections/$max_connections" | tr '^.' ' ')   #### bc  看作linux中计算器,scale 定义小数位后的数量(目前发现只对除法适用,并不会四舍五入)   tr  string2 替换 string1 ,因为scale 已经定义小数位后的数量,所以tr 替换后将被删除。

if [[ "$PERCENT" -gt "$CRITICAL" ]]

then

echo "CRITICAL - used_connections is : $used_connections"

exit 2

fi

if [[ "$PERCENT" -gt "$WARNING" && "$PERCENT" -lt "$CRITICAL" ]]

then

echo "WARNING - used_connections is : $used_connections"

exit 1

fi

if [[ "$PERCENT" -lt "$WARNING" ]]

then

echo "OK - used_connections is : $used_connections"

exit 0

fi

因为这里涉及到mysql数据库的权限,因此需要在mysql中添加naigos帐号,这一步操作命令如下:

GRANT PROCESS, FILE, SUPER, REPLICATION CLIENT ON *.* TO 'nagios'@'localhost' IDENTIFIED BY 'nagiosadmin';

FLUSH PRIVILEGES;

第二步:配置nrpe.cnf配置文件,定义获取数据的命令,以供nagios服务器端调用,配置如下:

vim /usr/local/nagios/etc/nrpe.cfg

command[check_mysql_connections]=/usr/local/nagios/libexec/check_mysql_connections -w 75 -c 85

###### -w   -c 后的数值为 百分比数值  可参考脚本 $PERCENT的值

保存后,重新启动nrpe客户端,执行如下命令:

killall nrpe

/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

第三步:在nagios服务器端配置服务器调用该命令进行监控,配置如下:

define service {

use generic-service

host_name zhongshan_server_xx_xxx

service_description check_mysql_connections

check_period 24x7

notifications_enabled 1

max_check_attempts 3

normal_check_interval 3

retry_check_interval 2

contact_groups dbadmins

notification_interval 10

notification_period 24x7

notification_options w,u,c,r

check_command check_nrpe!check_mysql_connections

}

最后检查配置问题以后,重新加载nagios的配置,具体操作命令如下:

/etc/rc.d/init.d/nagios checkconfig

/etc/rc.d/init.d/nagios reload

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值