通过OCP安装OB报错 Unexpected error: dial tcp 127.0.0.1:2881: connect: connection refused

【 使用环境 】测试环境
【 OB or 其他组件 】OB 及OCP
【 使用版本 】OCP:版本号: 4.3.1-20240805192406, OB:oceanbase-ce-4.3.2.1
【问题描述】安装过程中卡死在 当前进度20/56步,报 如下错误:

2024-09-27 13:12:45.158 INFO 130543 — [manual-subtask-executor15,9972ce10079a1f9b,0418cb24e6367272] c.o.o.c.a.p.HostAgentProcessServiceImpl : Getting all OCP agent processes on host 4

2024-09-27 13:12:45.174 INFO 130543 — [manual-subtask-executor15,9972ce10079a1f9b,0418cb24e6367272] c.o.o.e.internal.template.HttpTemplate : POST request to agent, url:http://10.0.104.33:62888/api/v1/ob/observer/access, request body:AccessObServerProcessRequest(port=2881, username=root), params:null

2024-09-27 13:12:45.178 WARN 130543 — [manual-subtask-executor15,9972ce10079a1f9b,0418cb24e6367272] c.o.o.s.t.b.c.helper.ObServerTaskHelper : Failed to check observer accessible, reason:[AgentClient]:http request is failed, response:Unexpected error: dial tcp 127.0.0.1:2881: connect: connection refused, cause:null

2024-09-27 13:12:45.180 INFO 130543 — [manual-subtask-executor15,9972ce10079a1f9b,0418cb24e6367272] c.o.ocp.common.lang.pattern.Retry : wait for 5 seconds

2024-09-27 13:12:50.183 ERROR 130543 — [manual-subtask-executor15,9972ce10079a1f9b,0418cb24e6367272] c.o.ocp.core.util.ExceptionUtils : Checked Exception: com.oceanbase.ocp.core.exception.UnexpectedException occurred with code error.common.illegal.state, and args [not all ob server accessible]

2024-09-27 13:12:50.187 ERROR 130543 — [manual-subtask-executor15,9972ce10079a1f9b,0418cb24e6367272] c.o.o.c.t.e.c.w.subtask.SubtaskExecutor : not all ob server accessible

com.oceanbase.ocp.core.exception.UnexpectedException: [OCP UnexpectedException]: status=500 INTERNAL_SERVER_ERROR, errorCode=COMMON_ILLEGAL_STATE, args=not all ob server accessible
at com.oceanbase.ocp.core.i18n.ErrorCodes$Kind$10.exception(ErrorCodes.java:1698)
at com.oceanbase.ocp.core.i18n.ErrorCodes.exception(ErrorCodes.java:1553)
at com.oceanbase.ocp.core.util.ExceptionUtils.newException(ExceptionUtils.java:169)
at com.oceanbase.ocp.service.task.business.cluster.helper.ObServerTaskHelper.lambda$waitAllObServerAccessible$2(ObServerTaskHelper.java:43)
at com.oceanbase.ocp.common.lang.pattern.Retry.executeUntilWithLimit(Retry.java:93)
at com.oceanbase.ocp.service.task.business.cluster.helper.ObServerTaskHelper.waitAllObServerAccessible(ObServerTaskHelper.java:39)
at com.oceanbase.ocp.service.task.business.cluster.BootStrapObTask.run(BootStrapObTask.java:164)
at com.oceanbase.ocp.core.task.engine.runner.JavaSubtaskRunner.execute(JavaSubtaskRunner.java:64)
at com.oceanbase.ocp.core.task.engine.runner.JavaSubtaskRunner.doRun(JavaSubtaskRunner.java:32)
at com.oceanbase.ocp.core.task.engine.runner.JavaSubtaskRunner.run(JavaSubtaskRunner.java:26)
at com.oceanbase.ocp.core.task.engine.runner.RunnerFactory.doRun(RunnerFactory.java:76)
at com.oceanbase.ocp.core.task.engine.coordinator.worker.subtask.SubtaskExecutor.doRun(SubtaskExecutor.java:206)
at com.oceanbase.ocp.core.task.engine.coordinator.worker.subtask.SubtaskExecutor.redirectConsoleOutput(SubtaskExecutor.java:200)
at com.oceanbase.ocp.core.task.engine.coordinator.worker.subtask.SubtaskExecutor.lambda$submit$2(SubtaskExecutor.java:137)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.T
hread.run(Thread.java:748)

