赞
踩
zabbix监控MySQL主从状态和延迟
环境说明:
主机名 | IP | 服务名 |
---|---|---|
master | 192.168.188.128 | 主库 |
zabbix-server | 192.168.188.130 | zabbix服务端 |
zabbix-agent | 192.168.188.131 | zabbix客户端和从库 |
主从配置参考mysql主从复制,有略微不同的是参考文章是源码安装,现在做的是yum安装,配置会有略微不同,下面会进行说明
//主库配置
[root@master ~]# vim /etc/my.cnf.d/mariadb-server.cnf
log-bin = mysql_bin
server-id = 10
//从库配置
[root@zabbix-agent ~]# vim /etc/my.cnf.d/mariadb-server.cnf
server-id = 20
relay-log = myrelay
配置脚本
//创建脚本目录 [root@zabbix-agent ~]# mkdir /scripts [root@zabbix-agent ~]# cd /scripts [root@zabbix-agent scripts]# vim mysqlms.sh #!/bin/bash count=$(mysql -uroot -p123 -e "show slave status\G" |grep -v grep |grep -c 'Yes') if [ $count -ne 2 ];then echo '1' else echo '0' fi [root@zabbix-agent scripts]# chmod +x mysqlms.sh [root@zabbix-agent scripts]# ./mysqlms.sh 0 //在agent端编辑配置文件 [root@zabbix-agent scripts]# vim /usr/local/etc/zabbix_agentd.conf UnsafeUserParameters=1 UserParameter=check_mysql[*],/bin/bash /scripts/mysqlms.sh //重启服务 [root@zabbix-agent ~]# pkill zabbix_agentd [root@zabbix-agent ~]# zabbix_agentd [root@zabbix-agent ~]# ss -antl State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 128 0.0.0.0:10050 0.0.0.0:* LISTEN 0 80 0.0.0.0:3306 0.0.0.0:* LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 128 [::]:22 [::]:* //在服务端去测试 [root@zabbix-server ~]# zabbix_get -s 192.168.188.131 -k check_mysql 0 //手动添加动作 [root@master ~]# systemctl start firewalld.service //主库 [root@zabbix-agent scripts]# mysql -uroot -p123 //从库 MariaDB [(none)]> stop slave; Query OK, 0 rows affected (0.001 sec) MariaDB [(none)]> start slave; Query OK, 0 rows affected (0.001 sec) [root@zabbix-server ~]# zabbix_get -s 192.168.188.131 -k check_mysql 1 //zabbix服务端
查看监控数据
//关闭主从
[root@zabbix-agent ~]# mysql -uroot -p123 -e "stop slave;"
//在被监控端,也就是从库,修改配置文件 [root@zabbix-agent ~]# vim /usr/local/etc/zabbix_agentd.conf UserParameter=check_mysqlyc,/bin/bash /scripts/mysqlyc.sh //重启服务生效配置 [root@zabbix-agent ~]# pkill zabbix_agentd [root@zabbix-agent ~]# zabbix_agentd //编写脚本 [root@zabbix-agent ~]# vim /scripts/mysqlyc.sh count=`mysql -uroot -p123 -e "show slave status\G" 2> /dev/null |awk '/Seconds_Behind_Master/ {print $2}' ` if [ $count -ne 0 ];then echo '1' else echo '0' fi [root@zabbix-agent ~]# chmod +x /scripts/mysqlyc.sh //去服务端检查key是否可用 [root@zabbix-server ~]# zabbix_get -s 192.168.188.131 -k check_mysqlyc 0
查看监控数据
等你延迟200以上就报警了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。