oceanbase 白屏部署提示failed to start component: ocp-express

【 使用环境 】麒麟V10
【 OB or 其他组件 】OB
【 使用版本 】4.2.1.9
【问题描述】使用obd web白屏部署最部署阶段,提示failed to start component: ocp-express
【复现路径】



error.txt (7.6 KB)

【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

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

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

根据文档库中的信息,您可以尝试以下几个步骤来排查和解决“failed to start component: ocp-express”的问题:

  1. 检查 OBAgent 版本

    • 确保 OBAgent 的版本不低于 V1.3.0。如果 OBAgent 版本低于 V1.3.0,您需要升级 OBAgent。 [3]
    • 升级 OBAgent 的命令如下:
      # 查看 OBAgent 的 hash 值
      obd mirror list oceanbase.community.stable | grep -e " obagent "
      # 升级 OBAgent
      obd cluster upgrade test -c obagent -V 1.3.0 --usable=<obagent_hash>
      
    • 请将命令中的 obagent_hash 替换为 OBAgent 对应版本的 hash 值。
  2. 检查 OCP Express 配置文件

    • 确保 OCP Express 的配置文件 ocp-express-only.yaml 中的各项配置正确无误。特别是以下必填项:
      • home_path: OCP Express 的工作目录。
      • jdbc_url: 连接 meta 租户的 JDBC 连接字符串。
      • jdbc_username: 连接 meta 租户的用户名。
      • jdbc_password: 连接 meta 租户的用户密码。
      • port: 访问 OCP Express 的 HTTP 端口。
      • cluster_name: OceanBase 集群的集群名称。
      • ob_cluster_id: OceanBase 集群的集群 ID。
      • root_sys_password: OceanBase 集群中 root@sys 用户的密码。
      • agent_username: OBAgent 的用户名。
      • agent_password: OBAgent 的密码。
      • logging_file_total_size_cap: 日志文件总大小。
      • server_addresses->address: OBServer 节点的 IP 地址。
      • server_addresses->svrPort: OBServer 节点的 rpc 端口。
      • server_addresses->sqlPort: OBServer 节点的 mysql 端口。
      • server_addresses->agentMgrPort: OBAgent 管理进程的端口。
      • server_addresses->agentMonPort: OBAgent 监控进程的端口。 [3]
  3. 检查 meta 租户和用户

    • 确保 meta 租户、用户和数据库已经创建,并且用户具有相应的权限。
    • 创建 meta 租户的命令如下:
      obd cluster tenant create <deploy name> -n <tenant_name> --max-cpu=2 --memory-size=4G --log-disk-size=3G --max-iops=10000 --iops-weight=2 --unit-num=1 --charset=utf8
      
    • 创建用户并授予权限的命令如下:
      create user <ocp_user> identified by '<ocp_password>';
      grant all on *.* to <ocp_user>;
      
    • 创建数据库的命令如下:
      create database <database_name>;
      
  4. 检查日志文件

    • 查看 OCP Express 的日志文件,通常位于配置文件中指定的 log_dir 目录下,查找具体的错误信息。
    • 根据日志文件中的错误信息进一步排查问题。
  5. 重新部署 OCP Express

    • 如果上述步骤仍然无法解决问题,可以尝试重新部署 OCP Express。
    • 删除现有的 OCP Express 配置:
      obd cluster destroy <deploy name>
      
    • 重新部署 OCP Express:
      obd cluster deploy <deploy name> -c config.yaml
      obd cluster start <deploy name>
      

如果以上步骤仍然无法解决问题,建议您联系 OceanBase 的人工答疑以获取更多帮助。 [3], [3]

具体信息可参考以下文档:

  1. vpc_connect_failed VPC 连接失败
  2. OceanBase 安装部署工具 V2.8.0
  3. 使用命令行部署 OCP Express

发一份yaml配置文件。
image
ocp租户是ocp-express的。ocp_meta租户是ocp的。你部署的架构是啥样的

我是通过obd web网页自动部署的,没有配置yaml

yaml’在 ~/.obd/cluster/xxx/中
日志也帮忙获取一份~/.obd/log/

file.zip (71.6 KB)

根据您提供的信息和日志分析结果,您在使用 OBD Web 页面进行自动部署时遇到了“failed to start component: ocp-express”的问题。以下是一些可能的原因和解决方案:

1. 检查 OBAgent 版本

确保 OBAgent 的版本不低于 V1.3.0。如果 OBAgent 版本低于 V1.3.0,您需要升级 OBAgent。

