-
什么是Keepalived:
Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。
-
Keepalived的安装
1.在安装之前我们需要为虚拟机进行环境配置,将网络模式改为桥接模式
并且需要两台Linux虚拟机。
2.关闭selinux
输入命令:
setenforce 0
编辑配置文件,关闭开机自启
vi /etc/selinux/config
将 selinux=enforcing 改成 selinux=disabled
3.为主机安装keepalived
下载:
wget https://www.keepalived.org/software/keepalived-1.4.5.tar.gz
解压
tar -zxvf keepalived-1.4.5.tar.gz
进入文件夹
cd keepalived-1.4.5
预编译
./configure --prefix=/usr/local/keepalived
安装
make && make install
4.将keepalived 注册为系统服务
cp keepalived/etc/init.d/keepalived /etc/init.d
cp keepalived/etc/sysconfig/keepalived /etc/sysconfig/
5.编辑配置文件
mkdir -p /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
vi /etc/keepalived/keepalived.conf
6.为备用机安装keepalived
和主机安装keepalived 的步骤是一样的,只有第五步稍有不同
7.创建监控双机nginx状态的脚本
vi /opt/check_nginx.sh
写入以下代码
#!/bin/sh
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then #如果nginx没在运行
systemctl start nginx.service #启动nginx
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then #如果无法启动
killall keepalived #杀死keepalived进程
fi
fi
8.安装psmisc
因为脚本用到了killall命令,最小化安装的centos没有,所以要安装一下
yum -y install psmisc
9.再次编辑keepalived配置文件
vi /etc/keepalived/keepalived.conf
插入第一段
vrrp_script check_nginx {
script "/root/check_nginx.sh"
interval 2
weight 2
}
第二段:
track_script {
check_nginx
}
将 state MASTER 改为 state BACKUP
7.创建监控双机nginx状态的脚本
vi /opt/check_nginx.sh
写入以下代码
#!/bin/sh
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then #如果nginx没在运行
systemctl start nginx.service #启动nginx
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then #如果无法启动
killall keepalived #杀死keepalived进程
fi
fi
8.安装psmisc
因为脚本用到了killall命令,最小化安装的centos没有,所以要安装一下
yum -y install psmisc
9.再次编辑keepalived配置文件
vi /etc/keepalived/keepalived.conf
10.备用机的监控
按照第7步,第8步,第9步再次操作一遍
11.启动keepalived服务,并开机自启
systemctl start keepalived.service
systemctl enable keepalived.service