脚步监控mysql主从是否正常

Mysql主从配置详见:http://chinawu.blog.51cto.com/10692884/1739327

主从正常状态是slave上的状态值:Slave_IO_Running:YES和Slave_SQL_Running:YES,当出现一个NO,表明mysql主从已破坏,但是,运维人员不可能随时进入mysql的slave上的状态值。所以需要一个脚步在规定时间内检测是否关系正常。

脚步大致内容:

#!/bin/bash

#Check MySQL_Slave Status

#MySQL version: 5.1.73

#2016-01-29

MySQL_PORT=`netstat -an|grep "LISTEN"|grep "3306"|awk -F ‘ ‘ ‘{print $4}‘|awk -F ‘:‘ ‘{print $2}‘` #注意:租后一个print $2,不一定适用所有主机,根据实际情况pring值

MySQL_IP=`ifconfig eth0 |grep "inet addr"|awk -F ‘:‘ ‘{print $2}‘|awk -F ‘ ‘ ‘{print $1}‘`

MySQL_Status=$(/usr/local/mysql/bin/mysql -S /tmp/mysql.socket -uroot -pfgjh123. -e "show slave status\G" |grep -i "running"|head -n2)

IO_env=`echo $MySQL_Status | grep Slave_IO_Running |awk ‘{print $2}‘`

SQL_env=`echo $MySQL_Status |grep Slave_SQL_Running |awk ‘{print $2}‘`

ToDay=`date +"%y-%m-%d %H:%M:%S"`

if [ "$MySQL_PORT" == "3306" ]

then

echo "######  $ToDay  ######" >> /data/check_mysql_slave_ok.log

echo "MySQL Server is running !" >> /data/check_mysql_slave_ok.log

else

mail -s "Warn! Server:$MySQL_IP MySQL is Down" [email protected]

fi

if [ "$IO_env" = "Yes" -a "$SQL_env" = "Yes" ]

then

echo "######  $ToDay  ######" >> /data/check_mysql_slave_ok.log

echo "Slave MySQL Server Slave_IO and Slave_SQL is running !" >> /data/check_mysql_slave_ok.log

else

echo "######  $ToDay  ######" >> /data/check_mysql_slave_warn.log

echo "Slave is not running !" >> /data/check_mysql_slave_warn.log

echo "Slave is not running !" | mail -s "Warn! $MySQL_IP MySQL Slave is not running " [email protected]

fi

随后放入自动执行任务列表中,crontab -e

*/10 * * * * root /bin/sh /root/shell/Check_MySQL_Slave_Status.sh

每十分钟运行一次检测脚步(时间自定义,crontab五个参数请自习)

zabbix添加触发器,检测mysql主从,微信告警

[[email protected] scripts]# cat  mysql-replication.sh

#!/bin/bash

mysql  -uzabbix -e  ‘show slave status\G‘ |grep -E "Slave_IO_Running|Slave_SQL_Running"|awk ‘{print $2}‘|grep -c Yes

[[email protected] scripts]#

[[email protected] etc]# tail  -15  zabbix_agentd.conf

UserParameter=mysql.replication,  /home/zabbix/scripts/mysql-replication.sh

UserParameter=mysql.status[*],/home/zabbix/scripts/chk_mysql.sh $1

时间: 2024-11-04 23:42:35

脚步监控mysql主从是否正常的相关文章

监控mysql主从同步状态是否异常,如果异常,则发生短信或邮寄给管理员

阶段1:开发一个守护进程脚本每30秒实现检测一次. 阶段2:如果同步出现如下错误号(1158,1159,1008,1007,1062),请跳过错误 阶段3:请使用数组技术实现上述脚本(获取主从判断及错误号部分) [[email protected] ~]# mysql -u root -proot -e "show slave status\G;" *************************** 1. row ***************************       

监控MySQL主从同步

