博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
keepalive高可用的健康检查
阅读量:5014 次
发布时间:2019-06-12

本文共 1273 字,大约阅读时间需要 4 分钟。

Master配置文件  注意iptables防火墙(见上个随笔)和健康检查脚本

keepalived 只是高可用,如果keepalived宕机后,ip会飘到备份主机,但是如果nginx掉了,keepalived是不会stop掉的,所以需要脚本做健康检查,代码如下:

! Configuration File for keepalived

global_defs {

notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}

notification_email_from Alexandre.Cassen@firewall.loc

smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id web1
}

vrrp_script check_nginx {

script "/etc/keepalived/check_nginx.sh"
interval 2
weight -5
fall 2
rise 1
}

vrrp_instance VI_1 {

state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.120
}

track_script {

check_nginx
}
}

# virtual_router_id 51必须一致

脚本代码

#!/bin/bash  A=$(ss -aunpt | grep nginx | wc -l)        if [ $A -eq 0 ] ; then              /usr/bin/kill -15 `cat /var/run/keepalived.pid`              echo -e "keeplived is stoped"        else            exit 0        fi

##注意脚本要加执行权限+x  vrrp_script 

       vrrp_script

    interval 2 : 每2s检测一次
    weight -5 : 检测失败(脚本返回非0)则优先级 -5
    fall 2 : 检测连续 2 次失败才算确定是真失败。会用weight减少优先级(1-255之间)
    rise 1 : 检测 1 次成功就算成功。但不修改优先级

 

注意关闭的keepalived关闭后,要起来,需要先启nginx,然后启keepalived

由于本人只有两台高可用,就不写备份机的代码和脚本了。

 

转载于:https://www.cnblogs.com/lsgo/p/10492671.html

你可能感兴趣的文章
Window上python 开发--1.搭建开发环境
查看>>
微信小程序取消button边框线
查看>>
js返回上一页
查看>>
sql 语句中 id&lt ;SELECT * FROM t_blog WHERE id<#{id} ORDER BY id DESC LIMIT 1
查看>>
关于spring中<context:component-scan base-package="" />写法
查看>>
每天一个linux命令(7):mv命令
查看>>
NGUI如何使用汉字
查看>>
将一个list分为每份小鱼1000的
查看>>
分享一款由杨中科老师主讲的javascript视频教程,属于.NET课程是视频教程
查看>>
env-update干了些什么
查看>>
[WPF]使用WindowChrome自定义Window Style
查看>>
windows 下搭建简易nginx+PHP环境
查看>>
正则表达式, 贪婪模式
查看>>
android开发之调试技巧 分类: android ...
查看>>
Cordova - 如何安装 PhoneGap / Cordova (for Win10)
查看>>
微信小程序-学习笔记2-页面配置
查看>>
webpackの学习笔记2
查看>>
RobotFramework教程使用笔记——robotframwork中文乱码显示问题
查看>>
[.NET WebAPI系列03] WebAPI Controller 中标准CRUD方法
查看>>
AngularJS
查看>>