【Linux运维】keepalived主从模式监测nginx

一、环境说明

VirtualBox6.1
CenOS7
Nginx
keepalived-1.1.20.tar.gz

二、IP配置

主Keepalived服务器IP地址:10.0.2.4
备Keepalived服务器IP地址:10.0.2.5
虚拟Keepalived服务器IP地址:10.0.2.6

三、下载地址

http://www.keepalived.org/software/ 可以选择自己需要的版本。

四、安装步骤

1、下载好安装包,可使用xshell软件连接虚拟机,将压缩包上传至/home目录。或者直接在虚拟机里执行命令下载:wget http://www.keepalived.org/software/keepalived-1.1.20.tar.gz(如果提示没有wget命令,安装即可:yum install wget)。
2、解压keepalived(两个虚拟机都需要做,步骤一致):

[root@localhost]# cd /home  
[root@localhost home]# tar -zxvf keepalived-1.1.20.tar.gz 
[root@localhost home]# cd keepalived-1.1.20
[root@localhost keepalived-1.1.20]# ln -s /usr/src/kernels/2.6.9-78.EL-i686/usr/src//linux
[root@localhost keepalived-1.1.20]# ./configure

执行完./configure后会显示:
在这里插入图片描述
3、编译安装:

[root@localhost keepalived-1.1.20]# make && make install   

4、修改配置文件路径:

[root@localhost keepalived-1.1.20]# cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
[root@localhost keepalived-1.1.20]# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
[root@localhost keepalived-1.1.20]# mkdir /etc/keepalived
[root@localhost keepalived-1.1.20]# cp /usr/local/etc/keepalived/keepalived.conf/etc/keepalived/                  
[root@localhost keepalived-1.1.20]# cp /usr/local/sbin/keepalived /usr/sbin/

5、设置服务开机启动:

[root@localhost keepalived-1.1.20]# vi /etc/rc.local 

在最后一行加上: /etc/init.d/keepalived start

五、配置流程

1、配置 主:

[root@localhost keepalived-1.1.20]# vi /etc/keepalived/keepalived.conf 

在这里插入图片描述
2、配置 备:

[root@localhost keepalived-1.1.20]# vi /etc/keepalived/keepalived.conf 

在这里插入图片描述
3、启动服务:

六、验证测试

1、创建监控双机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

2、安装psmisc,因为脚本用到了killall命令,最小化安装的centos没有,所以要安装一下:yum -y install psmisc。
3、再次编辑keepalived配置文件:

vi /etc/keepalived/keepalived.conf

插入第一段:

vrrp_script check_nginx
{
   script "/root/check_nginx.sh"
   interval 2
   weight 2
}

再插入第二段:

track_script 
{ 
        check_nginx
}

它们的位置如下:
在这里插入图片描述
4、备用机与此步骤一样。
5、启动keepalived服务,并开机自启。

systemctl start keepalived.service
systemctl enable keepalived.service

6、测试:
修改一下主机nginx的欢迎界面,以和备用机区分:添加单词Master和Backup:
在这里插入图片描述
7、在浏览器输入虚拟机ip:81,停掉主机服务器的nginx,systemctl stop nginx.service。刷新页面会发现没有变化,这是因为keepalived检测到nginx挂了,会通过check_nginx.sh脚本自动启动nginx。
在这里插入图片描述
8、当手动停止主机的keepalived:systemctl stop keepalived.service
会发现页面标题的Master没有了,就变成了Backup。
在这里插入图片描述
此时才算是配置成功了。

发布了67 篇原创文章 · 获赞 23 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_39071599/article/details/103711514