Set state for subtask: 2225, operation:EXECUTE, state: FAILED
【复现路径】无
【附件及日志】

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

3 个赞

根据您提供的日志信息,错误信息 “Unexpected error: dial tcp 127.0.0.1:2881: connect: connection refused” 表明 OCP 在尝试连接到 OBServer 的 2881 端口时遇到了问题。这通常意味着 OBServer 在该端口上没有运行或者网络配置存在问题。 [2]

为了排查这个问题,您可以按照以下步骤操作:

  1. 检查 OBServer 是否正常启动

    • 登录到 OBServer 所在的机器上,使用 ps aux | grep observer 命令检查 OBServer 是否正在运行。
    • 如果 OBServer 没有运行,尝试启动它。如果您使用的是 OCP 来管理集群,可以在 OCP 上执行相应的启动操作。如果是手动部署的集群,请参照您的部署文档来启动 OBServer。
  2. 验证端口监听状态

    • 在 OBServer 所在的机器上运行 netstat -tulnp | grep 2881 命令,确认 2881 端口是否被 OBServer 正确监听。
    • 如果 2881 端口没有被监听,请检查 OBServer 的配置文件,确保配置文件中指定了正确的监听端口。
  3. 检查网络配置

    • 确保 OBServer 和 OCP 之间的网络是连通的。您可以尝试从 OCP 所在的机器 ping OBServer 的 IP 地址,确认网络可达性。
    • 如果网络不通,请检查防火墙设置或路由配置,确保 OCP 能够访问到 OBServer 的 2881 端口。
  4. 查看 OBServer 日志

    • 查看 OBServer 的日志文件,通常位于 /home/admin/oceanbase/log 目录下,查找是否有与端口绑定或启动相关的错误信息。
    • 根据日志中的错误信息进一步定位问题原因。
  5. 检查 OCP 配置

    • 确认 OCP 中配置的 OBServer 地址和端口号是否正确。如果配置错误,OCP 无法成功连接到 OBServer。

如果以上步骤均未能解决问题,建议您联系 OceanBase 的技术支持团队,提供详细的日志信息以便进一步排查。 [4]

检索到的文档如下:

  1. 0001 ~ 3999
  2. 4000 ~ 4499
  3. vpc_connect_failed VPC 连接失败
  4. ob_cluster_status_check_failed OB 集群状态检测失败
4 个赞

observer.log (30.0 MB)

附上OB日志

2 个赞

感谢您上传了 observer.log 文件,不过由于这是一个二进制文件,我无法直接阅读其内容。不过,根据您之前遇到的问题以及我们讨论的方向,您可以关注 observer.log 中的一些关键信息来进一步诊断问题。以下是具体的建议:

  1. 查找启动信息

    • 查找 OBServer 启动时的日志条目,确认 OBServer 是否成功启动并开始监听端口。通常会有类似 OBServer started successfully 的信息。
  2. 检查端口绑定信息

    • 寻找关于端口绑定的日志信息,确认 OBServer 是否成功绑定了 2881 端口。如果绑定失败,日志中应该会有相应的错误信息。
  3. 查看网络连接相关日志

    • 关注任何与网络连接相关的日志条目,特别是那些涉及到 OCP 尝试连接 OBServer 的记录。如果连接失败,日志中可能会有更详细的错误描述。
  4. 错误信息定位

    • 仔细阅读日志中的错误信息,特别是那些发生在 OBServer 启动期间或与网络通信相关的错误。这些信息可以帮助您更好地理解问题所在。
  5. 日志级别调整

    • 如果日志中没有足够的信息来诊断问题,您可以考虑暂时将日志级别调整为更详细的级别(如 DEBUG),然后重新启动 OBServer 并重复之前的步骤,再次查看日志。

