一、主机规划

服务器 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主从同步状态并设置触发微信告警相关推荐

  1. 监控mysql主从的工具_zabbix利用percona-toolkit工具监控Mysql主从同步状态

    一.下载percona-toolkit工具包 percona-toolkit是一组高级命令行工具的集合,可以查看当前服务的摘要信息,磁盘检测,分析慢查询日志,查找重复索引,实现表同步等等. [root ...

  2. 监控mysql主从同步状态是否异常

    监控mysql主从同步状态是否异常 参考文章: (1)监控mysql主从同步状态是否异常 (2)https://www.cnblogs.com/liuyansheng/p/8056268.html 备 ...

  3. 监控mysql主从复制监控_shell脚本监控mysql主从同步状态

    mysql做了主从同步之后,偶尔出现过几次主从同步报错或延迟,由于没有任何监控和报警机制,只有在应用程序报错的时候才能发现数据同步出问题了.所以写了个shell脚本用来检测mysql数据库的同步状态 ...

  4. 运维派 企业面试题1 监控MySQL主从同步是否异常

    Linux运维必会的实战编程笔试题(19题) 企业面试题1:(生产实战案例):监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员.提示:如果没主从同步环境,可以用下面文本放到文件里读 ...

  5. zabbix监控mysql主从与主从延迟

    zabbix监控mysql主从与主从延迟 文章目录 zabbix监控mysql主从与主从延迟 一.Zabbix监控mysql主从 1.部署mysql主从,使用mariadb进行操作 2.将server ...

  6. zabbix3.0.4监控mysql主从同步

    zabbix3.0.4监控mysql主从同步 1.监控mysql主从同步原理: 执行一个命令 mysql -u zabbix -pzabbix -e 'show slave status\G' 我们在 ...

  7. nagios系列(七)nagios通过自定义脚本的方式监控mysql主从同步

    nagios监控mysql主从同步 起因:nagios可能监控到mysql服务的运行情况,但确不能监控mysql的主从复制是否正常:有时候,同步已经停止,但管理人员却不知道. 登陆mysql从服务器, ...

  8. 运维实操——zabbix监控结合tidb分布式数据库

    zabbix监控结合tidb分布式数据库 前言 1.tidb介绍 2.Tidb+Zabbix的简单部署 前言 本文的前提是,zabbix已经和mysql数据库配置好,现在想把mysql替换为分布式数据 ...

  9. 运维实操——zabbix监控结合睿象云报警平台及API调用

    zabbix监控结合睿象云报警平台及API调用 1.zabbix监控结合睿象云报警平台 2.API调用 1.zabbix监控结合睿象云报警平台 由于我们不能时时刻刻盯着zabbix监控,所以呢,我们想 ...

最新文章

  1. php扩展 静态库,编译PHP扩展的方法
  2. 数学建模公选课第二节常微分方程2020.4.10-.12补(钉钉)
  3. 《微软飞行模拟》用AI还原15亿建筑,出现王宫变写字楼bug
  4. RTMP之后,SRT与QUIC
  5. 如何生成.p12文件
  6. 如何面试一位前端工程师
  7. python 生成空白矩阵_3个用于数据科学的顶级Python库
  8. 最新基于高德地图的android进阶开发(2)小试牛刀
  9. rdkitpython | 多个化合物中挑选最大片段
  10. 高中数学建模优秀论文_高中数学建模优秀论文
  11. ABAQUS地应力平衡方法详解
  12. 计算机木材染色 配色技术的应用技术,计算机配色技术在木材连缸染色中的应用研究.pdf...
  13. vue+ele 使用及demo
  14. 自动驾驶扎堆“重感知”路线:毫末智行如何从独行到领航?
  15. 在服务器上下载安装anaconda
  16. 深入 Parcel架构与流程
  17. 彩屏显示入门:我要五彩斑斓的黑 | 用Arduino玩转ESP32与掌控板系列
  18. 【区块链 | Solidity】以太坊Solidity如何实现海量空投代币?
  19. MinGW编译log4cpp
  20. axios 获取本地json文件

热门文章

  1. 红色警戒2切换桌面后黑屏
  2. Python笔记——类定义
  3. JSTSP2016 Fully Deep Blind Image Quality Predictor
  4. C语言求解华容道游戏最少步数及移动过程
  5. Windows7下启用IIS配置ASP运行环境的详细方法----亲测有效
  6. 在线智能防雷系统综合应用方案
  7. Wannacry勒索蠕虫对企业安全有哪些影响?企业安全又将如何捍卫?看安普诺CEO怎么说
  8. 碎片时间,用电纸书取代你的手机
  9. 低代码加持 你心心念念的客户体验 妥了
  10. Smart Card