obd安装报错,obshell连接obagent返回401

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】使用的是oceanbase-all-in-one-4.3.5_20250115.el7.aarch64.tar.gz安装包
【问题描述】obd cluster start报错obshell连接obagent返回401认证失败报错
【复现路径】问题出现前后相关操作
【附件及日志】
[2025-07-31 11:02:53.162] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR] Traceback (most recent call last):
[2025-07-31 11:02:53.162] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR] File “core.py”, line 2090, in start_cluster
[2025-07-31 11:02:53.162] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR] File “core.py”, line 2140, in _start_cluster
[2025-07-31 11:02:53.162] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR] File “core.py”, line 228, in run_workflow
[2025-07-31 11:02:53.162] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR] File “core.py”, line 270, in run_plugin_template
[2025-07-31 11:02:53.162] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR] File “core.py”, line 315, in call_plugin
[2025-07-31 11:02:53.162] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR] File “_plugin.py”, line 347, in call
[2025-07-31 11:02:53.162] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR] File “_plugin.py”, line 304, in _new_func
[2025-07-31 11:02:53.162] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR] File “/root/.obd/plugins/oceanbase-ce/4.2.1.4/obshell_bootstrap.py”, line 54, in obshell_bootstrap
[2025-07-31 11:02:53.162] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR] client.v1.wait_dag_succeed(dag.generic_id)
[2025-07-31 11:02:53.162] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR] File “/usr/obd/lib/site-packages/obshell/service/client_v1.py”, line 1045, in wait_dag_succeed
[2025-07-31 11:02:53.162] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR] raise TaskExecuteFailedError(f"{logs}", dag)
[2025-07-31 11:02:53.162] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR] obshell.service.client_v1.TaskExecuteFailedError: Task ‘Take over’ execution failed: 10.168.206.220:2886 ERROR: request /rpc/v1/agent/update failed: &{false 2025-07-31 11:02:49.72424908 +0800 CST 0 401 9f673170be780506 {Code:10008, Message:Verification failed}}
[2025-07-31 11:02:53.162] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR]
[2025-07-31 11:02:53.162] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR]
[2025-07-31 11:02:53.227] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR] obshell bootstrap failed: Task ‘Take over’ execution failed: 10.168.206.220:2886 ERROR: request /rpc/v1/agent/update failed: &{false 2025-07-31 11:02:49.72424908 +0800 CST 0 401 9f673170be780506 {Code:10008, Message:Verification failed}}
[2025-07-31 11:02:53.227] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR]

obagent? 你部署的是有ocp-express组件么。当前该组件已经不进行维护了

是的,我通过oceanbase-all-in-one去部署的oceanbase集群,其中有这个组件

我想请问下我用obshell进行备份它提示我agent身份不对,但是我show出来身份是没问题的,这个该怎么解决

这个不太容易确定,ocp-express组件已经不进行维护与之相关的obagent也同样。
建议你删掉这两个组件或者考虑部署ocp产品

可是obshell操作集群好像需要通过obagent,而且我关掉之后使用命令obd cluster display obcluster会说缺少obagent组件

看你的报错是在拉起 obshell 时,对 ob 集群进行接管时出现了问题,报错和 obagent 无关,麻烦在 10.168.206.222 上执行 ./bin/obshell task show, 可以看到接管任务的失败原因。
如果可以的话,麻烦上传 10.168.206.222 的 obshell 日志,打包 log_obshell 目录即可。

你好,下面是我运行的结果和日志


client.log (4.6 KB)
daemon.log (3.9 KB)
obshell.log (666.2 KB)
obshell.out.log (105.3 KB)

可以先尝试重试这个任务,通过 obshell task retry -i $id

方便的话另外两个节点的 obshell 日志也上传一下吧

这是我220的日志
client.log (27.4 KB)
daemon.log (33.9 KB)
obshell.log (2.1 MB)
obshell.out.log (630.5 KB)

这是我221的日志
client.log (4.2 KB)
daemon.log (9.3 KB)
obshell.log (14.1 MB)
obshell.out.log (1.7 MB)

我刚刚重试了,还是运行失败了

找到原因了, 验证信息过期了。


obshell 中,http 请求校验信息的默认过期时间是1s。
可以通过 obshell 的本地数据库中(在工作目录下有个隐藏文件 .meta,是一个 sqlite),设置超时时间,如下

设置完成之后重启 节点222 上的 obshell 进程即可(通过 kill -9 终止对应的 obshell server 进程,obshell daemon 进程会自动将其拉起)。
重启完成之后,在 通过 obshell task retry 重试任务应该就可以了。

另外,集群中的节点通信时间超过1s也不太正常,可以通过 clockdiff 看看两台机器的时间差

重试了还是不行,3台服务器时间差的最大值在1.9s,是这个影响了吗

应该是的,重试了还是不可以吗?那可以再发一下 220 的日志么

client.log (36.1 KB)
daemon.log (35.1 KB)
obshell.log (2.2 MB)
obshell.out.log (674.2 KB)

还是不行的话,那还是建议做一下时钟同步,当然有一些其他的方法可以把这个问题绕过,但后续可能还会因为时钟不同步的问题导致 obshell 操作错误。

好的,谢谢