ITPub博客

首页 > 数据库 > MySQL > 用zabbix监控mysql的主从复制

用zabbix监控mysql的主从复制

原创 MySQL 作者:czxin788 时间:2015-07-30 10:56:09 0 删除 编辑

用zabbix监控mysql的主从复制

在要监控的服务器设置如下脚本
[root@zabbixsrvbjdb04 ~]# cat /data/script/monitor.sh

#!/bin/sh

# check_mysql_slave status

#修改网卡信息

ip=eth0  

mysql_binfile=/usr/local/mysql/bin/mysql

#监控使用的账号信息

mysql_user=monitor 

mysql_pass='monitor123567'  

#sock

mysql_sockfile=/holiday/mariadb/mysql.sock

datetime=`date +"%Y-%m-%d/%H:%M:%S"`   

#监控状态日志文件,自行定义

mysql_slave_logfile=/holiday/moniter/check_mysql_slave.log  

#监控状态输出文件,监控文件

mysql_slave_status=/home/monitor/slavestatus 

#获取IP

slave_ip=`ifconfig $ip|grep "inet addr" | awk -F[:" "]+ '{print $4}'`

#获取slave状态

status=$($mysql_binfile -u$mysql_user -p$mysql_pass -P3307 -e "show slave status\G" | grep -i "running")

Slave_IO_Running=`echo $status | grep Slave_IO_Running | awk ' {print $2}'`

Slave_SQL_Running=`echo $status | grep Slave_SQL_Running | awk '{print $2}'`

echo $Slave_IO_Running

echo $Slave_SQL_Running

#判断

if [ "$Slave_IO_Running" = "Yes" -a "$Slave_SQL_Running" = "Yes" ]

then 

      echo "Slave is Running!"

      echo 1 > $mysql_slave_status

else

        echo 0 > $mysql_slave_status

        echo " $datetime $slave_ip Slave is not running!" >> $mysql_slave_logfile

     

fi




设置任务执行计划:
[root@zabbixsrvbjdb01 ~]# crontab -l
*/1 * * * * /usr/sbin/ntpdate 10.2.43.16
*/10 * * * * /data/script/monitor.sh


然后在zabbix agent里面设置的配置文件末尾添加如下参数:
 #cat /usr/local/zabbixagent/conf/zabbix_agentd.conf


UserParameter=slavestatus,cat /home/monitor/slavestatus
UserParameter= breads,sar -b 1 5|tail -n 1|awk '{print $4}'
UserParameter= bwrtns,sar -b 1 5|tail -n 1|awk '{print $5}'

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28916011/viewspace-1756334/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-06-03

  • 博文量
    192
  • 访问量
    614489