一、服务器列表
IP | 部署角色 |
---|---|
10.10.10.1 | keepalived Master |
10.10.10.2 | keepalived Backup |
10.10.10.3 | keepalived VIP |
二、安装keepalived
1、下载解压keepalived
因为此文件已经是编译的文件,必须解压到"/usr/local"目录
tar zxvf keepalived-2.2.7.tgz -C /usr/local/
2、进入keepalived目录,将启动文件复制到"/usr/lib/systemd/system/"下
cp /usr/local/keepalived/init/keepalived.service /usr/lib/systemd/system/
三、修改keepalived配置文件
1、修改10.10.10.1 主 keepalived的"config/keepalived.cnf"配置文件,内容如下:
#全局配置
global_defs {
#notification_email {
# test@163.com #设置报警邮件地址,可以设置多个,每行一个。需要开启sendmail服务。
#}
#notification_email_from test@163.com
#smtp_server smtp.163.com #设置SMTP Server地址
#smtp_connection_timeout 30 #设置SMTP Server的超时时间
router_id test_master #表示运行Keepalived服务器的一个标识,唯一的
}
#检测脚本
vrrp_script chk_test {
script "/usr/local/keepalived/check/check_test" #心跳执行的脚本,检测nginx是否启动
interval 2 #(检测脚本执行的间隔,单位是秒)
weight 2 #权重
}
#vrrp 实例定义部分
vrrp_instance VI_1 {
state MASTER # 指定keepalived的角色,MASTER为主,BACKUP为备
interface ens66 # 当前进行vrrp通讯的网络接口卡(当前centos的网卡) 用ifconfig查看你具体的网卡
virtual_router_id 66 # 虚拟路由编号,主从要一直
priority 100 # 优先级,数值越大,获取处理请求的优先级越高
advert_int 1 # 检查间隔,默认为1s(vrrp组播周期秒数)
#授权访问
authentication {
auth_type PASS #设置验证类型和密码,MASTER和BACKUP必须使用相同的密码才能正常通信
auth_pass 1111
}
track_script {
chk_test #(调用检测脚本)
}
virtual_ipaddress {
10.10.10.3 # 定义虚拟ip(VIP),可多设,每行一个
}
}
2、修改10.10.10.2 备 keepalived的"config/keepalived.cnf"配置文件,内容如下:
#全局配置
global_defs {
#notification_email {
# test@163.com #设置报警邮件地址,可以设置多个,每行一个。需要开启sendmail服务。
#}
#notification_email_from test@163.com
#smtp_server smtp.163.com #设置SMTP Server地址
#smtp_connection_timeout 30 #设置SMTP Server的超时时间
router_id test_backup #表示运行Keepalived服务器的一个标识,唯一的
}
#检测脚本
vrrp_script chk_test {
script "/usr/local/keepalived/check/check_test" #心跳执行的脚本,检测nginx是否启动
interval 2 #(检测脚本执行的间隔,单位是秒)
weight 2 #权重
}
#vrrp 实例定义部分
vrrp_instance VI_2 {
state BACKUP # 指定keepalived的角色,MASTER为主,BACKUP为备
interface ens66 # 当前进行vrrp通讯的网络接口卡(当前centos的网卡) 用ifconfig查看你具体的网卡
virtual_router_id 66 # 虚拟路由编号,主从要一直
priority 99 # 优先级,数值越大,获取处理请求的优先级越高
advert_int 1 # 检查间隔,默认为1s(vrrp组播周期秒数)
#授权访问
authentication {
auth_type PASS #设置验证类型和密码,MASTER和BACKUP必须使用相同的密码才能正常通信
auth_pass 1111
}
track_script {
chk_test #(调用检测脚本)
}
virtual_ipaddress {
10.10.10.3 # 定义虚拟ip(VIP),可多设,每行一个
}
}
3、编辑检查脚本并赋权
vim check_test
#!/bin/bash
a=`ps -ef|grep [n]ode|wc -l`
if [ $a -eq 0 ];then
systemctl stop keepalived
fi
chmod 755 check_test
四、启动keepalived
systemctl daemon-reload
systemctl start keepalived
systemctl enabled keepalived