如果您在 observer.log 中找到了具体的错误信息,请分享这些信息,这样我们可以更准确地帮助您解决问题。如果日志中没有明显的错误信息,您可以尝试执行以下命令来检查 OBServer 的状态和端口监听情况:

# 检查 OBServer 进程
ps aux | grep observer

# 检查 2881 端口是否被监听
netstat -tulnp | grep 2881
``

希望这些建议能帮助您进一步排查问题。如果问题仍然无法解决,建议您联系 OceanBase 的技术支持团队获取更专业的帮助。

详情请参考:
1. [日志](https://github.com/oceanbase/oceanbase-doc/blob/V4.3.1/zh-CN/700.reference/100.oceanbase-database-concepts/1200.observer-node-architecture/400.log.md)
2. [max_syslog_file_count](https://github.com/oceanbase/oceanbase-doc/blob/V4.3.1/zh-CN/700.reference/800.configuration-items-and-system-variables/100.system-configuration-items/300.cluster-level-configuration-items/13300.max_syslog_file_count.md)
3. [enable_syslog_recycle](https://github.com/oceanbase/oceanbase-doc/blob/V4.3.1/zh-CN/700.reference/800.configuration-items-and-system-variables/100.system-configuration-items/300.cluster-level-configuration-items/9000.enable_syslog_recycle.md)
4. [使用 LOAD DATA 语句导入数据](https://github.com/oceanbase/oceanbase-doc/blob/V4.3.1/zh-CN/500.data-migration/700.migrate-data-from-csv-file-to-oceanbase-database/200.use-the-load-command-to-load-the-csv-data-file-to-the-oceanbase-database.md)
5. [全链路追踪概述](https://github.com/oceanbase/oceanbase-doc/blob/V4.3.1/zh-CN/600.manage/900.daily-inspection/900.full-link-detection/100.full-link-diagnosis-overview.md)
6. [ob_admin 简介](https://github.com/oceanbase/oceanbase-doc/blob/V4.3.1/zh-CN/700.reference/1500.Components-and-Tools/100.manage/200.ob-admin/100.overview-of-ob-admin.md)
7. [日志概述](https://github.com/oceanbase/oceanbase-doc/blob/V4.3.1/zh-CN/600.manage/800.logging/100.logging-overview.md)
8. [查看内存的使用信息](https://github.com/oceanbase/oceanbase-doc/blob/V4.3.1/zh-CN/700.reference/200.system-management/700.memory-management/800.view-memory-usage.md)

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

不要使用127.0.0.1 ip进行安装,你主机录入是怎么进行的

2 个赞

提供一下你当前ocp主机界面截图及ocp部署架构

2 个赞

当前ocp主机界面截图见上面

2 个赞


ocp 的拓扑图如上

2 个赞


主机录入方式参考上面图片

2 个赞

任务报错访问127.0.0.1失败。该ip是本地ip,其他机器是无法访问这个的ip的,查看下你搭建ob时候填写的ip是否都正确

2 个赞

我们没有在任何录入画面输入过 127.0.0.1 这个IP,输入都是 物理IP,如10.0.104.32、10.0.104.33、10.0.104.34

建议使用物理NIC的IP地址,而不是loopback口的地址

任务报错后有尝试重新执行该报错20/56任务么

我录入就是 物理NIC的IP地址(如 10.0.104.32、10.0.104.33、10.0.104.34),但OB启动时他就是要连接 127.0.0.1:2881 这个地址,请问如何才能修复?

有多次重试,每次都是报同样的错误信息

你的32 33 34不是已经存在集群了么。

暂时还不在,本次就是要在32、33、34 上安装 1:1:1 的集群。
目前ocp 里面的集群是ocp 自己的资料库的集群(他只有一台机器是 10.0.104.30),

截一下ocp页面的报错截图,看一下哪一边报错了

完整的cop中创建集群的日志.txt (331.8 KB)