Redis + keepalived 高可用行配置检测脚本
Redis 在生产配置中;除redis集群、哨兵模式之外;主从模式还是比较普遍的。
配置 redis 多主从;由 keepalived 做 VIP 地址漂移。可以实现redis的高可用性。
keepalived 配置示例;(master 主节点配置,backup根据更改就可以了。)
! Configuration File for keepalived
global_defs {
router_id redis1
} vrrp_script chk_redis
{
script "/etc/keepalived/scripts/redis_check.sh"
interval
timeout
fall
rise
} vrrp_instance redis {
state MASTER
interface eth0
virtual_router_id
priority
advert_int
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
172.16.2.36/
}
track_script {
chk_redis
}
notify_master "/etc/keepalived/scripts/redis_master.sh"
notify_backup "/etc/keepalived/scripts/redis_backup.sh"
notify_fault "/etc/keepalived/scripts/redis_fault.sh"
notify_stop "/etc/keepalived/scripts/redis_stop.sh"
}
Redis 状态检测脚本。
redis_check Redis 状态检测;
#!/bin/bash
ports=(6379 6389 6399)
port_num=${#ports[@]}
pong_num=
LOGFILE="/opt/keepalived/keepalived-redis-check.log"
echo '-----------------' >> $LOGFILE for port in ${ports[*]}
do
if [ $port -eq ] ;then
ALIVE=`/usr/bin/redis-cli -p $port -h 172.16.2.56 -a tkfJfnMjvniitHDG PING`
else
ALIVE=`/usr/bin/redis-cli -p $port -h 172.16.2.56 -a ffdca1b6f2d4c6d4 PING`
fi
echo "[CHECK]" >> $LOGFILE
date >> $LOGFILE
if [ "$ALIVE" == "PONG" ];then
pong_num=$[$pong_num+]
echo "Success: redis-cli -p $port PING $ALIVE" >> $LOGFILE >&
else
echo "Failed:redis-cli -p $port PING $ALIVE " >> $LOGFILE >&
fi
done if [ $port_num -eq $pong_num ];then
echo "check is ok" >> $LOGFILE
exit
else
echo "check is error" >> $LOGFILE
exit
fi
master 检测;
#!/bin/bash
ports=( )
port_num=${#ports[@]}
LOGFILE="/opt/keepalived/keepalived-redis-state.log"
echo '-------------' >> $LOGFILE
for port in ${ports[*]}
do
echo "[master]" >> $LOGFILE
date >> $LOGFILE
echo "Being master...." >> $LOGFILE >&
echo "Run MASTER cmd ..." >> $LOGFILE >&
echo "Run -p $port SLAVEOF NO ONE cmd ..." >> $LOGFILE
if [ $port -eq ];then
/usr/bin/redis-cli -h 172.16.2.56 -a -p $port slaveof no one >> $LOGFILE >&
else
/usr/bin/redis-cli -h 172.16.2.56 -a -p $port slaveof no one >> $LOGFILE >&
fi
done
backup 检测;
#!/bin/bash
ports=( )
port_num=${#ports[@]}
LOGFILE="/opt/keepalived/keepalived-redis-state.log"
other_ip="172.16.2.57"
echo '----------------' >> $LOGFILE
for port in ${ports[*]}
do
echo "[backup]" >> $LOGFILE
date >> $LOGFILE
echo "Being backup...." >> $LOGFILE >&
echo "Run BACKUP cmd ..." >> $LOGFILE >&
echo "Run -p $port SLAVEOF $other_ip cmd ..." >> $LOGFILE
if [ $port -eq ];then
/usr/bin/redis-cli -h 172.16.2.56 -p $port -a slaveof $other_ip $port >> $LOGFILE >&
else
/usr/bin/redis-cli -h 172.16.2.56 -p $port -a slaveof $other_ip $port >> $LOGFILE >&
fi
done
redis_fault 服务错误检测;
#!/bin/bash
LOGFILE=/opt/keepalived/keepalived-redis-state.log
echo "[fault]" >> $LOGFILE
date >> $LOGFILE
redis 服务停止检测;
#!/bin/bash
LOGFILE=/opt/keepalived/keepalived-redis-state.log
echo "[stop]" >> $LOGFILE
date >> $LOGFILE
Redis + keepalived 高可用行配置检测脚本的更多相关文章
- Redis+Keepalived高可用方案详细分析
背景 目前,Redis集群的官方方案还处在开发测试中,未集成到稳定版中.且目前官方开发中的Redis Cluster提供的功能尚不完善(可参考官方网站或http://www.redisdoc.com/ ...
- Redis + keepalived 高可用群集搭建
本次实验环境介绍: 操作系统: Centos 7.3 IP : 192.168.10.10 Centos 7.3 IP : 192.168.10.20 VIP 地址 : 192.168.1 ...
- Redis+Keepalived高可用环境部署记录
Keepalived 实现VRRP(虚拟路由冗余)协议,从路由级别实现VIP切换,可以完全避免类似heartbeat脑裂问题,可以很好的实现主从.主备.互备方案,尤其是无状态业务,有状态业务就需要额外 ...
- 干货 | Keepalived高可用服务配置实例
一个执着于技术的公众号 Keepalived系列导读 Keepalived入门学习 keepalived安装及配置文件详解 前言 在前面的章节中,我们学习了Keepalived简介.原理.以及Keep ...
- Haproxy+keepalived高可用集群实战
1.1 Haproxy+keepalived高可用集群实战 随着互联网火热的发展,开源负载均衡器的大量的应用,企业主流软件负载均衡如LVS.Haproxy.Nginx等,各方面性能不亚于硬件负载均衡 ...
- redis-3.0.1 sentinel 主从高可用 详细配置
最近项目上线部署,要求redis作高可用,由于redis cluster还不是特别成熟,就选择了redis sentinel做高可用.redis本身有replication,实现主从备份.结合sent ...
- 22.LVS+Keepalived 高可用群集
LVS+Keepalived 高可用群集 目录 LVS+Keepalived 高可用群集 keepalived工具介绍 Keepalived实现原理剖析 VRRP(虚拟路由冗余协议) VRRP 相关术 ...
- 基于keepalived对redis做高可用配置---转载
关于keepalived的详细介绍,请移步本人相关博客:http://wangfeng7399.blog.51cto.com/3518031/1405785 功能 ip地址 安装软件 主redis 1 ...
- Nginx反向代理,负载均衡,redis session共享,keepalived高可用
相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此 ...
随机推荐
- 20165223 结对编程之四则运算week1-阶段性总结
目录 一.结对对象 二.需求分析 三.设计思路 四.功能截图 五.结对感受 一.结对对象 担任角色 驾驶员(Driver):20165223 蔡霓(是控制键盘输入的人) 领航员(Navigator): ...
- thinkphp5中__PUBLIC__的使用
在使用thinkphp5.1开发的时候遇到设置__PUBLIC__无法生效的问题.这次的版本升级有比较大的改动,很多写法已经被更改,下面说下怎么去解决这个问题. 工具/原料 phpstorm ln ...
- php 写斐波那契数列
<?php $arr = []; for($i=1;$i<9;$i++){ if($i==1 || $i ==2){ $arr[$i-1] = 1; }else{ $arr[$i-1] = ...
- codevs 2606 约数和(分块优化数学公式 )
题目背景 Smart最近沉迷于对约数的研究中. 题目描述 对于一个数X,函数f(X)表示X所有约数的和.例如:f(6)=1+2+3+6=12.对于一个X,Smart可以很快的算出f(X).现在的问题是 ...
- 洛谷P3195 玩具装箱
P3195 [HNOI2008]玩具装箱TOY 第一道斜率优化题. 首先一个基本的状态转移方程是 要使f[i]最小,即b最小. 对于每个j,可以表示为一个点. 然后我们取固定斜率时截距最小的即可,高中 ...
- 【洛谷P4144】大河的序列
题目大意:给定一个长度为 N 的序列,求序列中连续区间最大的(或和加与和)是多少. 题解: 引理:任意两个数 \(i, j\),若 \(i>j\),则在二进制表示下,i 对应的二进制串的字典序一 ...
- free(): invalid next size (fast): 0x000000xxx
记录一次错误,一开始看到这个错误,第一反应是不是释放了两次,后来检测绝对没有,然后又检查了下是不是new/malloc和delete/free没配对, 发现也不是,最后是发现new[x]中x是0的缘故 ...
- 2018.12.14 浪在ACM 集训队第九次测试赛
浪在ACM 集训队第九次测试赛 B Battleship E Masha and two friends B 传送门 题意: 战船上有占地n*n的房间cells[][],只由当cells[i][j]= ...
- 1053. Path of Equal Weight (30)
Given a non-empty tree with root R, and with weight Wi assigned to each tree node Ti. The weight of ...
- REST_返回形式
摘录: "Web resources" were first defined on the World Wide Web as documents or files identif ...