一、背景
Zabbix监控随着监控项的增多,数据读写遇到瓶颈,web页面加载慢。
二、解决方案
- 思路
- 通过proxySQL 实现读写分离。
- 基础环境
| 角色 | IP | server-id | 备注 |
|---|---|---|---|
| mysql master | 172.16.80.206 | 206 | |
| mysql slave | 172.16.80.190 | 190 | |
| proxysql | 172.16.80.206 |
- 架构
-
改造前

-
改造后

-
三、配置实现
1. 配置主从复制
2. 读写分离配置
2.1 安装ProxySQL
- 默认配置文件内容
- 启动proxysql服务,查看状态

- 在mysql-master 数据库节点执行:(在主节点执行)
2.2配置proxysql
- 查看内置库
- mysql_servers 表配置读写组,对应的后端mysql server:

- 配置mysql_replication_hostgroups 表

- mysql_users表定义了在连接到MySQL服务器时使用的用户名和密码,以及该用户在ProxySQL中的权限和其他属性。

- proxysql 节点上增加监控用户

- 配置读写分离规则


- 更新配置到RunTime
- 将配置保存到磁盘,即/var/lib/proxysql/proxysql.db 文件中。
3.读写分离验证
3.1 创建测试数据库
- 两台数据库分别创建测试数据库test 、 测试表person_info;【test库不同步】
- 可写mysql中插入如下记录:
- 只读mysql插入如下记录:
3.2 测试读写分离
- 启动proxysql 数据端口
- 只读测试
查询2次,只能查询到只读库上的1条数据,id为10. (主库2条数据id为1和2)

- 写入测试
为了验证已经写入到可写库里,需要退出proxysql。 在可写库服务器上mysql查询。如图示。
完成顺利写入。
主库写入、从库只读实现了读写分离。
proxysql 管理端口: mysql -uadmin -padmin -h 127.0.0.1 -P6032
proxysql业务端口: mysql -uproxyAdmin -pproxysql -h 127.0.0.1 -P6033
4. zabbix server 配置
4.1 备份相关文件
- 备份/etc/zabbix/zabbix_server.conf
- 备份配置文件 : /etc/zabbix/web/zabbix.conf.php
4.2 修改配置文件
- 配置zabbix_server.conf
/etc/zabbix/zabbix_server.conf
- zabbix web配置
/etc/zabbix/web/zabbix.conf.php
- 重启zabbix相关服务
- 检查zabbix web端状态, db写入情况。
所有评论(0)