suse12 redis-sensienl-keepalived双击热备部署

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

 

 

猜你喜欢

转载自blog.csdn.net/zilong230905/article/details/80379881