脚本监控数据库主从同步 来源:http://oldboy.blog.51cto.com/2561410/1632876 来源: (生产实战案例):监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员.提示:如果没主从同步环境,可以用下面文本放到文件里读取来模拟: 阶段1:开发一个守护进程脚本每30秒实现检测一次. 阶段2:如果同步出现如下错误号(1158,1159,1008,1007,1062),则跳过错误. 阶段3:请使用数组技术实现上述脚本(获取主从判断及错误号部分 [[em

使用zabbix监控mysql主从状态

公司mysql架构为一主多从.在日常使用过程中我们经常会遇到主从不同步的情况,为了及时处理此问题现使用zabbix监控mysql主从状态并设置触发器,如有异常则发送邮件报警. 我们都知道使用命令"show slave status \G"可以查看mysql从的状态,下面用脚本方式检查其状态. 在mysql-slave中进入zabbix-agent目录创建脚本文件. cat mysql_slave_status.sh #!/bin/bash /usr/local/mysql/bin/my

监控MySQL主从同步是否异常并报警企业案例模拟

企业面试题1:(生产实战案例):监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员.提示:如果没主从同步环境,可以用下面文本放到文件里读取来模拟:阶段1:开发一个守护进程脚本每30秒实现检测一次.阶段2:如果同步出现如下错误号(1158,1159,1008,1007,1062),则跳过错误.阶段3:请使用数组技术实现上述脚本(获取主从判断及错误号部分) 此题来自:http://oldboy.blog.51cto.com/2561410/1632876 解答参考1: #!/bin

shell监控MySQL主从状态脚本两则

内容为自己的一点总结,如有不对欢迎狠劲儿拍砖 本文来自http://yijiu.blog.51cto.com/转载请经博主同意,翻版可耻 监控主从复制正常与否 相比各位都应该知道,监控主从是否工作正常,涉及命令如下: show slave status\G; 那么,我们需要关注的参数如下: 1. 首先查看SQL和IO线程是否为YES状态(想必各位都明白了) 2. 是否有延迟 是否大于0   #一般生成环境延迟是否大于500秒,如果大于500则报警,如大于1000则严重报警 #比如传递一个sql到

zabbix自定义监控mysql主从状态,并做邮件告警

 通过zabbix自定义监控mysql主从状态,并做邮件告警 分析: mysql主要是通过主从来提供安全性,一个完整的主从体系,就应该包括数据同步.开启二进制日志.全备.还有对Slave_IO_Running和Slave_SQL_Running两个线程的实时监测,并做告警,而zabbix监控软件就提供了很好的方法:对于zabbix这个监控软件,个人来说也是比较熟悉,现在的企业们都基本用的是zabbix软件来做系统的资源的监控,zabbix的强大不仅仅体现于,它自身自带的监控模板比较全面,而是通过

利用Zabbix监控mysql主从

mysql主从监控 #脚本如下,截取主从关键字 cat check_mysql_slave.sh  #!/bin/bash # declare -a 定义数组,slave_is 会被视为数组 declare -a slave_is slave_is=($(/data/mysql/bin/mysql -e "show slave status\G"|grep -E "Slave_IO_Running|Slave_SQL_Running:"|awk '{print $2

监控mysql主从脚本

一.下载并解压sendEmail cd /usr/local/src wget tar -zxvf sendEmail-v1.56.tar.gz cp sendEmail-v1.56/sendEmail /usr/local/bin/     拷贝之后就能用了 发邮件命令: sendEmail [email protected] -t [email protected] -s smtp.163.com -u "test"-xu zhang_peicheng -xp xxxxxxxxxx

zabbix监控mysql-如何使用zabbix自带的模板监控-nagios监控mysql主从

用zabbix监控mysql(源码安装)安装位置在/usr/local/zabbix/ 监控端(server): 在被监控端主机上关联该模板Template App MySQL 中文:组态->主机->名称一栏点击进去->模板,点击链接新模板->添加->Template App MySQL->存档 英文:Configuration->Hosts->Name->Templates,Link new templates->Add->Templat