keepalived+haproxy 安装 PXC高可用
来源:互联网 发布:淘宝卖什么容易赚钱 编辑:程序博客网 时间:2024/06/07 02:55
pxc节点:10.194.41.231 10.194.41.228 10.194.41.227ha: 10.194.41.220 主 10.194.41.221 备 vip:10.194.41.199一.安装keepalived1.yum install keepalived2.修改配置主节点4上vi /etc/keepalived/keepalived.confvrrp_script chk_haproxy { script "killall -0 haproxy" # verify the pid existance interval 2 # check every 2 seconds weight -2 # add 2 points of prio if OK }vrrp_instance PXC_3306 { interface eth0 # interface to monitor state MASTER virtual_router_id 51 # Assign one ID for this route priority 101 # 101 on master, 100 on backup nopreempt debug virtual_ipaddress { 10.194.41.199/24 dev eth0 label eth0:0 }track_script { chk_haproxy } notify_master /etc/keepalived/scripts/start_haproxy.sh #表示当切换到master状态时,要执行的脚本 notify_fault /etc/keepalived/scripts/stop_keepalived.sh #故障时执行的脚本 notify_stop /etc/keepalived/scripts/stop_haproxy.sh #keepalived 停止运行前运行notify_stop指定的脚本 } 注:备节点5上/etc/keepalived/keepalived.conf,做相同配置,只修改 state BACKUP priority 90 3.各个执行脚本3.1 当切换到master状态时,要执行的脚本 vi /etc/keepalived/scripts/start_haproxy.sh#!/bin/bash sleep 5 get=`ip addr |grep 10.194.41.199 |wc -l` echo $get >> /etc/keepalived/scripts/start_ha.log if [ $get -eq 1 ] then echo "`date +%c` success to get vip" >> /etc/keepalived/scripts/start_ha.log /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg #根据实际haproxy修改 else echo "`date +%c` can not get vip" >> /etc/keepalived/scripts/start_ha.log fi3.2 故障时执行的脚本vi /etc/keepalived/scripts/stop_keepalived.sh #!/bin/bash pid=`pidof keepalived` if [ $pid == "" ] then echo "`date +%c` no keepalived process id" >> /etc/keepalived/scripts/stop_keep.log else echo "`date +%c` will stop keepalived " >> /etc/keepalived/scripts/stop_keep.log /etc/init.d/keepalived stop fi 3.3 keepalived 停止运行前运行notify_stop指定的脚本vi /etc/keepalived/scripts/stop_haproxy.sh#!/bin/bashpid=`pidof haproxy`echo "`date +%c` stop haproxy" >> /etc/keepalived/scripts/stop_ha.logkill -9 $pid二、安装haproxywget http://www.haproxy.org/download/1.4/src/haproxy-1.4.27.tar.gztar xvfz haproxy-1.4.27.tar.gz -C /tmp/cd /tmp/haproxy-1.4.27 make TARGET=linux26 PREFIX=/usr/local/haproxy make install PREFIX=/usr/local/haproxycd /usr/local/haproxy/ mkdir conf logs vim conf/haproxy.cfgglobal maxconn 51200 #uid 99 #gid 99 chroot /usr/local/haproxy daemon #quiet nbproc 1 pidfile /usr/local/haproxy/logs/haproxy.piddefaults mode tcp option redispatch option abortonclose timeout connect 5000s timeout client 50000s timeout server 50000s log 127.0.0.1 local0 balance roundrobinlisten proxy bind 10.194.41.199:3307 mode tcp option httpchk server db1 10.194.41.231:3306 weight 1 check port 9200 inter 12000 rise 3 fall 3 server db2 10.194.41.228:3306 weight 1 check port 9200 inter 12000 rise 3 fall 3 server db2 10.194.41.227:3306 weight 1 check port 9200 inter 12000 rise 3 fall 3listen haproxy_stats mode http bind 10.194.41.220:8888 option httplog stats refresh 5s stats uri /status stats realm Haproxy Manager stats auth admin:evis123 注: haproxy安装和配置两节点4,5一样4和5的内核参数修改/etc/sysctl.conf增加net.ipv4.ip_nonlocal_bind=1net.ipv4.ip_forward = 1sysctl -p 生效三、数据库节点 安装mysql健康状态检查脚本,用于haproxy检查, 每个节点都安装 1)脚本拷贝# cp /usr/local/mysql/bin/clustercheck /usr/bin/# cp /usr/local/mysql/xinetd.d/mysqlchk /etc/xinetd.d/# cp /usr/local/mysql/bin/mysql /usr/bin/ ps:clustercheck和脚本都是默认值没有修改注:如不使用clustercheck中默认用户名和密码,将需要修改clustercheck脚本,MYSQL_USERNAME和MYSQL_PASSWORD值clustercheckuserclustercheckpassword!CREATE USER 'clustercheckuser'@'%' identified BY 'clustercheckpassword!'; GRANT ALL ON *.* TO 'clustercheckuser'@'%'; flush privileges;2)更改/etc/services添加mysqlchk的服务端口号:# echo 'mysqlchk 9200/tcp # mysqlchk' >> /etc/services3)安装xinetd服务,通过守护进程来管理mysql健康状态检查脚本# yum -y install xinetd# /etc/init.d/xinetd restartStopping xinetd: [FAILED]Starting xinetd: [ OK ]# chkconfig --level 2345 xinetd on# chkconfig --list |grep xinetdxinetd 0:off 1:off 2:on 3:on 4:on 5:on 6:off 安装完成后,将xinetd服务加入开机自启动: systemctl enable xinetd.service将telnet服务加入开机自启动: systemctl enable telnet.socket最后,启动以上两个服务即可: systemctl start telnet.socket systemctl start xinetd(或service xinetd start) 测试检测脚本:# clustercheckHTTP/1.1 200 OKContent-Type: text/plainConnection: closeContent-Length: 40Percona XtraDB Cluster Node is synced.注:ps:要保证状态为200,否则检测不通过,可能是mysql服务不正常,或者环境不对致使haproxy无法使用mysqlhaproxy如何侦测 MySQL Server 是否存活,靠着就是 9200 port,透过 Http check 方式,让 HAProxy 知道 PXC 状态在mysql集群的其他节点执行上面操作,保证各个节点返回状态为200,如下: curl -I 10.194.41.231:9200 curl -I 10.194.41.228:9200 curl -I 10.194.41.227:9200四、最后启动测试1.启动keepalived /etc/init.d/keepalived start 1;systemctl daemon-reload 重新加载2:systemctl enable keepalived.service 设置开机自动启动3:systemctl disable keepalived.service 取消开机自动启动4:systemctl start keepalived.service 启动5:systemctl stop keepalived.service停止 2.启动haproxy /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg http://10.194.41.220:8888/status
阅读全文
0 0
- keepalived+haproxy 安装 PXC高可用
- 构建负载均衡和高可用的PXC环境(HAProxy+Keepalived+PXC)问题补充
- haproxy+keepalived实现高可用
- Haproxy+keepalived 高可用负载
- haproxy+keepalived构建高可用负载均衡
- haproxy+keepalived实现高可用负载均衡
- haproxy+keepalived实现高可用负载均衡
- haproxy+keepalived实现高可用负载均衡
- haproxy+keepalived实现高可用负载均衡
- haproxy+keepalived实现高可用负载均衡
- haproxy+keepalived实现高可用负载均衡
- HaProxy+keepalived+mycat集群高可用配置
- haproxy+keepalived实现高可用负载均衡
- haproxy+keepalived实现高可用负载均衡
- keepalived+haproxy 高可用均衡负载
- Keepalived+Haproxy实现高可用负载均衡
- HaProxy+Keepalived+Mycat高可用群集配置
- Haproxy+keepalived实现高可用负载均衡
- WINCE4.2+sqlce1.0程序移植到WINCE5.0中的过程记录
- Ajax请求session超时解决办法
- 理解COM和DLL技术
- 一次简单的代码封装经历
- leetcode 14. Longest Common Prefix
- keepalived+haproxy 安装 PXC高可用
- Vue之使用脚手架搭建Vue工程
- centos6.3下安装loadrunner 11的负载端LoadGenerator实战
- centos7service命令不可用
- 联发科编程大赛_第二题情报破译
- 移动运维技术之安全管理模型
- Centos 7.3_1611使用chrony做时间同步
- VO,DTO,DO,PO
- 浅谈IO的多路复用技术之一(select和epoll实质)