首页 > 代码库 > zabbix监控mysql主从复制

zabbix监控mysql主从复制


zabbix监控mysql主从复制



.监控MySQL的复制


原理:利用在slave上运行show slave status获取Slave_IO_Running和Slave_SQL_Running的值


1.在mysql上新建监控用户

 grant replication client on *.* to ‘zabbix‘@‘localhost‘ identified by ‘zabbix‘;

 flush privileges;


2.在/data/zabbix/sbin下新建mysql_slave_status.sh脚本

MySQL 在终端直接输入密码,会有一条警告信息输出,

  先在/etc/my.cnf里面添加 MySQL用户的密码

  

 vim /etc/my.cnf

 [client]

 user = zabbix 

 password = zabbix 


vim /data/zabbix/sbin/mysql_slave_status.sh


#!/bin/bash

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

....


chmod +x /data/zabbix/sbin/mysql_slave_status.sh



3.修改/data/zabbix/conf/zabbix_agentd.conf文件



UnsafeUserParameters=1

UserParameter=mysql.slave-status,/data/zabbix/sbin/mysql_slave_status.sh


4.重启下zabbix_agemtd服务



service zabbix_agentd restart


配置zabbix服务端


测试客户端脚本

zabbix_get命令常用参数

-s --host: 指定客户端主机名或者IP

-p --port:客户端端口,默认10050

-I --source-address:指定源IP,写上zabbix server的ip地址即可,一般留空,服务器如果有多ip的时候,你指定一个。

-k --key:你想获取的key



zabbix_get -s 221.195.1.101 -k "mysql.slave-status"


如果上面返回的是2,那么是正常(1.mysql的复制正常 2.zabbix_agentd是配置正常),

代表Slave_IO_Running和Slave_SQL_Running两个状态都是Yes,这里221.195.1.101是我的slave的IP地址



测试没问题,就登录web页面


1.首先创建模板


--配置--模板--创建模板


填写模板名称: mysql.slave-status 

可视化名称:mysql.slave-status

群组.....

描述.....


保存之后


创建监控项

进入创建好的模板 mysql.slave-status

名称:mysql.slave-status

类型:zabbix 客户端端

键值:mysql.slave-status

信息类型:数字(无正负)

数据跟新时间(单位秒):30   可以根据自己情况更改数据跟新时间,我的改为5秒

其他值 默认就好


创建触发器

名称:mysql.slave-status

严重性:警告

问题表现形式: 添加--选择监控项mysql.slave-status  功能:最新的T值<N   N :2

添加之后表达式是这样的:{mysql.slave-status:mysql.slave-status.last()}<2


恢复表达式:添加--选择监控项mysql.slave-status  功能:最新的T值=N   N :2


......

web页面的配置算是完了,

Zabbix 2.*版本的和Zabbix 3.*版本 的配置有些地方不一样,不过都是大同小异。


-------------------------

测试配置是是否能触发报警


在mysql环境下stop slave;


等几分钟就会收到邮件了

rigger: mysql.slave-status

Trigger status: PROBLEM

Trigger severity: Warning

Trigger URL: 


Item values:


1. mysql.slave-status (221.195.1.101:mysql.slave-status): 0

Original event ID: 3106

-------------------------------

在mysql环境下start slave;


Trigger: mysql.slave-status

Trigger status: OK

Trigger severity: Warning

Trigger URL: 


Item values:


1. mysql.slave-status (221.195.1.101:mysql.slave-status): 2

Original event ID: 3106


---------------------------------







zabbix监控mysql主从复制