SuperMap iServer结合Keepalived实现高可用部署——常见问题及解决办法

前言

在GIS服务架构中,保障服务的高可用性始终是系统设计的核心诉求之一。SuperMap iServer可结合Keepalived实现高可用部署,具体流程可见:SuperMap iServer 结合Keepalived实现高可用部署_超图计算服务 iserver-CSDN博客

在实际部署过程中会遇到一些问题,本文将需要注意的常见问题梳理总结如下,方便大家进行排查。

一、监测脚本的编写

1、在主从服务器上分别编写监测服务及重启脚本checkIServer.sh,保存到/etc/keepalived目录。用 touch checkIServer.sh 命令来创建脚本,用 vim checkIServer.sh 命令来编写脚本:

注意:其中主节点和从节点脚本内容的区别为最后几行,需要分别设置为各服务器的iServer启动目录。

2、赋予脚本可执行权限:chmod +x /etc/keepalived/checkIServer.sh

二、keepalived.conf 的修改

在主从服务器上分别编辑/etc/keepalived下的keepalived.conf配置文件:

注意:

1、主节点和从节点的 router_id 不能一致。

2、主节点和从节点的网络接口 interface 不要设置错了,可通过 ifconfig 命令查看:

3、主节点和从节点的虚拟IP地址 virtual_ipaddress 要保持一致,并且虚拟IP前三位要设置为同网段,局域网内才可访问。

三、常见报错及解决办法

1、报错:WARNING - default user 'keepalived_script' for script execution does not exist - please create.和 SECURITY VIOLATION - scripts are being executed but script_security not enabled.

报错指出用于脚本执行的默认用户不存在且 script_security 未启用。

解决方案:是向 global_defs 段添加 script_user 和 enable_script_security 配置,指定脚本执行用户并开启安全检查,然后重启Keepalived服务。

global_defs {
   router_id MY_ROUTER1  # router_id 主从服务器不能一致
   script_user root
   enable_script_security
}

2、报错:/etc/keepalived/checkIServer.sh exited with status 1

执行 checkIServer.sh 脚本时,返回了错误代码 1,表示脚本执行失败。

解决方案:查看系统日志

tail -f /var/log/syslog (适用于大多数 Debian/Ubuntu 系统)
tail -f /var/log/messages (适用于大多数 RedHat/CentOS 系统)

日志显示:SELinux is preventing /usr/bin/bash from write access on the file iserverStatus.log.

SELinux is preventing sh from getattr access on the file /usr/bin/sudo.

说明是 SELinux 安全策略阻止了脚本对系统文件的访问,可通过设置 SELinux 策略模块或者临时禁用 SELinux 解决。

3、主从节点网络互通,主节点访问虚拟ip:8090正常,从节点访问虚拟ip:8090报错:

The connection has timed out

解决方案:确保 keepalived.conf 中主节点和从节点的 virtual_ipaddress 设置一致,并且 virtual_ipaddress 的前三位与主从服务器IP的前三位一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值