Keepalived高可用服务器
2:Keepalived+LVS服务器
3:配置HAProxy负载平衡集群
作用:解决单点故障
实现高可用集群
Keepalived的功能
VRRP功能 //虚拟路由热备份协议
自动配置LVS
健康检查
keepalived安装
yum -y install keepali(k波利普)ved //RHEL7的光盘中已经包含keepalived软件包,只要配置好yum,
Keepalived高可用服务器
nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.4.100/24 connection.autoconnect yes //服务器配置IP(有几台配置机台客户机除外)
nmcli connection up eth0 //启动服务
yum -y install httpd
echo “192.168.4.200” > /var/www/html/index.html
systemctl restart httpd //启动httpd
yum install -y keepalived //安装Keepalived软件
vim /etc/keepalived/keepalived.conf //服务器Keepalived配置文件
notification_email {
[email protected] //设置报警收件人邮箱
notification_email_from ka@localhost //设置发件人
smtp_server 127.0.0.1 //定义邮件服务器
router_id LVS_DEVEL //设置路由ID号(LVS_DEVEL可以自定义)
rrp_instance VI_1 {
state MASTER //主服务器为MASTER(备服务器需要修改为BACKUP)
interface eth0 //定义网络接口
virtual_router_id 51 //主备服务器VRID号必须一致
priority 100 //服务器优先级,优先级高优先获取VIP
authentication {
auth_pass 1111 //主备服务器密码必须一致
virtual_ipaddress { //谁是主服务器谁获得该VIP(实验需要修改)
192.168.4.80 //修改成自己的vip
配置防火墙和SELinux
iptables -F //清空防火墙配置
setenforce 0 // 临时开启SELnux运行模式
ip addr show eth0 //查看VIP主备信息
tailf /var/log/messages //keepalived日志(报错可查看)
systemctl stop keepalived //关闭防火墙
Keepalived+LVS服务器
nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.4.100/24 connection.autoconnect yes //服务机配置IP
nmcli connection up eth0 //启动服务
cd /etc/sysconfig/network-scripts/ //进入IP目录
cp ifcfg-lo{,:0} //复制一个lo作为
vim ifcfg-lo:0 //修改配置文件 (服务机2同样操作)
DEVICE=lo:0
IPADDR=192.168.4.15
NETMASK=255.255.255.255
NETWORK=192.168.4.15
BROADCAST=192.168.4.15
ONBOOT=yes
AME=lo:0
vim /etc/sysctl.conf //配置文件(服务器2也同样操作)
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
重启网络服务,设置防火墙与SELinux
systemctl stop NetworkManager
systemctl disable NetworkManager
systemctl restart network
cat /var/www/html/index.html
ifconfig
systemctl stop firewalld
mcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.4.5/24 connection.autoconnect yes //配置主机1的网络参数(主机2同样操作)
nmcli connection up eth0 //启动
yum -y install httpd //配置后台web服务
echo “192.168.4.100” > /var/www/html/index.html //自定义页面(服务机2同样操作)
systemctl start httpd ; systemctl enable httpd //启动Web服务器软件(服务机2同样操作)
部署Keepalived实现LVS-DR模式调度器的高可用
mode http 客户端请求被深度分析后再发往服务器
mode tcp 4层调度,不检查第七层信息
mode health 仅做健康检查,已经不建议使用
(主机2同样操作)
yum install -y keepalived //下载软件
systemctl enable keepalived //设置开机自启
yum install -y ipvsadm //下载软件
ipvsadm -C //清空所有的LVS的配置
vim /etc/keepalived/keepalived.conf //配置文件(主机2同样操作)
global_defs { //全局配置
notification_email {
[email protected] //设置报警收件人邮箱
}
notification_email_from ka@localhost //设置发件人
smtp_server 127.0.0.1 //定义邮件服务器
smtp_connect_timeout 30
router_id lvs1 //设置路由ID号(实验需要修改)
}
vrrp_instance VI_1 {
state MASTER //主服务器为MASTER(备服务器为BACKUP)
interface eth0 //定义网络接口
virtual_router_id 51 //主辅VRID号必须一致
priority 100 //服务器优先级(备服务器比主的参数低)
advert_int 1
authentication {
auth_type pass
auth_pass 1111 //主辅服务器密码必须一致
}
virtual_ipaddress { //配置VIP(要修改为调度机ip)
192.168.4.15
}
}
virtual_server 192.168.4.15 80 { //设置ipvsadm的VIP规则(实验需要修改)
delay_loop 6
lb_algo rr //设置LVS调度算法为RR
lb_kind DR //设置LVS的模式为DR(实验需要修改)
#persistence_timeout 50 //(实验需要注释)
#注意这样的作用是保持连接,开启后,客户端在一定时间内始终访问相同服务器
protocol TCP
real_server 192.168.4.100 80 { //设置后端web服务器真实IP(实验需要修改)
weight 1 //设置权重为1
TCP_CHECK { //对后台real_server做健康检查(实验需要修改)
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.4.200 80 { //设置后端web服务器真实IP(实验需要修改)
weight 1 //设置权重为1
TCP_CHECK { //对后台real_server做健康检查(实验需要修改)
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.4.200 80 { //设置后端web服务器的真实IP(实验需要修改)
weight 2 //设置权重为2
TCP_CHECK { //对后台real_server做健康检查(实验需要修改)
connect_timeout 3 //超时间链接
nb_get_retry 3 //
delay_before_retry 3 //
systemctl start keepalived //重启服务(刷新:restart)
ipvsadm -Ln //查看LVS规则
ip a s //查看VIP设置
iptables -F //清空防火墙所有规则
客户端使用curl命令反复连接http://192.168.4.15
配置HAProxy负载平衡集群
前提 删除所有设备的VIP,清空所有LVS设置,关闭keepalived!!!
将前面实验VIP、LVS等实验的内容清理干净!!!!!!
ifdown lo:0 //停用lo:0
mcli connection modify eth1 ipv4.method manual ipv4.addresses 192.168.2.100/24 connection.autoconnect yes //配置ip(服务机2同样操作)
nmcli connection up eth1 //启用IP
nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.4.5/24 connection.autoconnect yes //主机配置IP
nmcli connection up eth0 //启用IP
yum -y install httpd // 下载httpd
systemctl start httpd // 启动httpd
echo “192.168.2.100” > /var/www/html/index.html //服务机1和2操作
部署HAProxy服务器
yum -y install haproxy //下载haproxy
vim /etc/haproxy/haproxy.cfg //修改配置文件
global
log 127.0.0.1 local2 ##[err warning info debug]
chroot /usr/local/haproxy
pidfile /var/run/haproxy.pid ##haproxy的pid存放路径
maxconn 4000 ##最大连接数,默认4000
user haproxy
group haproxy
daemon ##创建1个进程进入deamon模式运行
defaults
mode http ##默认的模式mode { tcp|http|health }
option dontlognull ##不记录健康检查的日志信息
option httpclose ##每次请求完毕后主动关闭http通道
option httplog ##日志类别http日志格式
option forwardfor ##后端服务器可以从Http Header中获得客户端ip
option redispatch ##serverid服务器挂掉后强制定向到其他健康服务器
timeout connect 10000 #如果backend没有指定,默认为10s
timeout client 300000 ##客户端连接超时
timeout server 300000 ##服务器连接超时
maxconn 3000 ##最大连接数
retries 3 ##3次连接失败就认为服务不可用,也可以通过后面设置
#main frontend which proxys to the backends //以上的是默认配置,下面的可以修改
listen stats 0.0.0.0:1080 #监听端口
stats refresh 30s #统计页面自动刷新时间
stats uri /stats #统计页面url
stats realm Haproxy Manager #进入管理解面查看状态信息
stats auth admin:admin #统计页面用户名和密码设置
listen websrv-rewrite 0.0.0.0:80 (或者*:80)
balance roundrobin
server web1 192.168.2.100:80 check inter 2000 rise 2 fall 5
成功链接2次 连续失败5次
server web2 192.168.2.200:80 check inter 2000 rise 2 fall 5
(访问后出现的图表)
Queue队列数据的信息(当前队列数量,最大值,队列限制数量);
Session rate每秒会话率(当前值,最大值,限制数量);
Sessions总会话量(当前值,最大值,总量,Lbtot: total number of times a server was selected选中一台服务器所用的总时间);
Bytes(入站、出站流量);
Denied(拒绝请求、拒绝回应);
Errors(错误请求、错误连接、错误回应);
Warnings(重新尝试警告retry、重新连接redispatches);
Server(状态、最后检查的时间(多久前执行的最后一次检查)、权重、备份服务器数量、down机服务器数量、down机时长)。
配置HAProxy负载平衡集群
HAProxy工作模式:
mode heep 客户机请求被深度分析后再发往服务器
mode tcp 4层服务,不检查七层服务
mode health 仅做健康状态检查,已经不建议使用