obd白屏安装错误:OBProxy与OCPExpress失败

【 使用环境 】测试环境
【 OB or 其他组件 】
oceanbase-all-in-one-4.1.0.0-100120230423105040.el7.x86_64.tar.gz
系统centos7.9单机部署
ob社区版4.1.0.0
【 使用版本 】
【问题描述】obd白屏安装错误:OBProxy与OCPExpress失败,相关的环境配置我已经和官方的文档确认很多次了,应该是没有错误的,重新部署了很多次都是这样
【复现路径】
部署失败截图


OCPExpress日志目录下无文件

OBProxy日志目录下只有三个文件有内容
obproxy_xflush.log (2.4 KB)
obproxy.log (58 KB)
obproxy.log.wf.txt (557 字节)

【问题现象及影响】

【附件】

首先重复部署之前需要先清理环境 obd cluster destory ${deployname} -f
如果还是不行 需要再提供一些信息:
1、obd的配置文件 路径在 ~/.obd/cluster/${deployname}/config.yaml
2、obd的log 在 ~/.obd/log/obd

每次重新部署前我都直接重置了虚拟机,所有环境都是重新配置的, 应该不存在环境清理不干净的情况,下面是这两个文件
config.yaml.txt (1.6 KB)
obd.txt (370.2 KB)

这台机器配置是8核64G,因为只有一块500G的磁盘,/data和/redo都在同一块磁盘上和系统盘共用

思路:先确定obproxy是否可用,因为ocpexpress依赖了obproxy。
日志里面没看到obproxy的报错,猜测proxy是安装好了。你先验证一下:
obclient -h{ip} -P2883 -uroot@proxysys -p{如果设置了obproxy_sys_password放这里 默认空} -Doceanbase -A
如果可以联通证明 obproxy是安装好的。然后通过obproxy 链接一下 ob
obclient -h{ip} -P2883 -uroot-p{observer_root_password密码} -Doceanbase -A
如果也是通的 。可以尝试 黑屏 操作 再次start一次 obd cluster start {deployname}

看起来是obproxy启动失败,导致OCP-Express连不上metadb,从而没起来,看obproxy日志有如下报错:

你用上面给你的命令链接一下 就可以确定obproxy是否安装成功

你先确定一下obproxy是否可以联通,在进行下一步排查。 非ERROR级别的日志 不一定阻塞obproxy的部署

我测试了通过obproxy确实可以连接上ob,obd cluster start还是会报报错,无法通过obproxy连接,但是等待两分钟以后又可以通过obproxy连接了

你先确定目前的obproxy是好使的,然后执行下面的这个命令 只start ocp-express 试一下
obd cluster start {deployname} -c ocp-express

解决了,在部署之前,修改脚本中obproxy program health check的重试次数即可

vim ~/.obd/plugins/obproxy-ce/3.1.0/start.py
vim ~/.obd/plugins/obproxy/3.2.1/start.py

    stdio.start_loading('obproxy program health check')
    failed = []
    servers = cluster_config.servers
    count = 200 # 243行附近 原本这里为20改为了200
    while servers and count:
        count -= 1
        tmp_servers = []
        for server in servers:

2 个赞
    cluster_name='actiondb'       # 此处填写你的集群名字
    cd /root/.obd/cluster/${cluster_name}/       # 确保这个路径和你的路径相符

    # 修改obproxy中的 observer_sys_password 参数的值
    passwd_proxysys=$(grep -w 'obproxy_sys_password' config.yaml | awk -F'[: ]+' '{print $3}')
    passwd_proxyro=$(grep -w 'proxyro_password' config.yaml | awk -F'[: ]+' '{print $3}')
    port_obproxy=$(grep -w 'listen_port' config.yaml | awk -F'[: ]+' '{print $3}')
    ips_obproxy=$(sed -n '/^obproxy-ce/,/^[a-zA-Z]/p' config.yaml |sed -n '/servers:/,/:/p' |grep '-'|awk '{print $2}')
    for ip in ${ips_obproxy}
    do 
        echo ${ip}
        mysql -h${ip} -uroot@proxysys -P${port_obproxy} -p${passwd_proxysys} -e \
            "alter proxyconfig set observer_sys_password = '${passwd_proxyro}';"   
    done 
    # 移除可能的lock
    mv /root/.obd/lock{,_bak}
    # 启动obproxy
    obd cluster start ${cluster_name} -c obproxy-ce
    # 启动ocp-express
    obd cluster start ${cluster_name} -c ocp-express
    # 启动集群(主要用于刷新obd cluster list中的集群状态:deployed-->running )
    obd cluster start ${cluster_name}