zabbix监控mysql主从

说明:
部署了个mysql从数据库,需要时时监控这个从数据库的主从状态。原理的话,是通过从mysql上的zabbix执行show slave status获取
Slave_IO_Running|Slave_SQL_Running状态是否都为Yes来判断主从是否正常。

具体:
1. 从mysql上允许zabbix执行show slave status查询主从状态。在从mysql上操作

> grant replication client on *.* to 'zabbix'@'localhost' identified by 'zabbix';   
> Flush privileges; 

 
2. 创建bin文件

# vim /usr/local/zabbix/bin/mysql_replication.sh  //内容如下
#!/bin/sh  
# Monitor mysql replication
# carl 20150615 1st
#PATH

/usr/local/mysql/bin/mysql -uzabbix -p"zabbix" -e 'show slave status\G'|grep -E "Slave_IO_Running|Slave_SQL_Running"|awk '{print $2}'|grep -c Yes

 
3. 创建conf文件,这一步主要是为了自定义key

# vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/mysql_replication.conf  //内容如下
UserParameter=mysql.replication,/usr/local/zabbix/bin/mysql_replication.sh

 
4. 在zabbix server上创建template模版
4.1 新建模版Template App MySQL Replication
Configuration|Templates|create templates,只要填写下Template name,选择下group即可
z1

4.2 在新建Template App MySQL Replication上创建Applications
z2

4.3 创建items,key那边手动填写mysql.replication
z3

4.4 创建triggers触发器,
z4

下图为该triggers触发器的Expression表达式。当获取的key值不为2时报警
z5

效果:
1. 关闭mysql从库
> stop slave;
z6

2. 开启mysql从库状态
> start slave;
截图省略,太麻烦了!

附录:
附录1:grant replication client on *.* to ‘zabbix’@’localhost’ identified by ‘zabbix’; 网上说replication client已经是只能执行show slave status的最小权限了。

附录2:对于mysql 5.6版本通过/usr/local/mysql/bin/mysql -uzabbix -p”zabbix” -e ‘show slave status\G’|grep -E “Slave_IO_Running|Slave_SQL_Running”|awk ‘{print $2}’|grep -c Yes执行获取mysql主从状态时总是会看到Warning: Using a password on the command line interface can be insecure这个。因为不影响报警,就没去管了

发表评论

邮箱地址不会被公开。 必填项已用*标注