[root@cache-redis-~/]# cat  /etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {
notification_email {
@qq.com
}
notification_email_from @.cn
smtp_server smtp..cn
smtp_connect_timeout
router_id redis_service01
vrrp_skip_check_adv_addr
# vrrp_strict # can not use ping
vrrp_garp_interval
vrrp_gna_interval
}
vrrp_script chk_redis {
script /etc/keepalived/scripts/redis_check.sh ###监控本地redis alive
interval ###监控时间间隔(秒)
}
vrrp_instance redis {
state BACKUP
interface eth0
virtual_router_id
priority
nopreempt ###不抢占MASTER
advert_int
authentication {
auth_type PASS
auth_pass
}
track_script {
chk_redis ###执行上面定义的chk_redis
}
virtual_ipaddress {
172.16.1.63/24 dev eth0 label eth0:63
}
notify_master /etc/keepalived/scripts/redis_master.sh # 当此节点切换为master时执行的脚本
notify_backup "/etc/keepalived/scripts/redis_backup.sh cache-redis-" # 当此节点切换为
# backup时执行的脚本
notify_fault /etc/keepalived/scripts/redis_fault.sh # 当此节点故障时(chk_keepalive中
# 脚本返回非0)执行的脚本
notify_stop /etc/keepalived/scripts/redis_stop.sh # 当此节点keepalived服务stop时执行的脚本
}
[root@cache-redis-~/]# cat /etc/keepalived/keepalived.conf    
! Configuration File for keepalived
global_defs {
notification_email {
@qq.com
}
notification_email_from @.cn
smtp_server smtp..cn
smtp_connect_timeout
router_id redis_service02
vrrp_skip_check_adv_addr
# vrrp_strict # can not use ping
vrrp_garp_interval
vrrp_gna_interval
}
vrrp_script chk_redis {
script /etc/keepalived/scripts/redis_check.sh ###监控本地redis alive
interval ###监控时间间隔(秒)
}
vrrp_instance redis {
state BACKUP
interface eth0
virtual_router_id
priority 50 advert_int
authentication {
auth_type PASS
auth_pass
}
track_script {
chk_redis ###执行上面定义的chk_redis
}
virtual_ipaddress {
172.16.1.63/24 dev eth0 label eth0:63
}
notify_master /etc/keepalived/scripts/redis_master.sh # 当此节点切换为master时执行的脚本
notify_backup "/etc/keepalived/scripts/redis_backup.sh cache-redis-" # 当此节点切换为
# backup时执行的脚本
notify_fault /etc/keepalived/scripts/redis_fault.sh # 当此节点故障时(chk_keepalive中
# 脚本返回非0)执行的脚本
notify_stop /etc/keepalived/scripts/redis_stop.sh # 当此节点keepalived服务stop时执行的脚本
}
 跟从的脚本完全一样!!!                                                                                                    

mkdir -p /etc/keepalived/scripts

