obd web安装报错

【 使用环境 】测试环境
【 OB or 其他组件 】
【操作系统】CentOS 7.9
【 使用版本 】4.3.5.0
【问题描述】通过 obd web 进行图形化安装,一直卡在预检查
OBD-1013: root@192.168.1.100 connect failed: Error reading SSH protocol banner[Errno 104] Connection reset by peer

Traceback (most recent call last):
File “paramiko/transport.py”, line 2185, in run
File “paramiko/transport.py”, line 2373, in _check_banner
paramiko.ssh_exception.SSHException: Error reading SSH protocol banner[Errno 104] Connection reset by peer

【复现路径】修改了sshd_config 中 MaxStartups 100 参数重启sshd服务依然这样
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

@论坛小助手

根据文档库中的信息,您遇到的问题可能是由于SSH连接问题导致的。以下是一些可能的原因和解决办法:

错误原因:

  1. SSH服务配置问题:尽管您已经修改了sshd_config中的MaxStartups参数并重启了sshd服务,但可能存在其他SSH配置或防火墙设置阻止了连接。
  2. 网络问题:目标机器与执行obd命令的机器之间的网络连接不稳定或不通。
  3. SSH端口被占用:默认情况下,SSH使用22端口,如果该端口被其他服务占用,可能会导致连接失败。

解决办法:

1. 检查SSH服务状态

确保SSH服务正在运行并且没有错误:

systemctl status sshd

如果有任何错误信息,请根据提示进行修复。

2. 验证SSH配置

再次确认/etc/ssh/sshd_config文件中相关配置是否正确,并且没有其他限制性配置影响连接。除了MaxStartups外,还可以检查以下配置项:

  • PermitRootLogin yes(如果您是以root用户连接)
  • PasswordAuthentication yes(如果使用密码认证)

修改后记得重启SSH服务:

systemctl restart sshd

3. 测试SSH连接

从执行obd命令的机器上手动尝试通过SSH连接到目标机器,验证是否能正常登录:

ssh root@192.168.1.100

如果可以成功登录,则说明基本的SSH连接是正常的;如果仍然无法连接,请继续排查网络或防火墙设置。

4. 检查防火墙设置

确保防火墙允许SSH流量通过。您可以临时关闭防火墙来测试是否为防火墙引起的问题:

systemctl stop firewalld

或者添加规则允许SSH流量:

firewall-cmd --zone=public --add-port=22/tcp --permanent
firewall-cmd --reload

5. 确认网络连通性

使用ping命令测试两台机器之间的网络连通性:

ping 192.168.1.100

确保网络稳定且延迟合理。

6. 使用obd命令排除特定算法

如果上述步骤均无效,您可以尝试禁用某些可能导致兼容性问题的SSH算法:

obd env set OBD_DISABLE_RSA_ALGORITHMS 1

然后重新尝试图形化界面部署操作。

以上步骤应该能够帮助您解决OBD-1013错误。如果问题依旧存在,建议收集更多诊断信息,例如使用obdiag工具,并联系OceanBase的人工答疑以获取进一步支持。

详情请参考:

  1. 错误码
  2. OceanBase 安装部署工具 V1.6.0
  3. OceanBase 安装部署工具 V1.3.2
  4. 单机部署 OceanBase 数据库
  5. 常见问题汇总
  6. 使用 OCP 接管 obd 部署的集群
  7. 使用 obd 进行运维
1 个赞

先参考小助手提供的方法看看能否解决ssh问题

试了,还是不行,我在本机通过 ssh root@192.168.1.100 连了,是可以正常连接的。

既然您已经确认可以通过命令行SSH正常连接到目标机器,那么问题可能出在其他方面。接下来我们可以进一步排查和解决这个问题。

进一步排查步骤:

1. 检查obd日志

查看obd的日志文件,以获取更多详细的错误信息。通常日志文件位于~/.obd/log/目录下。您可以查看最新的日志文件,寻找任何与连接或认证相关的错误信息:

tail -f ~/.obd/log/*.log

2. 确认SSH密钥配置

确保obd使用的SSH密钥配置正确,并且公钥已正确添加到目标机器的authorized_keys文件中。根据文档中的建议(参考:设置无密码 SSH 登录),请检查以下几点:

  • 在中控机上运行以下命令查看密钥是否存在:
    ls ~/.ssh/id_rsa.pub
    
  • 如果密钥不存在,请生成新的SSH密钥对:
    ssh-keygen -t rsa
    
  • 将中控机的公钥复制到目标机器的authorized_keys文件中:
    ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.100
    

3. 验证obd配置

确保obd配置文件中指定的目标机器信息正确无误。您可以使用以下命令检查当前配置:

obd cluster display

确保IP地址、用户名等信息与实际环境匹配。

4. 测试obd命令行安装

尝试使用obd命令行工具进行安装,排除是否为web界面特有的问题:

obd cluster deploy <cluster_name> -c <config_file>

如果命令行安装成功,则可能是web界面存在某些特定问题。

5. 检查SELinux设置

根据文档(参考:关闭 SELinux),确保SELinux不会干扰SSH连接。您可以临时禁用SELinux来测试:

setenforce 0

然后再次尝试通过obd web进行图形化安装。如果禁用SELinux后问题解决,可以考虑永久修改SELinux配置:

vi /etc/selinux/config

SELINUX=enforcing改为SELINUX=permissiveSELINUX=disabled,并重启服务器使更改生效。

6. 检查obd版本兼容性

确保您使用的obd版本与OceanBase版本兼容。虽然您提到的是4.3.5.0版本,但仍然建议检查是否有更新版本可用,或者确认该版本是否已知存在相关bug。

7. 使用obd debug模式

启用obd的调试模式,获取更详细的日志输出:

export OBD_LOG_LEVEL=DEBUG

然后重新尝试图形化安装,查看是否有更多有用的错误信息。

总结

通过以上步骤,我们应该能够进一步缩小问题范围并找到解决方案。如果经过这些检查后问题仍然无法解决,建议收集所有相关日志信息,并联系OceanBase的人工答疑以获取更多帮助。基于我的内在知识,可能的解答是网络配置或系统安全设置导致了obd web界面的SSH连接失败,而命令行SSH连接正常。希望这些建议能帮到您。

检索到的文档如下:

  1. 发起租户恢复
  2. 查看租户恢复
  3. (可选)设置无密码 SSH 登录
  4. 取消租户恢复
  5. (可选)关闭防火墙和 SELinux
  6. 解锁租户
  7. 锁定租户
  8. 修改租户配置项
  9. 修改租户访问白名单

(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)

1 个赞

问题解决了,找到原因了。
通过ssh -v root@192.168.1.100 连接发现连接被拒绝。
是因为在 /etc/hosts.allow 文件中没有192.168.1.100所以自己连自己失败了
感谢,感谢

2 个赞

谢谢大佬,问题解决了

自己采纳自己的回答,积分没有给呢

不给积分的,防止部分用户刷分

准备发布第二个问题,才发现积分没有。

请问,我observer的进程被系统Kill了,我该怎么手动启动observer 呢,就是2881这个端口对应的进程

提个普通的帖子就可以,使用 obd cluster start xxxx即可。或者黑屏启动 ./bin/observer -o ‘(可选)指定参数’

2 个赞

好的,谢谢,我单独去发个贴