.监控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
---------------------------------