ip | 主机名 | 备注 |
---|---|---|
192.168.174.128 | master | 关闭防火墙、安全规则 |
192.168.174.129 | backup | 关闭防火墙、安全规则 |
环境:搭建好的主备keepalived,以及两台安装好ecshop的虚拟机,共四台
配置邮件通知
以下配置在主从都需要配置
编辑keepalived主配置文件
# vi /etc/keepalived/keepalived.conf
global_defs {
notification_email {
root@localhost
}
notification_email_from root@aminglinux.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_nginx {
script "/usr/local/sbin/check_ng.sh"
interval 3
}
vrrp_instance VI_1 {
state MASTER
interface eno16777736
virtual_router_id 79
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass admin
}
virtual_ipaddress {
192.168.174.100
}
track_script {
chk_nginx
}
#keepalived进入master状态时执行以下
notify_master "/etc/keepalived/notify.sh master"
#keepalived进入backup状态时执行以下
notify_backup "/etc/keepalived/notify.sh backup"
#keepalived进入fault状态时执行以下
notify_fault "/etc/keepalived/notify.sh fault"
}
配置mail
# yum install mailx
# vi /etc/mail.rc //在最后添加
set from=*********@qq.com //邮箱
set smtp=smtp.qq.com
set smtp-auth-user=*********@qq.com //邮箱
set smtp-auth-password=********* //验证码
set smtp-auth=login
测试
# echo 'asd'|mail -s 'asd asd' *********@qq.com
编写邮件脚本(脚本路径看自己的配置文件)
# cat /etc/keepalived/notify.sh
#!/bin/bash
contact='2418882397@qq.com'
notify() {
mailsubject="$(hostname) to be $1, vip转移"
mailbody="$(date +'%F %T'): vrrp transition, $(hostname) changed to be $1"
echo "$mailbody" | mail -s "$mailsubject" $contact
}
case $1 in
master)
notify master
;;
backup)
notify backup
;;
fault)
notify fault
;;
*)
echo "Usage: $(basename $0) {master|backup|fault}"
exit 1
;;
esac
# chmod +x /etc/keepalived/notify.sh //添加执行权限
# systemctl restart keepalived //重启keepalived
停止主节点keeplived
# systemctl stop keepalived
启动主节点keepalived
# systemctl start keepalived
可以收到邮件,测试成功
lvs-nat模式
ip | 主机名 | 备注 |
---|---|---|
192.168.174.128(内网) 192.168.12.131(公网) | master | 关闭防火墙、安全规则 |
192.168.174.130 | ecshop | 搭建好ecshop、关闭防火墙、安全规则 |
192.168.174.131 | ecshop1 | 搭建好ecshop1、关闭防火墙、安全规则 |
NAT模式下 , 调度器需要有两个IP , 一个公网IP一个内网IP , web服务器只需要内网IP
调度器(master) : 192.168.174.128(内网IP) 192.168.12.131 (仅主机模式模拟公网IP)
真实web服务器 : 192.168.174.130(内网IP)
真实web服务器 : 192.168.174.131(内网IP)
调度器两块网卡 , 内网可以用NAT的网络 , 模拟公网的网卡可以用仅主机模式
关闭master,添加一块网卡到master上,之后启动master
在master上操作
# echo 1 >> /proc/sys/net/ipv4/ip_forward //在ipv4环境下可以进行ip转发
# ipvsadm -A -t 192.168.12.131:80 -s wrr //-A为添加虚拟主机,-s为选择调度算法,rr为轮调
##########注意映射端口最好一样
# ipvsadm -C //先清理规则
# ipvsadm -a -t 192.168.174.12.131 -r 192.168.174.130:80 -m -w 1 //-r为添加RS ,-m是lvs NAT类型
# ipvsadm -a -t 192.168.174.12.131 -r 192.168.174.131:80 -m -w 1 //-a为添加真实主机,-w为权重,-t为集群服务器地址
将两台web服务器的网关更改为调度器的内网IP
# vi /etc/sysconfig/network-scripts/ifcfg-eno16777736
GATEWAY=192.168.174.128 //将网关修改为master的内网ip即可
# systemctl restart network //重启网卡
访问