Redis之Sentinel高可用安装部署
2017-02-23 00:48
573 查看
背景:
之前通过Redis Sentinel 高可用实现说明和Redis 复制、Sentinel的搭建和原理说明大致已经介绍了sentinel的原理和实现,本文再次做个简单的回顾,具体的信息见前面的两篇文章说明。本文要实现的sentinel是通过2个redis数据节点和3个sentinel节点来达到高可用,目标是希望标准化Sentinel的安装部署。环境:
Redis版本:Redis-3.2.8系统版本:Ubuntu 14.04
服务器 :192.168.1.55,192.168.1.56,192.168.1.57;55/56包含redis和sentinel节点,57只有sentinel节点,初始化设置55为Master。
安装(规范化):
源码安装需要安装依赖包:apt-get install make gcc tcl下载:
wget http://download.redis.io/releases/redis-3.2.8.tar.gz[/code]
安装:1: 解压到/usr/local/src 目录:放源码包 root@redis1:/usr/local/src# tar zxvf redis-3.2.8.tar.gz root@redis1:/usr/local/src# ls -lh drwxrwxr-x 6 root root 4.0K 2月 22 15:01 redis-3.2.8 2:创建目录:/usr/local/redis,编译安装到目录/usr/local/redis/ --放执行文件 make PREFIX=/usr/local/redis install 3:程序做软连接到bin目录,方便直接执行 ln -s /usr/local/redis/bin/redis-cli /usr/local/bin/redis-cli ln -s /usr/local/redis/bin/redis-sentinel /usr/local/bin/redis-sentinel ln -s /usr/local/redis/bin/redis-server /usr/local/bin/redis-server
配置:1:复制配置文件,在源码包里有sentinel.conf和redis.conf文件,复制到/etc/redis/目录下,如果有多个实例,建议改名,如本实例用的redis端口是7021,sentinel是17021: cp /usr/local/src/redis-3.2.8/redis.conf /etc/redis/redis_7021.conf cp /usr/local/src/redis-3.2.8/sentinel.conf /etc/redis/sentinel_17021.conf 后面会给出该配置文件的相关参数 2:做成一个服务,在源码包里的utils目录下的redis_init_script文件复制到/etc/init.d/下,并且改名成redis,以后就可以通过这个程序进行关闭和开启了。 cp /usr/local/src/redis-3.2.8/utils/redis_init_script /etc/init.d/redis 3:修改/etc/init.d/redis文件(后面会给出redis程序的代码),使得开启和关闭,以及关闭的时候需要输入密码(假设redis需要认证)。
redis_7021.conf信息:mkdir /var/run/redis/ mkdir /var/log/redis/ mkdir /var/lib/redis_7021 mkdir /var/lib/sentinel_17021
View Code
到此单机(1.55)上的redis和sentinel已经安装完成,接着就可以开启服务了。
[b]开启、关闭服务
[/b]
①:切勿用root账号开启服务,因为redis很容易对服务器进行进行root账号的提取,具体重现可以看利用Redis对linux服务器root提权。所以现在需要设置一个专门的账号来启动,并且对相关目录进行授权。1:添加一个用户 useradd redis 2:对配置文件里的相关目录进行授权 chown -R redis.redis /var/lib/redis_7021/ chown -R redis.redis /var/lib/sentinel_17021 chown -R redis.redis /var/log/redis/ chown -R redis.redis /var/run/redis/ chown -R redis.redis /etc/redis/
②:开启和关闭服务1:redis 开启、关闭 root@redis1:~# /etc/init.d/redis start Starting Redis server... root@redis1:~# /etc/init.d/redis stop passwd: ********************* Stopping ... Redis stopped 2:sentinel 开启、关闭 root@redis1:~# su redis -c "redis-sentinel /etc/redis/sentinel_17021.conf" root@redis2:~# redis-cli -h 192.168.1.55 -p 17021 192.168.1.55:17021>REDIS_SHUTDOWN 3:通过ps查看这些进程是否都是通过redis用户运行。
③:若sentinel进程用另一个账号的话,(进一步防止redis用户修改sentinel的文件),则需要useradd sentinel chown -R sentinel.sentinel /var/lib/sentinel_17021 chown root.root /etc/redis/ chown -R sentinel.sentinel /etc/redis/sentinel_17021.conf chmod 664 /etc/redis/sentinel_17021.conf chgrp sentinel /var/log/redis/ chmod 775 /var/log/redis/ #删除日志文件或则执行下面2步骤 #chown -R sentinel.sentinel /var/log/redis/sentinel_17021.log #chmod 664 /var/log/redis/sentinel_17021.log #如果配置了脚本,也需要修改权限 chgrp sentinel /opt/bin/notify.py
这样设置了之后,开启redis不变,开启sentine需要执行:su sentinel -c "redis-sentinel /etc/redis/sentinel_17021.conf"
关闭他们的方法不变。
到此,redis和sentinel在一台机器(1.55)上已经安装完成。另一台机器(1.56)按照上面的方法完全执行一次即可,最后一台(1.57)只要按照上面装好sentinel即可。redis_7021.conf注意相关参数(IP)的修改,sentinel_17021完全不需要修改。这里需要注意的是:sentinel需要在55和56做好主从之后才能开启,即:在56上执行slaveof,搭建好主从之后,再开启3个sentinel监控服务,一个高可用的(主从自动切换)搭建完成。可以通过在master上执行debug sleep命令来模拟故障转移,来测试sentinel故障转移是否搭建成功:debug sleep 30
如果上面搭建有问题或则想知道sentinel运行的原理,可以参考上面给出的两篇文章。总结:
本文规范了编译安装redis的方式,方便后期管理和使用,sentinel主要的细节还是要看Redis Sentinel 高可用实现说明和Redis 复制、Sentinel的搭建和原理说明。后续计划介绍一下redis cluster的部署、安装、维护等相关说明,先留个坑。
相关文章推荐
- Redis之Sentinel高可用安装部署
- redis部署及其高可用方案:主从+sentinel,安装步骤
- Redis Sentinel安装与部署,实现redis的高可用
- Redis Sentinel安装部署与常用操作
- Redis Sentinel安装与部署,实现redis的高可用
- CentOS 7.3 Sentinel实现Redis集群高可用部署
- 使用Docker Compose部署基于Sentinel的高可用Redis集群
- Redis——windows环境安装redis和redis sentinel部署
- 使用Docker Compose部署基于Sentinel的高可用Redis集群
- redis-sentinel安装部署
- Redis(Sentinel)监控集群安装部署
- redis-3.2.8-Sentinel集群安装和部署
- 使用Docker Compose部署基于Sentinel的高可用Redis集群
- Redis——windows环境安装Redis和Redis sentinel部署教程
- Redis 3.0.7基于Sentinel的高可用安装及配置
- redis的安装配置及其基于sentinel的redis集群高可用方案
- Redis Sentinel——安装部署
- Redis2.8.6的Master/Slave/Sentinel安装及配置文件说明
- Redis的安装部署
- redis自动安装部署