目录
- Keepalived部署双主热备
- 一、Keepalived安装部署
- 1.1、去Keepalived官网下载压缩包
- 1.2、上传压缩包到服务器,并解压
- 1.3、进入解压目录使用`configure`命令进行配置安装
- 1.4、安装keepalived
- 二、配置Keepalived主和从
- 2.1配置Keepalived - 主
- 2.1.1、通过命令 `vim keepalived.conf`打开配置文件,文件位置/etc/keepalived文件夹下
- 2.1.2、启动Keepalived
- 2.2、配置Keepalived - 从
- 2.2.1、通过命令 `vim keepalived.conf`打开配置文件,文件位置/etc/keepalived文件夹下
- 2.3、启动Keepalived
- 三、Keepalived注册为系统服务
- 3.1、进入keepalived解压目录并拷贝配置文件到指定位置
- 3.2、使用系统服务器进行keepalived启动关闭
- 四、Keepalived配置Nginx自动重启
- 4.1、增加nginx重启检测脚本
- 4.2、配置keepalived监听nginx脚本
- 4.3、配置vrrp_instance中新增监控的脚本
- 4.4、重启Keepalived是的配置文件生效
- 附:Keepalived.conf完整配置
- 五、配置Keepalived双主热备
- 5.1、进入主节点然后 vim /etc/keepalived/keepalived.conf
- 5.2、进入主节点然后 vim /etc/keepalived/keepalived.conf
- 5.3、分别重启两台服务器的keepalived服务
Keepalived部署双主热备
一、Keepalived安装部署
1.1、去Keepalived官网下载压缩包
- 下载地址:下载地址
1.2、上传压缩包到服务器,并解压
# 上传压缩包
scp ./keppalived.tar.gz root@192.168.64.131:/home/software
# 解压
tar -zxvf keppalived.tar.gz
1.3、进入解压目录使用configure
命令进行配置安装
./configure --prefix=/usr/local/keepalived --sysconf=/etc
- prefix:keepalived安装的位置
- sysconf:keepalived核心配置文件所在位置,固定位置,改成其他位置则keepalived启动不了,/var/log/message中会报错
警告
- 安装过程可能报错:WARNING -this build will not support IPVS with IPv6. …
- 解决:安装libnl/libnl-3依赖,重新configure一下,就OK了
yum -y install libnl libnl-devel
1.4、安装keepalived
make && make install
进入/etc/keepalived,该目录下为keepalived核心配置文件
二、配置Keepalived主和从
2.1配置Keepalived - 主
2.1.1、通过命令 vim keepalived.conf
打开配置文件,文件位置/etc/keepalived文件夹下
global_defs {
# 路由id:当前安装keepalived节点主机的标识符,全局唯一标识符
router_id keep_192.168.64.131
}
# 计算机节点
vrrp_instance VI_1 {
# 表示的状态,当前的192.168.64.131的nginx的主节点
# 主节点:MASTER,备用机:BACKUP
state MASTER
# 当前实例绑定的网卡
interface ens33
# 保证主备节点一致
virtual_router_id 51
# 优先级/权重,谁的优先级高,在MASTER挂掉以后,就能成为MASTER
priority 100
# 主备之间同步检查的时间间隔,默认1s
advert_int 1
# 认证授权的密码,防止非法节点的进入
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.64.121
}
}
ip addr 命令可以查看自己的ip和网卡地址
2.1.2、启动Keepalived
# 进去启动目录
cd /usr/local/keeplived/sbin
# 启动
./keepalived
# 查看进程
ps -ef|grep keepalived
# 查看虚拟ip
ip addr
2.2、配置Keepalived - 从
2.2.1、通过命令 vim keepalived.conf
打开配置文件,文件位置/etc/keepalived文件夹下
global_defs {
# 路由id:当前安装keepalived节点主机的标识符,全局唯一标识符
router_id keep_192.168.64.132
}
# 计算机节点
vrrp_instance VI_1 {
# 表示的状态,当前的192.168.64.131的nginx的主节点
# 主节点:MASTER,备用机:BACKUP
state BACKUP
# 当前实例绑定的网卡
interface ens33
# 保证主备节点一致
virtual_router_id 51
# 优先级/权重,谁的优先级高,在MASTER挂掉以后,就能成为MASTER
priority 80
# 主备之间同步检查的时间间隔,默认1s
advert_int 1
# 认证授权的密码,防止非法节点的进入
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.64.121
}
}
ip addr 命令可以查看自己的ip和网卡地址
2.3、启动Keepalived
# 进去启动目录
cd /usr/local/keeplived/sbin
# 启动
./keepalived
# 查看进程
ps -ef|grep keepalived
# 查看虚拟ip
ip addr
三、Keepalived注册为系统服务
3.1、进入keepalived解压目录并拷贝配置文件到指定位置
# 进入解压目录
cd /home/software/keepalived-2.0.18
# 进入keepalived目录
cd keepalived
# 进入etc目录
cd etc
# 拷贝配置文件到系统etc下的init.d文件夹下
cp init.d/keepalived /etc/init.d/
# 拷贝配置文件到系统etc下的sysconfig文件夹下
cp sysconfig/keepalived /etc/sysconfig/
# 刷新配置
systemctl daemon-reload
3.2、使用系统服务器进行keepalived启动关闭
# 启动keepalived服务
systemctl start keepalived.service
# 检测keepalived服务状态,两种方法都可以
systemctl status keepalived.service
ps -ef|grep keepalived
# 停止keepalived服务
systemctl stop keepalived.service
# 重启keepalived服务
systemctl restart keepalived.service
四、Keepalived配置Nginx自动重启
4.1、增加nginx重启检测脚本
vim /etc/keepalived/check_nginx_alive_or_not.sh
#!/bin/bash
A=`ps -C nginx --no-header |wc -l`
# 判断nginx是否宕机,如果宕机了,尝试重启
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx
# 等待一小会再次检查nginx,如果没有启动成功,则停止keepalived,使其启动备用机
sleep 3
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived
fi
fi
- 增加运行权限
chmod +x /etc/keepalived/check_nginx_alive_or_not.sh
4.2、配置keepalived监听nginx脚本
vrrp_script check_nginx_alive {
script "/etc/keepalived/check_nginx_alive_or_not.sh"
interval 2 # 每隔两秒运行上一行脚本
weight 10 # 如果脚本运行成功,则升级权重+10
}
这段代码配置在/etc/keepalived/keepalived.conf脚本中’
4.3、配置vrrp_instance中新增监控的脚本
track_script {
check_nginx_alive # 追踪 nginx 脚本
}
4.4、重启Keepalived是的配置文件生效
systemctl restart keepalived
附:Keepalived.conf完整配置
global_defs {
# 路由id:当前安装keepalived节点主机的标识符,全局唯一标识符
router_id keep_192.168.64.131
}
vrrp_script check_nginx_alive {
script "/etc/keepalived/check_nginx_alive_or_not.sh"
interval 2 # 每隔两秒运行上一行脚本
weight 10 # 如果脚本运行成功,则升级权重+10
}
# 计算机节点
vrrp_instance VI_1 {
# 表示的状态,当前的192.168.64.131的nginx的主节点
# 主节点:MASTER,备用机:BACKUP
state MASTER
# 当前实例绑定的网卡
interface ens33
# 保证主备节点一致
virtual_router_id 51
# 优先级/权重,谁的优先级高,在MASTER挂掉以后,就能成为MASTER
priority 100
# 主备之间同步检查的时间间隔,默认1s
advert_int 1
# 认证授权的密码,防止非法节点的进入
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
check_nginx_alive # 追踪 nginx 脚本
}
virtual_ipaddress {
192.168.64.121
}
}
五、配置Keepalived双主热备
5.1、进入主节点然后 vim /etc/keepalived/keepalived.conf
vrrp_script check_nginx_alive {
script "/etc/keepalived/check_nginx_alive_or_not.sh"
interval 2 # 每隔两秒运行上一行脚本
weight 10 # 如果脚本运行成功,则升级权重+10
}
# 计算机节点
vrrp_instance VI_1 {
# 表示的状态,当前的192.168.64.131的nginx的主节点
# 主节点:MASTER,备用机:BACKUP
state MASTER
# 当前实例绑定的网卡
interface ens33
# 保证主备节点一致
virtual_router_id 51
# 优先级/权重,谁的优先级高,在MASTER挂掉以后,就能成为MASTER
priority 100
# 主备之间同步检查的时间间隔,默认1s
advert_int 1
# 认证授权的密码,防止非法节点的进入
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
check_nginx_alive # 追踪 nginx 脚本
}
virtual_ipaddress {
192.168.64.121
}
}
vrrp_instance VI_2 {
state BACKUP
interface ens33
virtual_router_id 52
priority 80
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.64.122
}
}
5.2、进入主节点然后 vim /etc/keepalived/keepalived.conf
global_defs {
# 路由id:当前安装keepalived节点主机的标识符,全局唯一标识符
router_id keep_192.168.64.132
}
# 计算机节点
vrrp_instance VI_1 {
# 表示的状态,当前的192.168.64.131的nginx的主节点
# 主节点:MASTER,备用机:BACKUP
state BACKUP
# 当前实例绑定的网卡
interface ens33
# 保证主备节点一致
virtual_router_id 51
# 优先级/权重,谁的优先级高,在MASTER挂掉以后,就能成为MASTER
priority 80
# 主备之间同步检查的时间间隔,默认1s
advert_int 1
# 认证授权的密码,防止非法节点的进入
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.64.121
}
}
vrrp_instance VI_2 {
state MASTER
interface ens33
virtual_router_id 52
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.64.122
}
}
5.3、分别重启两台服务器的keepalived服务
systemctl restart keepalived.service