KingbaseES集群节点间sys_securecmd服务通信失败故障排查

本案例现场节点间不能通过ssh通信,不能使用图形化。

问题描述

部署集群过程中执行cluster_install.sh脚本提示在node1上不能通过securecmd服务连接node2

分析过程

检查互信

检查互信,分别的集群各个节点执行,返回对应账号则验证成功。

复制代码
cd /home/kingbase/cluster/kingbase/bin/
./sys_securecmd root@192.168.50.94 'whoami'       #在1节点执行  正常
./sys_securecmd kingbase@192.168.50.94 'whoami'  #在1节点执行  需要输入密码
./sys_securecmd root@192.168.50.93 'whoami'       #在2节点执行  正常
./sys_securecmd kingbase@192.168.50.93 'whoami'  #在2节点执行   正常

192.168.50.93上面kingbase用户互信配置有问题,正常不需要输入密码

查看sys_securecmd服务进程

服务运行正常,且是root用户下运行

检查网络

网络也是通的

检查密码是否过期

chage -l kingbase 用户也未过期

检查权限

发现192.168.50.94上面集群安装目录属主属组变成了root用户,时间关系未截图。

解决办法

推测是192.168.50.94解压db.zip时未切换用户直接使用了root用户操作,操作后未修改权限导致。

将192.168.50.94上面集群安装目录属主属组改成kingbase后再次通过sys_securecmd服务kingbase访问免密验证通过,且集群部署成功

复制代码
chown -R kingbase:kingbase /home/kingbase/cluster
chmod -R 775  /home/kingbase/cluster

补充:sys_securecmd服务介绍

sys_securecmd 不是一种标准的网络协议(如 TCP 或 HTTP),而是**金仓数据库 KingbaseES 集群自带的一个安全远程执行命令行工具。**可以理解为 KingbaseES 为集群管理而定制的、一个更安全的"内部版 SSH"。

核心构成

它是一个典型的 C/S(客户端/服务器)架构工具,包含以下几个关键部分:

|----------|------------------|----------------------------------------------|
| 组件 | 对应文件 | 说明 |
| 服务端 | sys_securecmdd | 在每个集群节点后台运行的守护进程,默认监听 8890 端口,负责接收并执行命令。 |
| 客户端 | sys_securecmd | 用于发起连接的客户端工具,集群管理组件(如 repmgr )通过它向服务端发送指令。 |
| 辅助脚本 | sys_HAscmdd.sh | 负责启动、停止服务,以及关键的密钥协商和初始化工作 |

核心功能:集群内部的安全通道

sys_securecmd 的核心价值在于为 KingbaseES 集群节点间提供安全、加密的通信通道。它的主要用途和特点包括:

  • 集群管理通信:在部署、监控、故障转移等场景下,替代传统的 SSH,作为集群内部节点间执行命令、传输数据的主要方式。
  • 安全保障:与 SSH 类似,它通过网络加密和认证机制来保护通信安全,防止在网络传输过程中被窃听或篡改。
  • 内置与便捷:作为数据库自带的工具,它简化了集群配置。在图形化部署时,可以方便地启用它来管理节点间的通讯,避免了对操作系统 SSH 配置的过度依赖。

sys_securecmd 在集群中的分工

  1. 启动 (拉起服务) :手动在每个节点上执行命令,启动 sys_securecmdd 服务。
  2. 接管 (内部通信) :一旦 sys_securecmdd 服务成功运行,后续的所有集群管理命令(如状态查询、主备切换)都会通过 sys_securecmd 客户端与 sys_securecmdd 服务端进行加密通信。

集群配置文件中的 deploy_by_sshduse_scmd 两个参数,就精确地控制了这个流程。

总结

简单来说,sys_securecmd 就是 KingbaseES 集群内部的"专用通信兵"。它基于自定义的安全协议(基于 TCP 端口 8890)工作,为数据库集群的管理提供了安全、集成、高效的通信解决方案。

相关推荐
Theo·Chan2 天前
机房断电搞崩服务器 | 人大金仓 V8 全量备份跨实例完整恢复实录
sql·信创·kingbase·金仓
倔强的石头1065 天前
kingbase备份与恢复实战(七)—— 恢复演练与验收:从“能恢复”到“可交付预案”
kingbase
jcbut10 天前
在Linux上安装Kingbase 9
linux·kingbase·人大金仓·电科金仓
betazhou15 天前
电科金仓数据库V9 MySQL兼容版本搭建一主一从体验
数据库·mysql·oracle·主从·高可用·kingbase·v9 mysql兼容版本
betazhou18 天前
电科金仓数据库V9版本Linux版本安装体验
linux·数据库·python·kingbase·电科金仓
倔强的石头1062 个月前
kingbase备份与恢复实战(四)—— Windows物理备份:停库冷备拷贝数据目录与恢复拉起
windows·kingbase
倔强的石头1062 个月前
数据库行标识符机制探究:OID、ROWID与自增主键的实现与应用
数据库·oracle·kingbase
倔强的石头1062 个月前
kingbase备份与恢复实战(三)—— 表-模式级备份与误删表精准恢复(sys_dump+sys_restore)
数据库·kingbase
执笔为剑2 个月前
利用逻辑备份修复误操作的库
数据库·kingbase