升级 OBAgent 的步骤:

  1. 查看 OBAgent 的 hash 值:
    obd mirror list oceanbase.community.stable | grep -e " obagent "
    
  2. 升级 OBAgent:
    obd cluster upgrade <deploy_name> -c obagent -V 1.3.0 --usable=<obagent_hash>
    
    请将 <deploy_name> 替换为您的部署名称,将 <obagent_hash> 替换为 OBAgent 对应版本的 hash 值。

2. 检查 OCP Express 的日志

从您提供的日志文件中,可以看到 OCP Express 在尝试连接 meta 数据库时失败了:

[ERROR] 192.168.10.125: failed to connect meta db

这可能是由于以下原因:

  • meta 数据库未创建或配置不正确
  • 连接 meta 数据库的用户名或密码不正确
  • 网络问题导致无法连接到 meta 数据库

检查和解决步骤:

  1. 确保 meta 数据库已创建

    • 登录到 OceanBase 集群,检查 meta 数据库是否存在:
      obclient -h192.168.10.125 -P2883 -uroot@sys -p<password>
      show databases;
      
    • 如果 meta 数据库不存在,创建它:
      create database ocp_meta;
      
  2. 确保 meta 数据库的用户和权限已正确配置

    • 创建用户并授予权限:
      create user meta@ocp identified by '<password>';
      grant all on *.* to meta@ocp;
      
  3. 检查网络连接

    • 确保从 OCP Express 所在的机器可以访问到 meta 数据库所在的机器:
      ping 192.168.10.125
      telnet 192.168.10.125 2883
      

3. 检查 OCP Express 的配置

虽然您提到没有手动配置 YAML 文件,但 OBD Web 页面在部署时会自动生成配置文件。您可以检查生成的配置文件,确保各项配置正确无误。

检查配置文件的步骤:

  1. 查找生成的配置文件:
    • 通常配置文件会保存在 OBD 的工作目录中,例如 /root/.obd/cluster/<deploy_name>/config.yaml
  2. 检查配置文件中的以下必填项:
    • home_path: OCP Express 的工作目录。
    • jdbc_url: 连接 meta 租户的 JDBC 连接字符串。
    • jdbc_username: 连接 meta 租户的用户名。
    • jdbc_password: 连接 meta 租户的用户密码。
    • port: 访问 OCP Express 的 HTTP 端口。
    • cluster_name: OceanBase 集群的集群名称。
    • ob_cluster_id: OceanBase 集群的集群 ID。
    • root_sys_password: OceanBase 集群中 root@sys 用户的密码。
    • agent_username: OBAgent 的用户名。
    • agent_password: OBAgent 的密码。
    • logging_file_total_size_cap: 日志文件总大小。
    • server_addresses->address: OBServer 节点的 IP 地址。
    • server_addresses->svrPort: OBServer 节点的 rpc 端口。
    • server_addresses->sqlPort: OBServer 节点的 mysql 端口。
    • server_addresses->agentMgrPort: OBAgent 管理进程的端口。
    • server_addresses->agentMonPort: OBAgent 监控进程的端口。

4. 重新部署 OCP Express

如果上述步骤仍然无法解决问题,可以尝试重新部署 OCP Express。

重新部署的步骤:

  1. 删除现有的 OCP Express 配置:
    obd cluster destroy <deploy_name>
    
  2. 重新部署 OCP Express:
    obd cluster deploy <deploy_name> -c config.yaml
    obd cluster start <deploy_name>
    

5. 查看详细的日志信息

如果您需要更详细的日志信息,可以查看 result_details.txt 文件:

cat /root/ob-dba-agent/obdiag_analyze_pack_20241022112805/result_details.txt

如果以上步骤仍然无法解决问题,建议您联系 OceanBase 的人工答疑以获取更多帮助。[3]

具体信息可参考以下文档:

  1. vpc_connect_failed VPC 连接失败
  2. OceanBase 安装部署工具 V2.8.0
  3. 使用命令行部署 OCP Express

更多信息请查看:

  1. 诊断工具命令组
  2. 升级 OceanBase 集群

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

你yaml文件中存在ocp和ocp-express二者选一个。
ocp-express是轻量化ocp只能负责本集群的运维切缺失部分功能

不是很明白,是现在这个yarm不能用,还是需要改一下配置或从官网参考配置然后执行命令就可以继续部署,还是需要重新odb web,在页面配置的时候选择配置yarm

重新obd web。新命名一个集群名不要用老的了