运维之道 | Zabbix监控mysql主从同步状态并设置触发微信告警
一、主机规划
服务器 | IP |
---|---|
zabbix-server | 192.168.1.111 |
mysql-master、zabbix-agent | 192.168.1.115 |
mysql-slave、zabbix-agent | 192.168.1.116 |
二、MySQL数据库主从搭建
1、关闭防火墙(主从库均需关闭
)
[root@master ~]# systemctl stop firewalld
[root@master ~]# setenforce 0
2、删除系统自带mysql配置文件(主从库均需删除
)
[root@master ~]# yum remove -y mariadb
[root@master ~]# rm -rf /etc/my.cnf
[root@master ~]# rm -rf /var/lib/mysql
3、mysql数据库安装部署(主从库均需安装
)
PS:此文章为zabbix结合数据库主从实验,为方便数据库采用yum方法安装,若需通过源码安装,效果一致,可自行测试
运维之道 | Centos7 安装mysql5.6
[root@master ~]# yum install -y mariadb mariadb-server mariadb-devel
[root@master ~]# systemctl start mariadb && systemct enable mariadb
4、配置 master 主库服务器
- 开启数据库binlog功能
[root@master ~]# vim /etc/my.cnf[mysqld]
server_id=0001 ///机器的唯一标识
log_bin=mysql-bin ///bin-log日志名称
datadir=/var/lib/mysql ///bin-log日志存放地点
socket=/var/lib/mysql/mysql.sock ///sock地址
- 重启数据库,并查看binlog日志是否生成
[root@master ~]# systemctl restart mariadb
[root@master ~]# ll /var/lib/mysql
-rw-rw----. 1 mysql mysql 264 2月 17 15:42 mysql-bin.000001
- 创建从库用户并授权(
只需在master库中配置
)
[root@master ~]# mysql -u root -p ##登录mysql
mysql> create user 'villian'@'192.168.1.116' identified by '123456'; ##创建用户
mysql> grant replication slave on *.* to 'villian'@'192.168.1.116'; ##用户授权
mysql> flush privileges; ##刷新权限
5、配置 slave 从库服务器
- 开启数据库binlog功能
[root@slave ~]# vim /etc/my.cnf[mysqld]
server_id=0002 ///机器的唯一标识
log_bin=mysql-bin ///bin-log日志名称
datadir=/var/lib/mysql ///bin-log日志存放地点
socket=/var/lib/mysql/mysql.sock ///sock地址
- 重启数据库,并查看binlog日志是否生成
[root@slave ~]# systemctl restart mariadb
[root@slave ~]# ll /var/lib/mysql
-rw-rw----. 1 mysql mysql 264 2月 17 15:42 mysql-bin.000001
6、建立主从关系
- 打开主库服务器登录mysql (
获取File 和 Position
)
[root@master ~]# mysql -u root -p ## 登录mysql
MariaDB [(none)]> show master status; ## 查看master状态
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000002 | 573 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
- 打开从库服务器登录mysql,配置主从关系
[root@slave ~]# mysql -u root -p ## 登录mysql
mysql> show slave status\G; ## 查看状态 状态未开启时进行如下设置:
mysql> change master to master_host='192.168.1.115'; ## 主节点
mysql> change master to master_port=3306; ## 主节点的端口号
mysql> change master to master_user='villian'; ## 账号
mysql> change master to master_password='123456'; ## 密码
mysql> change master to master_log_file='mysql-bin.000002'; ## show master status 对应上述主库的日志
mysql> change master to master_log_pos=573; ## show master status 对应上述主库的pos
- 在从库服务器开启从节点
mysql> start slave; ## 开启从节点
mysql> show slave status\G; ## 查看状态 下图红色框框必须为开启状态
Slave_IO_Running :负责与主机的io通信
Slave_SQL_Running :负责自己的slave mysql进程
- 测试数据库主从搭建是否成功(
在主库中创建villian库,查看从库是否同步
)
到这,数据库主从同步已经搭建完成啦!!!
三、MySQL端安装zabbix-agent服务
1、安装zabbix-agent服务(主从库均需安装
)
[root@master ~]# rpm -Uvh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
[root@master ~]# yum install zabbix-agent -y
PS:yum安装的时候会出现安装失败,重复执行yum安装直到进度条达到100%即可!!!!
2、重启zabbix-agent服务(主从服务均需重启
)
[root@master ~]# systemctl start zabbix-agent.service
3、修改zabbix-agent端配置(主从服务均需修改
)
[root@master ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.1.111 #zabbix server地址
ServerActive=192.168.1.111 #zabbix server地址
Hostname=Zabbix server #这个是等下在zabbix-web端添加主机时的主机名
4、重启zabbix-agent服务(主从服务均需重启
)
[root@master ~]# systemctl restart zabbix-agent.service
四、Zabbix-agent(数据库slave端
) 端配置
1、在 mysql-slave 端使用命令查看数据库主从状态
[root@slave ~]# mysql -u root -p -e "show slave status\G" | grep "Running" |awk "{print $2}" | grep -c "Yes"
2 ///2表示主从两个YES,主从同步正常
2、在 mysql-slave 端编写脚本
[root@slave ~]# cat /tmp/auto_monitor_mysql.sh
#!/bin/bash
#auto mysql master-slave
mysql -uroot -e 'show slave status\G'|grep -E "Slave_IO_Running|Slave_SQL_Running"| awk {print$2} |grep -c Yes
3、在zabbix_agent.conf配置文件中自建key键值
[root@slave ~]# vim /etc/zabbix/zabbix_agentd.confUserParameter=mysql.replication,sh /tmp/auto_monitor_mysql.sh
///在配置文件最后面添加自建键值、“mysql.replication”:键值 、 “sh /tmp/auto_monitor_mysql.sh”:执行脚本结果
4、重启zabbix-agent服务(一定要重启,否则无法识别到自建键值
)
[root@slave ~]# systemctl restart zabbix-agent
5、zabbix-server端抓取mysql-slave端的键值数据
[root@zabbix ~]# zabbix_get -s 192.168.1.111 -k mysql.replication
2
PS:抓取mysql-slave端的键值,如果返回数值2,则表明IO和SQL线程状态都为yes状态,则表明主从正常
五、Zabbix-server-web端配置
1、创建监控项
2、创建MySQL_master-slave_status图形
3、查看MySQL数据库主从同步图形
六、创建触发器,实现主从同步异常微信报警
1、创建触发器
2、启用微信报警
配置步骤
:运维之道 | Zabbix 使用企业微信发送邮件报警及定制邮件报警内容
3、关闭主库mysql服务
[root@master ~]# systemctl stop mariadb
4、从库获取主从值
[root@zabbix ~]# mysql -e "show slave status\G" | grep "Running" | grep "Yes" | wc -l
1 ///1表示主从同步失败
5、关闭mysql-master后,微信接收告警
6、重启mysql-master,微信接收主从同步恢复告警
[root@master ~]# systemctl start mariadb
运维之道 | Zabbix监控mysql主从同步状态并设置触发微信告警相关推荐
- 监控mysql主从的工具_zabbix利用percona-toolkit工具监控Mysql主从同步状态
一.下载percona-toolkit工具包 percona-toolkit是一组高级命令行工具的集合,可以查看当前服务的摘要信息,磁盘检测,分析慢查询日志,查找重复索引,实现表同步等等. [root ...
- 监控mysql主从同步状态是否异常
监控mysql主从同步状态是否异常 参考文章: (1)监控mysql主从同步状态是否异常 (2)https://www.cnblogs.com/liuyansheng/p/8056268.html 备 ...
- 监控mysql主从复制监控_shell脚本监控mysql主从同步状态
mysql做了主从同步之后,偶尔出现过几次主从同步报错或延迟,由于没有任何监控和报警机制,只有在应用程序报错的时候才能发现数据同步出问题了.所以写了个shell脚本用来检测mysql数据库的同步状态 ...
- 运维派 企业面试题1 监控MySQL主从同步是否异常
Linux运维必会的实战编程笔试题(19题) 企业面试题1:(生产实战案例):监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员.提示:如果没主从同步环境,可以用下面文本放到文件里读 ...
- zabbix监控mysql主从与主从延迟
zabbix监控mysql主从与主从延迟 文章目录 zabbix监控mysql主从与主从延迟 一.Zabbix监控mysql主从 1.部署mysql主从,使用mariadb进行操作 2.将server ...
- zabbix3.0.4监控mysql主从同步
zabbix3.0.4监控mysql主从同步 1.监控mysql主从同步原理: 执行一个命令 mysql -u zabbix -pzabbix -e 'show slave status\G' 我们在 ...
- nagios系列(七)nagios通过自定义脚本的方式监控mysql主从同步
nagios监控mysql主从同步 起因:nagios可能监控到mysql服务的运行情况,但确不能监控mysql的主从复制是否正常:有时候,同步已经停止,但管理人员却不知道. 登陆mysql从服务器, ...
- 运维实操——zabbix监控结合tidb分布式数据库
zabbix监控结合tidb分布式数据库 前言 1.tidb介绍 2.Tidb+Zabbix的简单部署 前言 本文的前提是,zabbix已经和mysql数据库配置好,现在想把mysql替换为分布式数据 ...
- 运维实操——zabbix监控结合睿象云报警平台及API调用
zabbix监控结合睿象云报警平台及API调用 1.zabbix监控结合睿象云报警平台 2.API调用 1.zabbix监控结合睿象云报警平台 由于我们不能时时刻刻盯着zabbix监控,所以呢,我们想 ...
最新文章
- php扩展 静态库,编译PHP扩展的方法
- 数学建模公选课第二节常微分方程2020.4.10-.12补(钉钉)
- 《微软飞行模拟》用AI还原15亿建筑,出现王宫变写字楼bug
- RTMP之后,SRT与QUIC
- 如何生成.p12文件
- 如何面试一位前端工程师
- python 生成空白矩阵_3个用于数据科学的顶级Python库
- 最新基于高德地图的android进阶开发(2)小试牛刀
- rdkitpython | 多个化合物中挑选最大片段
- 高中数学建模优秀论文_高中数学建模优秀论文
- ABAQUS地应力平衡方法详解
- 计算机木材染色 配色技术的应用技术,计算机配色技术在木材连缸染色中的应用研究.pdf...
- vue+ele 使用及demo
- 自动驾驶扎堆“重感知”路线:毫末智行如何从独行到领航?
- 在服务器上下载安装anaconda
- 深入 Parcel架构与流程
- 彩屏显示入门:我要五彩斑斓的黑 | 用Arduino玩转ESP32与掌控板系列
- 【区块链 | Solidity】以太坊Solidity如何实现海量空投代币?
- MinGW编译log4cpp
- axios 获取本地json文件