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

时间:2021-05-20 22:43:04

问题背景

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 status\G" 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,我们一般查看主从状态也就是查看那两个running的值是否都是“Yes”。

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

第二部分zabbix展示

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

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

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

添加好之后,保存;

5. 添加图形Graphs

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

保存一下;

6.添加触发器Triggers

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

保存一下;

至此,第二部分完成。

测试

先停止:

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

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

查看zabbix图形

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

手机微信收到告警信息

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

结束.