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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值