zabbix3.2监控mysql主从(复制)状态

问题背景

MySQL主从架构最常见不过了,在生产环境下,主从关系的状态的重要性不言而喻,这里小记一下通过zabbix监控主从状态,并用微信告警测试。

测试环境

软件 MySQL-master MySQL-slave Zabbix
版本 5.6 5.6 3.2

操作步骤

两部分: 一、获取监控值  

     二、用zabbix展现

第一部分获取监控值

1. 编辑mysql-slave主机上的zabbix-agent配置文件

 [root@mysql-slave ~]# vim /etc/zabbix/zabbix_agentd.conf 

……
### Option: UserParameter # User
-defined parameter to monitor. There can be several user-defined parameters. # Format: UserParameter=<key>,<shell command> # See 'zabbix_agentd' directory for examples. # # Mandatory: no # Default: # UserParameter= UserParameter=mysql_repl_check,mysql -uroot -p123456789 -e "show slave statusG" 2>/dev/null | grep -E 'Slave_IO_Running: Yes|Slave_SQL_Running: Yes' | grep -c Yes
### 添加上面这一行 ###
……

说明

①定义一个key:这里我定义成了“mysql_repl_check”,这个key后面会在zabbix中添加item时用到,请留意;

②添加一个可以获取监控值的shell命令语句:这里就是上面的 “mysql -uroot -p ...”一整串长的命令,应该比较好理解;

注意点

①key和shell语句之间有一个逗号“,”;

②mysql有些版本监测到你在命令行上直接用明文添加密码时,会产生一个“Warning: Using a password on the command line interface can be insecure.”,这个要关闭,不然后期zbbix server获取相应的监控值时会报type错误,所以这里在命令后面紧跟了一个重定向“2>/dev/null”,其效果是不打印上面的警告信息;

2. 重启zabbix-agent

在mysql-slave上重启zabbix客户端: systemctl restart zabbix-agent 

3. 在zabbix server上测试get监控值

[root@zabbix-server ~]# zabbix_get -s 192.168.1.12 -k mysql_repl_check
2

结果返回一个监控值:2,我们一般查看主从状态也就是查看那两个running的值是否都是“Yes”。

至此,监控值获取已经完成。

第二部分zabbix展示

4. 新建item(名字为我们上面定义的“mysql_repl_check”)

添加好之后,保存;

5. 添加图形Graphs

保存一下;

6.添加触发器Triggers

保存一下;

 至此,第二部分完成。

测试

先停止:

 mysql -uroot -p123456789 -e "stop slave;show slave status G;" 

间隔一会儿,再次启动
 mysql -uroot -p123456789 -e "start slave;show slave status G;" 

查看zabbix图形

手机微信收到告警信息

结束.

原文地址:https://www.cnblogs.com/ding2016/p/10279173.html