keepalived安装详细教程

一、安装keepalived

1-1 安装

 yum -y install keepalived

1-2 查看安装路径

which keepalived

二、keepalived配置文件

2-1 两台虚拟机,centos7

修改配置文件 /etc/keepalived/keepalived.conf

2-1-1 主服务器配置

主服务器 要修改的内容
router_id 192.168.159.34 ip地址改成自己的
mcast_src_ip 192.168.67.34 ip地址改成自己的
interface ens32 改成自己的
定义虚拟ip(VIP),可多设,每行一个

keepalived安装详细教程_第1张图片

global_defs {
    notification_email {
       [email protected] #设置报警邮件地址,可以设置多个,可以不设置
    }
    notification_email_from [email protected] #发送通知邮件时邮件源地址
    smtp_server 127.0.0.1 # 发送email时使用的smtp服务器地址,这里可以用本地的sendmail来实现
    smtp_connection_timeout 30 #连接smtp连接超时时间
    router_id 192.168.159.34      #定义路由标识信息,相同局域网唯一
}
vrrp_script aaa {
    script "/usr/local/src/check_nginx_pid.sh"    #最后手动执行下此脚本,以确保此脚本能够正常执行
    interval 2                          #(检测脚本执行的间隔,单位是秒)
    weight -2   #当检查失败后,将vrrp_instance的priority减小2
    fall 3 #连续监测失败3次,才认为真的健康检查失败。并调整优先级
    rise 2 #连续监测2次成功,就认为成功。但不调整优先级
}
 
# 虚拟ip配置 vrrp
vrrp_instance VI_1 {
    state MASTER            # 指定keepalived的角色,MASTER为主,BACKUP为备,大写
    interface ens32            # 当前进行vrrp通讯的网络接口卡(当前centos的网卡)
    mcast_src_ip 192.168.159.34 #发送心跳包的源IP,可使用绑定的网卡IP
    virtual_router_id 51        # 虚拟路由编号,主从要一直0-255
    priority 100            # 优先级,数值越大,获取处理请求的优先级越高
    advert_int 1            # 检查间隔,默认为1s(vrrp组播周期秒数)
    authentication {
        auth_type PASS  #设置验证类型和密码,MASTER和BACKUP必须使用相同的密码才能正常通信
        auth_pass 1111
    }
    track_script {
        aaa            #(调用检测脚本)
    }
    virtual_ipaddress {
        192.168.159.100            # 定义虚拟ip(VIP),可多设,每行一个
    }
}

2-1-2备用服务器配置

state BACKUP 修改MASTER为BACKUP
priority 98 修改priority 数值越大优先级越高

global_defs {
    notification_email {
       [email protected] #设置报警邮件地址,可以设置多个,可以不设置
    }
    notification_email_from [email protected] #发送通知邮件时邮件源地址
    smtp_server 127.0.0.1 # 发送email时使用的smtp服务器地址,这里可以用本地的sendmail来实现
    smtp_connection_timeout 30 #连接smtp连接超时时间
    router_id 192.168.159.35        #定义路由标识信息,相同局域网唯一
}
vrrp_script chk_http_port {
    script "/usr/local/src/check_nginx_pid.sh"    #最后手动执行下此脚本,以确保此脚本能够正常执行
    interval 2                          #(检测脚本执行的间隔,单位是秒)
    weight -2   #当检查失败后,将vrrp_instance的priority减小5
    fall 3 #连续监测失败3次,才认为真的健康检查失败。并调整优先级
    rise 2 #连续监测2次成功,就认为成功。但不调整优先级
}
 
# 虚拟ip配置 vrrp
vrrp_instance VI_1 {
    state BACKUP            # 指定keepalived的角色,MASTER为主,BACKUP为备,大写
    interface ens32            # 当前进行vrrp通讯的网络接口卡(当前centos的网卡)
    mcast_src_ip 192.168.159.35 #发送心跳包的源IP,可使用绑定的网卡IP
    virtual_router_id 51        # 虚拟路由编号,主从要一直
    priority 98            # 优先级,数值越大,获取处理请求的优先级越高
    advert_int 1            # 检查间隔,默认为1s(vrrp组播周期秒数)
    authentication {
        auth_type PASS  #设置验证类型和密码,MASTER和BACKUP必须使用相同的密码才能正常通信
        auth_pass 1111
    }
    track_script {
        chk_http_port            #(调用检测脚本)
    }
    virtual_ipaddress {
        192.168.159.100            # 定义虚拟ip(VIP),可多设,每行一个
    }
}

三、创建脚本

以下是针对nginx状态进行检测的脚本,第一次nginx服务死掉时,会重新启动,如果Nginx服务无法正常启动,则杀掉keepalived进程

#!/bin/bash
A=`ps -C nginx --no-header |wc -l`        
if [ $A -eq 0 ];then                            
       /usr/local/nginx/sbin/nginx      
      if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then  
              killall keepalived                    
      fi
fi

四、启动与验证keepalievd

systemctl  start keepalived    #  启动 Keepalived 服务。 
systemctl status keepalived    # 查看 Keepalived 服务的当前状态
ps -aux|grep keepalived		   #  过 ps 命令和 grep 过滤器查找正在运行的 Keepalived 进程。

五、启动与验证nginx

systemctl  start nginx        #  启动 Keepalived 服务。 
systemctl status nginx        # 查看 Keepalived 服务的当前状态
ps -aux|grep nginx            #  过 ps 命令和 grep 过滤器查找正在运行的 Keepalived 进程。

keepalived安装详细教程_第2张图片

你可能感兴趣的:(Nginx,nginx)