Haproxy+keepalived实现sphinx高可用负载均衡

默北 Sphinx310,729字数 2696阅读8分59秒阅读模式

Haproxy+keepalived实现sphinx高可用负载均衡
环境如下:
【node3】
haproxy:192.168.1.189
【node4】
haproxy:192.168.1.103
vip:192.168.1.222/192.168.1.223

# apt-get install ipvsadm
# apt-get install linux-headers-$(uname -r)
# ln -s /usr/src/linux-headers-2.6.32-33 /usr/src/linux
# wget http://www.keepalived.org/software/keepalived-1.2.2.tar.gz
# tar zxvf keepalived-1.2.2.tar.gz -C ../software/
# ./configure --prefix=/usr/local/keepalived-1.2.2
configure: error:!!! OpenSSL is not properly installed on your system. !!!!!! Can not include OpenSSL headers files.解决办法:
# apt-get install libssl-dev
configure: error: Popt libraries is required
解决办法:
# apt-get install libpopt-dev
configure: WARNING: keepalived will be built without libnl support.
解决办法:
# apt-get install libnl-dev
/usr/include/stdint.h:41: error: conflicting types for ‘int64_t’
/usr/src/linux/include/linux/types.h:125: error: previous declaration of ‘int64_t’ was here
/usr/include/stdint.h:56: error: conflicting types for ‘uint64_t’
解决办法:
# vim ./keepalived/libipvs-2.6/ip_vs.h
将#include <linux/types.h>移动到#include <sys/types.h>后面去。文章源自运维生存时间-https://www.ttlsa.com/sphinx/haproxy-keepalived-sphinx/

# ./configure --prefix=/usr/local/keepalived-1.2.2
Keepalived configuration
------------------------
Keepalived version       : 1.2.2
Compiler                 : gcc
Compiler flags           : -g -O2
Extra Lib                : -lpopt -lssl -lcrypto  -lnl
Use IPVS Framework       : Yes
IPVS sync daemon support : Yes
IPVS use libnl           : Yes
Use VRRP Framework       : Yes
Use Debug flags          : No
# make
# make install文章源自运维生存时间-https://www.ttlsa.com/sphinx/haproxy-keepalived-sphinx/

# vim /etc/sysctl.conf
net.ipv4.ip_nonlocal_bind=1
# sysctl -p
【node3】
global_defs {
router_id LVS_DEVEL
}文章源自运维生存时间-https://www.ttlsa.com/sphinx/haproxy-keepalived-sphinx/

vrrp_script chk_haproxy {
script "/usr/local/scripts/chk_haproxy.sh"
interval 2
weight 2
}文章源自运维生存时间-https://www.ttlsa.com/sphinx/haproxy-keepalived-sphinx/

vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 76
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
track_script {
chk_haproxy
}
virtual_ipaddress {
192.168.1.222
}
}文章源自运维生存时间-https://www.ttlsa.com/sphinx/haproxy-keepalived-sphinx/

vrrp_instance VI_2 {
state BACKUP
interface eth0
virtual_router_id 77
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
track_script {
chk_haproxy
}
virtual_ipaddress {
192.168.1.223
}
}文章源自运维生存时间-https://www.ttlsa.com/sphinx/haproxy-keepalived-sphinx/

【node4】
global_defs {
router_id LVS_DEVEL
}文章源自运维生存时间-https://www.ttlsa.com/sphinx/haproxy-keepalived-sphinx/

vrrp_script chk_haproxy {
script "/usr/local/scripts/chk_haproxy.sh"
interval 2
weight 2
}文章源自运维生存时间-https://www.ttlsa.com/sphinx/haproxy-keepalived-sphinx/

vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 76
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
track_script {
chk_haproxy
}
virtual_ipaddress {
192.168.1.222
}
}文章源自运维生存时间-https://www.ttlsa.com/sphinx/haproxy-keepalived-sphinx/

vrrp_instance VI_2 {
state MASTER
interface eth0
virtual_router_id 77
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
track_script {
chk_haproxy
}
virtual_ipaddress {
192.168.1.223
}
}文章源自运维生存时间-https://www.ttlsa.com/sphinx/haproxy-keepalived-sphinx/

# vim chk_haproxy.sh
#!/bin/bash文章源自运维生存时间-https://www.ttlsa.com/sphinx/haproxy-keepalived-sphinx/

STATUS=`netstat -nptl | grep haproxy | grep 3312 | wc -l`文章源自运维生存时间-https://www.ttlsa.com/sphinx/haproxy-keepalived-sphinx/

if [ "$STATUS" -eq "0" ]; then
/usr/local/haproxy-1.4.18/sbin/haproxy -f /usr/local/haproxy-1.4.18/haproxy.conf
STATUS2=`netstat -nptl | grep haproxy | grep 3312 | wc -l`
if [ "$STATUS2" -eq "0"  ]; then
kill -9 $(ps -ef | grep keepalived | grep -v grep | awk '{print $2}')
fi
fi文章源自运维生存时间-https://www.ttlsa.com/sphinx/haproxy-keepalived-sphinx/

文章源自运维生存时间-https://www.ttlsa.com/sphinx/haproxy-keepalived-sphinx/文章源自运维生存时间-https://www.ttlsa.com/sphinx/haproxy-keepalived-sphinx/
weinxin
我的微信
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
默北
  • 本文由 发表于 21/10/2011 03:23:52
  • 转载请务必保留本文链接:https://www.ttlsa.com/sphinx/haproxy-keepalived-sphinx/
  • haproxy
  • keepalived
  • libnl-dev
  • libpopt-dev
  • nosql
  • ubuntu
  • 高可用负载均衡
评论  3  访客  2
    • 态度xiaomi
      态度xiaomi 3

      从头开始学呀

      • 态度xiaomi
        态度xiaomi 3

        39febd47f4210842bd2a9c9bf8eacf7bMD5会解密吗

      评论已关闭!