Administrator
发布于 2021-12-30 / 317 阅读
0
0

Linux-安装配置keepalived

Linux-安装配置keepalived

1、准备keepalived安装包

官网地址:https://www.keepalived.org/download.html

2、安装相关依赖

yum install openssl openssl-devel libnl libnl-devel -y

3、解压keepalived安装包

tar -zxvf keepalived-2.0.20.tar.gz

4、安装配置keepalived

#进入keepalived-2.0.20目录
cd /usr/local/keepalived-2.0.20/

#执行配置,指定安装位置
./configure --prefix=/usr/local/keepalived

#编译并安装
make && make install

5、将keepalived添加到系统服务中

# 创建keepalived文件夹
mkdir /etc/keepalived/

# 将keepalived配置文件拷贝到etc下
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/

# 拷贝执行文件
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

# 将初始化脚本拷贝到系统初始化目录下
cp /opt/mysoft/keepalived-2.0.20/keepalived/etc/init.d/keepalived /etc/init.d/

# 将keepalived系统配置文件拷贝到etc下
cp /usr/local/keepalived-2.0.20/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

# 添加可执行权限
chmod +x /etc/init.d/keepalived

# 添加keepalived到开机启动
chkconfig --add keepalived
chkconfig keepalived on

# 查看添加到chkconfig的自启动服务
chkconfig --list

6、启动和停止keepalived

#启动keepalived服务
systemctl start keepalived或者service keepalived start

#停止keepalived服务
systemctl stop keepalived或者service keepalived stop

#重启keepalived服务
systemctl restart keepalived或者service keepalived restart

#查看keepalived服务运行情况
ps -ef | grep keepalived或者systemctl status keepalived或者service keepalived status

#禁止keepalived开机自启动
systemctl disable keepalived

#启用keepalived开机自启动
systemctl enable keepalived

7、增加nginx状态检测脚本

cd /usr/local/keepalived/

touch check_nginx.sh

chmod 755 check_nginx.sh

vim check_nginx.sh


#!/bin/sh
count=`ps -ef | grep nginx | grep -v grep | wc -l`
#count=`ps -C nginx --no-header | wc -l` 这种方式也是可以的
if [ $count -eq 0 ]
then
    # 重启nginx服务
  echo "nginx is not running....., starting nginx...."
  `/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf`
sleep 2

# 如果nginx服务还启动失败,那么就kill主节点,使用备节点(升级为主节点)提供对外服务
count=`ps -ef | grep nginx | grep -v grep | wc -l`
if [ $count -eq 0 ]
then
  killall keepalived
fi
else
  echo "nginx is running...."
fi


#保存退出
:wq

8、编辑keepalived配置文件

#主节点

 ````
#配置文件
 ! Configuration File for keepalived
 global_defs {
     #唯一标识,一般为用户名
     router_id username1
 }
 #监控服务.NGINX mysql等
 vrrp_script chk_nginx {
     script "/usr/local/keepalived/check_nginx.sh"
     #每2s检查一次
     interval 2
     #每次检查-20
     weight -20
 }
 vrrp_instance VI_1 {
     ##主从设置 MASTER/BACKUP  
     state MASTER
     #网卡名称
     interface ems32
     #同一个集群下这个 router_id是一样的
     virtual_router_id 51
     #本机的ip,需要修改
     mcast_src_ip 192.168.2.72
     #优先级,从节点 配置,需要小于主节点
     priority 100
     #设定MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
     advert_int 1
     #认证的密码
     authentication {
         auth_type PASS
         #设定授权密码,密码相同的为一个集群
         auth_pass F%b4BpbTR@N$
     }
     #触发的脚本
     track_script {
           chk_nginx  #检测脚本,上面配置的
     }
     #虚拟ip地址(同一个集群中的虚拟ip必须得相同,可配置多个)
     virtual_ipaddress {
         192.168.2.73
         192.168.2.74
     }
 }     

#从节点

 ````
#配置文件
 ! Configuration File for keepalived
 global_defs {
     #唯一标识,一般为用户名
     router_id username2
 }
 #监控服务.NGINX mysql等
 vrrp_script chk_nginx {
     script "/usr/local/keepalived/check_nginx.sh"
     #每2s检查一次
     interval 2
     #每次检查-20
     weight -20
 }
 vrrp_instance VI_1 {
     ##主从设置 MASTER/BACKUP  
     state MASTER
     #网卡名称
     interface em3
     #同一个集群下这个 router_id是一样的
     virtual_router_id 51
     #本机的ip,需要修改
     mcast_src_ip 192.168.2.76
     #优先级,从节点 配置,需要小于主节点
     priority 80
     #设定MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
     advert_int 1
     #认证的密码
     authentication {
         auth_type PASS
         #设定授权密码,密码相同的为一个集群
         auth_pass F%b4BpbTR@N$
     }
     #触发的脚本
     track_script {
           chk_nginx  #检测脚本,上面配置的
     }
     #虚拟ip地址(同一个集群中的虚拟ip必须得相同,可配置多个)
     virtual_ipaddress {
         192.168.2.73
         192.168.2.74
     }
 }     

参考:https://blog.csdn.net/qq_35457078/article/details/84879338


评论