1. 部署环境
本次部署环境为suse12,部署方式为离线部署
2. 软件版本
软件版本为redis-3.0.5,keepalived-1.3.6,
依赖包有
libopenssl-devel-1.0.1i-18.1.x86_64.rpm,zlib-devel-1.2.8-8.1.x86_64.rpm
3. 部署过程
部署过程参考,《利用redis-sentinel+keepalived实现redis高可用》,由于环境与版本不一致,出现很多问题,记录如下。
4. 安装中遇到问题与解决方法
安装keepalived,
config时报错
openssl/ssl.h usability... no
configure: error:
!!! OpenSSL is not properly installed on your system. !!!
!!! Can not include OpenSSL headers files. !!!
解决方法:
在suse12系统中,安装如图所示的依赖包
make时报错
安装keepalive错误:types.h:14: error: conflicting types for ‘fd_set’
解决方法
keepalived软件版本由keepalived-1.2.19换成了keepalived-1.3.6问题解决
5. 注意
配置文件keepalived.conf中,网卡一定要和本机网卡device一致
6. 验证方式
验证切换:
使用ip add sh命令查看,在主的上面可看到虚拟ip
在主服务器上,打开终端,停掉redis节点server服务
killall redis-server && ps -ef | grep redis
VIP会自动切换到备用的上面去。
7. 参考
利用redis-sentinel+keepalived实现redis高可用
http://blog.51cto.com/dgd2010/1742766
keepalived简单快速配置
http://blog.51cto.com/afterdawn/1888682
suse软件依赖包下载网站
https://opensuse.pkgs.org/
8. 验证与问题解决
通过查看keepalived日志方式,查找与定位问题并寻找解决方法。keepalived日志/var/log/messagesb报错如下
错误1
2018-05-15T05:35:59.146150+00:00 linux-lyu5Keepalived_vrrp[23709]: WARNING - default user 'keepalived_script' for scriptexecution does not exist - please create.
解决方法vrrp_script脚本加上用户名,使用root用户登录,则配置如下
vrrp_script chk_http_port {
script "/usr/bin/killall -0 sshd"
interval 1
timeout 2
fall 2
rise 1
user root
}
错误2
2018-05-15T05:32:31.255693+00:00 linux-lyu5Keepalived_vrrp[19961]: SECURITY VIOLATION - scripts are being executed butscript_security not enabled.
解决方法global_defs配置增加enable_script_security配置
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost
}
notification_email_from keepalived@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 10
router_id keepalivedha_1
enable_script_security
}
错误3
2018-05-15T05:44:49.321551+00:00 linux-lyu5Keepalived_vrrp[722]: Script redis-cli cannot be accessed - No such file ordirectory
解决方法vrrp_script脚本中,配置redis-cli的全路径
vrrp_script chk_http_port {
script"/usr/local/sbin/redis-cli info | grep role:master >/dev/null2>&1"
interval 1
timeout 2
fall 2
rise 1
user root
}
9. 常用命令
配置keepalived的配置文件
vim /etc/keepalived/keepalived.conf
keepalived.conf 配置例子
vim keepalived.conf.vrrp.localcheck
停掉redis节点server服务
killall redis-server && ps -ef | grep redis
停止与启动keepalived
service keepalived stop
service keepalived start
查看虚拟ip
ip add sh
验证redis服务是否切换
redis-cli -h 10.24.244.51 -p 6379 get a
keepalived.conf配置文件中监听服务例子
</dev/tcp/127.0.0.1/8081