mysql主从监控脚本

代码如下:
  
  
  
  
  1. #!/bin/bash 
  2. #check MySQL_Slave Status 
  3. #crontab time 00:10 
  4. MYSQLPORT=`netstat -na|grep "LISTEN"|grep "3306"|awk -F[:" "]+ '{print $4}'` 
  5. MYSQLIP=`ifconfig eth0|grep "inet addr" | awk -F[:" "]+ '{print $4}'` 
  6. STATUS=$(/usr/local/webserver/mysql/bin/mysql -u yuhongchun -pyuhongchun101 -S /tmp/mysql.sock -e "show slave status\G" | grep -i "running")   
  7. IO_env=`echo $STATUS | grep IO | awk  ' {print $2}'` 
  8. SQL_env=`echo $STATUS | grep SQL | awk  '{print $2}'` 
  9. DATA=`date +"%y-%m-%d %H:%M:%S"` 
  10.  
  11. if [ "$MYSQLPORT" == "3306" ] 
  12. then 
  13.   echo "mysql is running" 
  14. else 
  15.   mail -s "warn!server: $MYSQLIP mysql is down" [email protected]  
  16. fi 
  17.  
  18. if [ "$IO_env" = "Yes" -a "$SQL_env" = "Yes" ] 
  19. then 
  20.   echo "Slave is running!" 
  21. else 
  22.   echo "####### $DATA #########">> /data/data/check_mysql_slave.log 
  23.   echo "Slave is not running!" >>    /data/data/check_mysql_slave.log 
  24.   echo "Slave is not running!" | mail -s "warn! $MYSQLIP MySQL Slave is not running" [email protected] 
  25. fi 
建议每十分钟运行一次
*/10 * * * * root /bin/sh /root/mysql_slave.sh
记得在每台 MySQL 从机上分配一个 yuhongchun 的用户,权限大些也没关系,只限定在本地运行,如下所示:
  
  
  
  
  1. grant all privileges on *.* to "yuhongchun"@"127.0.0.1" identified by "yuhongchun101"; 
  2. grant all privileges on *.* to "yuhongchun"@"localhost" identified by "yuhongchun101"; 
脚本设计思路 :
1 、此脚本应该能适应各种各样不同的内外网环境,即 IP 不同的环境;
2 、让脚本也顺便监控下 MySQL 是否正常运行;
3 Slave 机器的 IO SQL 状态都必须为 YES ,缺一不可,这里用到了多重条件判断 -a
脚本产生的背景环境:
我有不少基于公网类型的网站(没有硬件防火墙,直接置于 IDC 机房)做的都是 MySQL 主从架构,从机主要起备份数据库和冷备份的作用,虽然从机宕机了问题不大,但也影响数据的备份工作;这样的网站有数十个,如果一个一个手动的检查,每天都要浪费不少时间,所以玩了下脚本控,设计了如上脚本。
脚本实践:
此脚本我已用于了生产环境,大家可以放在我们的从 MySQL 机器上,用来监控;另外建议有时也手动检查下,有次发现rsync --delete 自动删除了/data/data里面的数据,即从数据库的位置,脚本没有报警。
后期应用:
后期公司的 MySQL 数据库准备由一主一从架色升级成一主多从,读写分离的架构, LVS 作从数据库的负载均衡器,此脚本自动监控从 MySQL replication 状态,如果不能同步则自动关闭本机的 MySQL 服务,免得影响整个网站的正常业务访问。当然了,到时脚本的运行周期肯定也需要更改 , 10 分钟变成秒级的,这个可以通过 while 循环来实现。
本文出自 “ 抚琴煮酒” 博客,请务必保留此出处 http://andrewyu.blog.51cto.com/1604432/666019

你可能感兴趣的:(mysql,数据库,脚本,休闲,主从监控)