root@ubuntu1804:~# zabbix_get -s 192.168.1.16 -p 10050 -k MySQL.Key-read-requests
4
root@ubuntu1804:~# zabbix_get -s 192.168.1.16 -p 10050 -k MySQL.Qcache-free-memory
1031336
5)web端查看成功添加被监控的mysql从服务
6)在mysql从服务端查看到新生成的localhost-mysql_cacti_stats.txt文件是有监控服务端创建的,且属主和属组都为zabbix
[root@localhost ~]# ll /tmp/localhost-mysql_cacti_stats.txt
-rw-rw-r-- 1 zabbix zabbix 1235 Jul 16 01:00 /tmp/localhost-mysql_cacti_stats.txt
6.创建自定义mysql主从监控模板、监控项
在mysql-slave端:
1)编写自定义监控脚本
[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.d/mysql_monitor.sh
#!/bin/bash
master_slave_check(){
num1=`mysql -uroot -e "show slave status\G" | grep "Slave_IO_Running" | awk -F":" '{print $2}'`
num2=`mysql -uroot -e "show slave status\G" | grep "Slave_SQL_Running" | awk -F":" '{print $2}'`
if test $num1 == "Yes" && test $num2 == "Yes";then
echo 60
else
echo 120
fi
}
mysql_sync_delay(){
num=`mysql -uroot -e "show slave status\G" | grep "Seconds_Behind_Master" | awk -F":" '{print $2}'`
echo $num
}
menu(){
case $1 in
master_slave_check)
master_slave_check
;;
mysql_sync_delay)
mysql_sync_delay
;;
esac
}
menu $1
2)编写自定义监控项的配置文件,含有监控项的键值
[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.d/mysql-master-slave.conf
UserParameter=mysql_test[*],/etc/zabbix/zabbix_agentd.d/mysql_monitor.sh $1
3)脚本加上执行权限,避免在monitor-server端无权限获取key的值
[root@localhost ~]# chmod a+x mysql_monitor.sh
4)重新启动本机的agent服务
[root@localhost ~]# systemctl restart zabbix-agent
在zabbix-proxy服务端测试,是否能获取被监控端mysql-slave服务的key的值
root@ubuntu1804:~# zabbix_get -s 192.168.1.16 -p 10050 -k "mysql_test[mysql_sync_delay]"
0
root@ubuntu1804:~# zabbix_get -s 192.168.1.16 -p 10050 -k "mysql_test[master_slave_check]"
60
在zabbix-server端先执行测试,是否能获取被监控端的key的值
1)利用zabbix-get命令测试
root@ubuntu1804:~# zabbix_get -s 192.168.1.16 -p 10050 -k "mysql_test[mysql_sync_delay]"
0
root@ubuntu1804:~# zabbix_get -s 192.168.1.16 -p 10050 -k "mysql_test[master_slave_check]"
60
2)当将mysql-slave服务停止,可以看到显示的数值为120,证明mysql-slave服务已断开
root@ubuntu1804:~# zabbix_get -s 192.168.1.16 -p 10050 -k "mysql_test[master_slave_check]"
120
3)在监控web端进行模板创建
4)给此模板创建一个应用集,是用来给监控项分类
5)在应用集中添加监控项
6)添加触发的动作,当数值大于65证明连接失败
7)给指定监控项创建图形显示
8)将自定义创建好的模板添加到需要监控的mysql-slave主机
9)再查看mysql-slave主机图形,红色为警戒线,绿色为正常