Mysql中间件代理 Atlas

时间:2022-01-14 22:39:03

本文接上文介绍atlas的安装配置,以及借助keepalive软件实现altasha,避免由于atlas故障,导致数据库服务中断的情况出现:

 

一:环境介绍

Atlas 主:192.168.1.12/24

Atlas 从:192.168.1.81/24

Atlas vip:  192.168.1.230/24

 

Atlas write:

master192.168.1.225/24

Slave1192.168.1.226/24

Slave2192.168.1.227/24

管理节点:192.168.1.12/24

Mha vip:  192.168.1.231/24

 

Atlas  read:

Slave2192.168.1.227/24

Slave3192.168.1.228/24 

 

二:安装atlas12服务器及81服务器执行同样的操作

# yum -y install openssl openssl-devel
# wget https://github.com/Qihoo360/Atlas/releases/download/2.1/Atlas-2.1.el6.x86_64.rpm
# rpm -ivh Atlas-2.1.el6.x86_64.rpm
# cd /usr/local/mysql-proxy/conf/
 
# /usr/local/mysql-proxy/bin/encrypt 123456
/iZxz+0GRoA=

# grep -v '^#' /usr/local/mysql-proxy/conf/test.cnf  |grep -v '^$'

[mysql-proxy]admin-username = adminadmin-password = adminproxy-backend-addresses = 192.168.1.231:3306proxy-read-only-backend-addresses = 192.168.1.227:3306,192.168.1.228:3306pwds = root:/iZxz+0GRoA= daemon = truekeepalive = trueevent-threads = 8log-level = messagelog-path = /usr/local/mysql-proxy/logproxy-address = 0.0.0.0:1234admin-address = 0.0.0.0:2345

# /usr/local/mysql-proxy/bin/mysql-proxyd test start

OK: MySQL-Proxy of test is started

# netstat -ntpl |grep mysql-proxy

tcp        0      0 0.0.0.0:2345                0.0.0.0:*                   LISTEN      29643/mysql-proxy   

tcp        0      0 0.0.0.0:1234                0.0.0.0:*                   LISTEN      29643/mysql-proxy   

# tail -f /usr/local/mysql-proxy/log/test.log 

2014-10-29 11:12:11: (message) mysql-proxy 0.8.2 started - instance: test2014-10-29 11:12:11: (message) proxy listening on port 0.0.0.0:12342014-10-29 11:12:11: (message) added read/write backend: 192.168.1.231:33062014-10-29 11:12:11: (message) added read-only backend: 192.168.1.227:33062014-10-29 11:12:11: (message) chassis-unix-daemon.c:138: [angel] we try to keep PID=29643 alive2014-10-29 11:12:11: (message) added read-only backend: 192.168.1.228:33062014-10-29 11:12:11: (message) chassis-event-thread.c:235: starting 8 threads

# /usr/local/mysql/bin/mysql -h 192.168.1.12 -P 1234 -u root -p123456

Mysql中间件代理 Atlas

# /usr/local/mysql/bin/mysql -h 192.168.1.12 -P 2345 -uadmin -padmin

Mysql中间件代理 Atlas

三:安装keepalived

此处以12服务器为例,81服务器执行同样的操作

# cd /usr/local/src/# wget http://www.keepalived.org/software/keepalived-1.2.13.tar.gz# tar -zxvpf keepalived-1.2.13.tar.gz # cd keepalived-1.2.13# ./configure --prefix=/usr/local/keepalived  && make && make install

四:配置12服务器keepalive

1keepalive主配置文件

# cat /usr/local/keepalived/etc/keepalived/keepalived.conf 

! Configuration File for keepalivedglobal_defs { router_id  LVS_DEVEL}vrrp_script Monitor_Atlas { script "/usr/local/scripts/monitor_atlas.sh" interval 2  weight 2  }vrrp_instance VI_1{  state MASTER  interface eth0 virtual_router_id 51  mcast_src_ip 192.168.1.12 priority 100   advert_int 1 authentication { auth_type PASS auth_pass password_123} track_script { Monitor_Atlas} virtual_ipaddress { 192.168.1.230 }}

2:监控atlas脚本

# cat /usr/local/scripts/monitor_atlas.sh

#!/bin/bashif  [ $(ps -ef |grep 'mysql-proxy' |grep -v 'grep' |wc -l) -eq "0" ];then    /usr/local/mysql-proxy/bin/mysql-proxyd test start    sleep 5    if [ $(ps -ef |grep 'mysql-proxy' |grep -v 'grep' |wc -l) -eq "0"  ];then        killall -9 keepalived        service network restart    fifi

# chmod +x /usr/local/scripts/monitor_atlas.sh


五:配置81服务器keepalive

1:keepalive主配置文件

# cat /usr/local/keepalived/etc/keepalived/keepalived.conf 

! Configuration File for keepalivedglobal_defs { router_id  LVS_DEVEL}vrrp_script Monitor_Atlas { script "/usr/local/scripts/monitor_atlas.sh" interval 2  weight 2  }vrrp_instance VI_1{  state BACKUP interface eth0 virtual_router_id 51  mcast_src_ip 192.168.1.81 priority 90   advert_int 1 authentication { auth_type PASS auth_pass password_123} track_script { Monitor_Atlas} virtual_ipaddress { 192.168.1.230 }}

2:监控atlas脚本

# cat /usr/local/scripts/monitor_atlas.sh

#!/bin/bashif  [ $(ps -ef |grep 'mysql-proxy' |grep -v 'grep' |wc -l) -eq "0" ];then    /usr/local/mysql-proxy/bin/mysql-proxyd test start    sleep 5    if [ $(ps -ef |grep 'mysql-proxy' |grep -v 'grep' |wc -l) -eq "0"  ];then        killall -9 keepalived        service network restart    fifi

# chmod +x /usr/local/scripts/monitor_atlas.sh


六:启动keepalive服务及测试

1:12服务器

# /usr/local/keepalived/sbin/keepalived -D -f /usr/local/keepalived/etc/keepalived/keepalived.conf 

# tail -f /var/log/messages

Mysql中间件代理 Atlas

Mysql中间件代理 Atlas

2: 81服务器

# /usr/local/keepalived/sbin/keepalived -D -f /usr/local/keepalived/etc/keepalived/keepalived.conf 

# tail -f /var/log/messages

Mysql中间件代理 Atlas

3:连接atlas测试

# /usr/local/mysql/bin/mysql -h 192.168.1.230 -P 1234 -uroot -p123456

mysql> select user,host,password from mysql.user;

Mysql中间件代理 Atlas

# /usr/local/mysql/bin/mysql -h 192.168.1.230 -P 2345 -uadmin -padmin

mysql>  SELECT * FROM backends;

Mysql中间件代理 Atlas

4:故障测试

12服务器上关闭keepalive服务

Mysql中间件代理 Atlas

81服务器的keepalive会自动接管vip服务

# tail -f /var/log/messages

Mysql中间件代理 Atlas

本文出自 “斩月” 博客,谢绝转载!