天天看点

快速部署mysql主从,zabbix监控检查主从是否正常

作者:街头角落里
快速部署mysql主从,zabbix监控检查主从是否正常
快速部署mysql主从,zabbix监控检查主从是否正常

推荐

Mycat2版部署mysql读写分离

Mycat1.6版部署mysql读写分离

CentOS 7.9服务器,一分钟部署完mysql8.0

Ubuntu22部署MySQL8.0二进制安装

CentOS 7.9,二分钟搭建好MySQL8.0-PXC集群(实操不说原理)

一/配置my.cny

安装:略(看上面的)

主库

[root@192_168_1_7 ~]# cat /etc/my.cnf
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
port = 3306
log-bin=mysql-bin
server-id=7

#binglog日誌格式
binlog_format="ROW"

#binlog过期清理时间
expire_logs_days=7
#binlog每个日志文件大小
max_binlog_size=100m           

从库

[root@192_168_1_8 ~]# cat /etc/my.cnf
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
port = 3306
log-bin=mysql-bin
server-id=8

#binglog日誌格式
binlog_format="ROW"

#binlog过期清理时间
expire_logs_days=7
#binlog每个日志文件大小
max_binlog_size=100m           

二/新建主从用户

主:master操作:建立test帐号,密码12345678,授权从服务器192.168.1.8 ip登陆

mysql> grant super,replication slave on *.* to 'test'@'192.168.1.8' identified by '12345678';
mysql> flush privileges;           

授权完成后,在从服务器上登陆测试

mysql -u test -h192.168.1.7 -p12345678           

三/主mysql加上锁

给主mysql加上锁,防止有新的数据写入

mysql> flush tables with read lock;           

查看二进制日志id,配置从库需要使用到

mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000011 | 668 | | |
+------------------+----------+--------------+------------------+
mysql> exit           

四/从库配置

暂停从库复制线程:
mysql> slave stop;

配置主从关系:
mysql> change master to
    -> master_user='test',		--主库复制的帐号
    -> master_password='12345678',		--密码
    -> master_host='192.168.1.7',		--主IP
    -> master_port=3306,			--端口
    -> master_log_file='mysql-bin.000011',	--主二进制日志id
    -> master_log_pos=668;			--主二进制日志id号

启动从复制线程
mysql> start slave;           

五/查看状态

从库
mysql> show slave status\G
........
Master_Host: 192.168.1.7
Master_User: test
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000011
Read_Master_Log_Pos: 668
Relay_Log_File: mysql-relay-bin.006592
Relay_Log_Pos: 43991963
Relay_Master_Log_File: mysql-bin.000011
Slave_IO_Running: Yes
Slave_SQL_Running: Yes --两YES表示正常
Replicate_Do_DB:
........

主库解锁mysql:
mysql> unlock tables;

测试一下数据库是否同步
在主库上创建库、表和插入表数据后,在从库是否有相同数据           

六/zabbix监控主从是否正常

1/编写脚本

[root@192_168_1_8 zabbix_agentd.d]# ll
总用量 8
-rwxr-xr-x 1 root root  202 8月  10 2020 slave.sh   #要给权限
-rw-r--r-- 1 root root 2484 8月  10 2020 userparameter_mysql.conf
[root@192_168_5_88 zabbix_agentd.d]# cat slave.sh 
#!/bin/bash
case $1 in
     mysql_slave)
        /usr/local/mysql/bin/mysql -uzabbix -e 'show slave status\G' |grep -E "Slave_IO_Running|Slave_SQL_Running"|awk '{print $2}' |grep -c Yes
        ;;
esac
[root@192_168_1_8 zabbix_agentd.d]# cat userparameter_mysql.conf   #最后面添加就行
UserParameter=mysql.slave[*],sudo /etc/zabbix/zabbix_agentd.d/slave.sh $1           

2/设置主库新建zabbix用户权限

快速部署mysql主从,zabbix监控检查主从是否正常
快速部署mysql主从,zabbix监控检查主从是否正常

2/在zabbix服务器测试是否正常收到数据

[root@localhost ~]# zabbix_get -s 192.168.1.8 -k mysql.slave[mysql_slave]
2
[root@localhost ~]#           

3/添加zabbix监控

快速部署mysql主从,zabbix监控检查主从是否正常
快速部署mysql主从,zabbix监控检查主从是否正常

就这样了,很简单,两分钟就搞定了。

继续阅读