cat >/etc/keepalived/scripts/redis_master.sh<<-EOF
#!/bin/bash
PORT="\${1:-6380}"
REDISCLI="/bin/redis-cli"
LOGFILE="/var/log/keepalived-redis-state.log"
sleep 10 #延迟10秒待数据被对方同步完成之后再切换主从角色
echo -e "[keepalived master]\t\$(date +%F_%T)\nRun SLAVEOF NO ONE cmd ..." >>\${LOGFILE}
\$REDISCLI -h \$(hostname) -p \${PORT} SLAVEOF NO ONE &>>\${LOGFILE}
EOF cat >/etc/keepalived/scripts/redis_backup.sh<<-EOF
#!/bin/bash
REMOTE_HOSTNAME="\$1"
PORT="\${2:-6380}"
REDISCLI="/bin/redis-cli"
LOGFILE="/var/log/keepalived-redis-state.log"
sleep 15 #延迟15秒待数据被对方同步完成之后再切换主从角色
echo -e "[keepalived backup]\t\$(date +%F_%T)\nRun SLAVEOF \${REMOTE_HOSTNAME} \${PORT} ..." >>\${LOGFILE}
\$REDISCLI -h \$(hostname) -p \${PORT} SLAVEOF \${REMOTE_HOSTNAME} \${PORT} &>>\${LOGFILE}
EOF cat >/etc/keepalived/scripts/redis_check.sh<<-EOF
#!/bin/bash
PORT="\${1:-6380}"
LOGFILE=/var/log/keepalived-redis-state.log
ALIVE=\$(/bin/redis-cli -h \$(hostname) -p \${PORT} PING)
if [ "\$ALIVE" == "PONG" ]; then
exit 0
else
echo -e "[redis_check fault]\t\$(date +%F_%T)" >> \$LOGFILE
exit 1
fi
EOF cat >/etc/keepalived/scripts/redis_fault.sh<<-EOF
#!/bin/bash
systemctl stop keepalived.service
EOF cat >/etc/keepalived/scripts/redis_stop.sh<<-EOF
#!/bin/bash
LOGFILE=/var/log/keepalived-redis-state.log
echo -e "[keepalived stop]\t\$(date +%F_%T)" >> \$LOGFILE
EOF chmod +x /etc/keepalived/scripts/*.sh

redis+Keepalived主从热备切换实例的更多相关文章

  1. redis+Keepalived主从热备秒级切换

    一 简介 安装使用centos 5.10 Master 192.168.235.135 Slave 192.168.235.152 Vip 192.168.235.200 编译环境 yum -y in ...

  2. redis(三)redis+Keepalived主从热备秒级切换

    一 简介 安装使用centos 5.10 Master 192.168.235.135 Slave 192.168.235.152 Vip 192.168.235.200 编译环境 yum -y in ...

  3. 【Nginx】如何基于主从模式搭建Nginx+Keepalived双机热备环境?这是最全的一篇了!!

    写在前面 最近出版了<海量数据处理与大数据技术实战>,详情可以关注 冰河技术 微信公众号,查看<我的<海量数据处理与大数据技术实战>出版啦!>一文. 也有不少小伙伴 ...

  4. 主从热备+负载均衡(LVS + keepalived)

    前言 淘宝架构师李智慧大牛的书籍<大型网站技术架构>以及旭龙兄的博客  --->[大型网站技术实践]初级篇:借助LVS+Keepalived实现负载均衡. 从上参考而得来本文,本文旨 ...

  5. nginx+keepalived简单双机主从热备

    双机主从热备概述 可以两台机子互为热备,平时各自负责各自的服务.在做上线更新的时候,关闭一台服务器的tomcat后,nginx自动把流量切换到另外一台服务的后备机子上,从而实现无痛更新,保持服务的持续 ...

  6. 【Nginx】(主从热备)LVS+Keepalived+Nginx实现高性能负载均衡集群

    一.LVS 1.1 概述 1.2 Nginx与LVS区别什么 二.Keepalived 2.1 概述 2.2 keepalived和其工作原理 三.LVS+Keepalived+Nginx 搭建双机主 ...

  7. LVS + keepalived + nginx + tomcat 实现主从热备 + 负载均衡

    前言 首先声明下,由于这两天找资料,看了不少博客 ,但是出于不细心,参考者的博客地址没有记录下来,所有文中要是出现了与大家博客相同的地方,那么请大家在评论区说明并附上博客地址,我好引用进来:这里表示抱 ...

  8. Lvs+keepalived+mysql主从热备

    p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; f ...

  9. keepalived双机热备nginx

    nginx目前是我最常用的反向代理服务,线上环境为了能更好的应对突发情况,一般会使用keepalived双机热备nginx或者使用docker跑nginx集群,keepalived是比较传统的方式,虽 ...

随机推荐

  1. (转)Windows 平台下解决httpd.exe: syntax error on line 39

    近来在研究PHP,结果为了Apache的安装伤神不已...小白我在安装后,启动Apache的服务虽然可以,不过,在Apache sevice monitor 中启动services时就会出现如下的问题 ...

  2. JAVA Override和Overload的含义去区别

    java中的继承,方法覆盖(重写)override与方法的重载overload的区别 1.方法的重写(Overriding)和重载(Overloading)是Java多态性的不同表现,重写(Overr ...

  3. Ubuntu14.04安装 ROS 安装步骤和问题总结

    参考: 1.http://wiki.ros.org/indigo/Installation/Ubuntu 2.安装出现依赖库问题: https://answers.ros.org/question/3 ...

  4. Windows10中使用Anaconda安装keras-gpu版本(遇到的坑)

    1.使用conda install tensorflow-gpu 2.使用pip install keras 这里使用pip安装而不是使用conda,原因是使用conda安装会默认安装cpu版本的te ...

  5. [UE4]Static Mesh的碰撞体

    一.可以在3D建模的时候添加碰撞体,导入到UE4的时候,碰撞体也会跟着导入进来. 二.也可以在UE4中自行添加碰撞体 三.在UE4中添加编辑碰撞体 四.选择碰撞体可以移动.缩放.旋转碰撞体,如果模型比 ...

  6. 生成3位的序列号_仅仅CASE WHEN的简单应用

    PNo, , ) AS sn INTO #temp1 FROM tbl_test SELECT ), sn) ), sn) ), sn) END AS sn, PNo FROM #temp1

  7. [译] iOS 11.4.1 Beta:全新的USB限制模式

    (Source/原文链接 https://blog.elcomsoft.com/2018/06/ios-11-4-1-beta-usb-restricted-mode-has-arrived/) 作者 ...

  8. 编译ijkplayer后直播无声音

    打开:ijkplayer-android/config/module-lite.sh 文件: 你要把neyllow打开,默认是关闭的,如下: export COMMON_FF_CFG_FLAGS=&q ...

  9. JS和CSS交互的方法

    用JavaScript获取伪元素(pseudo-element)属性  var  color=window.getComputedStyle( document.querySelector('.ele ...

  10. lvs+keepalived+ipvsadm 完整搭建笔记

    原文:http://www.safecdn.cn/2018/12/lvs-keepalived-ipvsadm/ 1.环境介绍: 系统:centos 6.7 keepalived VIP1 :10.0 ...