ocp网页端无法访问

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】obproxy版本:4.3.2.0 oceanbaser 4.3.5.0版本
【问题描述】oat和ocp部署主机下电重启后,oat可以正常访问,但是ocp网页端无法访问。

netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2033/sshd
tcp 0 0 0.0.0.0:7000 0.0.0.0:* LISTEN 11671/uwsgi
tcp 0 0 0.0.0.0:2881 0.0.0.0:* LISTEN 9706/observer
tcp 0 0 127.0.0.1:7010 0.0.0.0:* LISTEN 11672/oat_exporter
tcp 0 0 0.0.0.0:2882 0.0.0.0:* LISTEN 9706/observer
tcp 0 0 127.0.0.1:7011 0.0.0.0:* LISTEN 11673/prometheus
tcp 0 0 0.0.0.0:2883 0.0.0.0:* LISTEN 9717/./bin/metaprox
tcp 0 0 127.0.0.1:7012 0.0.0.0:* LISTEN 11670/alertmanager
tcp 0 0 0.0.0.0:2884 0.0.0.0:* LISTEN 9717/./bin/metaprox
tcp 0 0 0.0.0.0:2022 0.0.0.0:* LISTEN 9102/sshd
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 11646/mariadbd
tcp 0 0 127.0.0.1:18127 0.0.0.0:* LISTEN 11671/uwsgi
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1107/rpcbind
tcp6 0 0 :::22 :::* LISTEN 2033/sshd
tcp6 0 0 127.0.0.1:9111 :::* LISTEN 517176/java
tcp6 0 0 :::9090 :::* LISTEN 1/systemd
tcp6 0 0 :::2022 :::* LISTEN 9102/sshd
tcp6 0 0 :::62888 :::* LISTEN 9560/ocp_mgragent
tcp6 0 0 :::62889 :::* LISTEN 9573/ocp_monagent
tcp6 0 0 :::3306 :::* LISTEN 11646/mariadbd
tcp6 0 0 :::111 :::* LISTEN 1107/rpcbind
tcp6 0 0 :::8080 :::* LISTEN 517176/java

运行mysql -h******.24 -P2881 -uroot@sys -p**** -A -c --prompt “OceanBase(\u@\d)>” 可以进入。

日志ocp.log:
2025-05-06 21:33:45.222 ERROR 9 — [obsdk-init-thread-5,39ea41c47016a0a4,fb1eb2b61a8d2d03] c.o.o.o.c.impl.AbstractConnector : [obsdk] init druid datasource failed. connectProperties=ConnectProperties(connectionMode=direct, address=172.16.104.24, port=2881, obsAddrList=[ObServerAddr(address=172.16.104.24, port=2881), ObServerAddr(address=172.16.104.25, port=2881), ObServerAddr(address=172.16.104.26, port=2881)], username=root, tenantName=sys, clusterName=cluster1, obClusterId=1745818328, proxy=null, odpSocketConfig=null, vpcId=1, compatibilityMode=MYSQL, database=oceanbase), error message:Could not connect to HostAddress{host=‘172.16.104.24’, port=2881}. Connection refused (Connection refused)
2025-05-06 21:33:45.227 ERROR 9 — [ocp-async-9,39ea41c47016a0a4,2508821280c8036e] c.o.ocp.obsdk.connector.ObConnectors : [obsdk] init ob connector failed, connectProperties=ConnectProperties(connectionMode=direct, address=172.16.104.24, port=2881, obsAddrList=[ObServerAddr(address=172.16.104.24, port=2881), ObServerAddr(address=172.16.104.25, port=2881), ObServerAddr(address=172.16.104.26, port=2881)], username=root, tenantName=sys, clusterName=cluster1, obClusterId=1745818328, proxy=null, odpSocketConfig=null, vpcId=1, compatibilityMode=MYSQL, database=oceanbase), cause:java.sql.SQLNonTransientConnectionException: Could not connect to HostAddress{host=‘172.16.104.24’, port=2881}. Connection refused (Connection refused)
2025-05-06 21:33:45.227 WARN 9 — [ocp-async-9,39ea41c47016a0a4,2508821280c8036e] c.o.ocp.obsdk.connector.ObConnectors : [obsdk] try to create ob connector of ‘direct’ mode failed, observer addr:ObServerAddr(address=172.16.104.24, port=2881), message:[obsdk] init ob connector failed, connectProperties=ConnectProperties(connectionMode=direct, address=172.16.104.24, port=2881, obsAddrList=[ObServerAddr(address=172.16.104.24, port=2881), ObServerAddr(address=172.16.104.25, port=2881), ObServerAddr(address=172.16.104.26, port=2881)], username=root, tenantName=sys, clusterName=cluster1, obClusterId=1745818328, proxy=null, odpSocketConfig=null, vpcId=1, compatibilityMode=MYSQL, database=oceanbase), cause:java.sql.SQLNonTransientConnectionException: Could not connect to HostAddress{host=‘172.16.104.24’, port=2881}. Connection refused (Connection refused)
2025-05-06 21:33:45.228 ERROR 9 — [Druid-ConnectionPool-Create-183334019,] com.alibaba.druid.pool.DruidDataSource : create connection SQLException, url: jdbc:oceanbase://172.16.104.24:2881/oceanbase?useUnicode=true&characterEncoding=UTF8&encloseParamInParentheses=false, errorCode -1, state 08000

java.sql.SQLNonTransientConnectionException: Could not connect to HostAddress{host=‘172.16.104.24’, port=2881}. Connection refused (Connection refused)
at com.oceanbase.jdbc.internal.util.exceptions.ExceptionFactory.createException(ExceptionFactory.java:122)
at com.oceanbase.jdbc.internal.util.exceptions.ExceptionFactory.create(ExceptionFactory.java:225)
at com.oceanbase.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:1752)
at com.oceanbase.jdbc.internal.util.Utils.retrieveProxy(Utils.java:1434)
at com.oceanbase.jdbc.OceanBaseConnection.newConnection(OceanBaseConnection.java:409)
at com.oceanbase.jdbc.Driver.connect(Driver.java:93)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1657)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1723)
at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2838)
Caused by: java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)

运行curl -L “http://localhost:8080”,有返回

2 个赞

企业版吗?@论坛小助手

1 个赞

根据您提供的信息,OCP 网页端无法访问的问题可能涉及多个方面的原因。以下是综合分析和排查步骤:


1. 确认 OCP 是否正常启动

netstat -ntpl 的输出中可以看到:

  • OCP 的服务监听在 :::80800.0.0.0:8080 上(java 进程),这表明 OCP 的 Web 服务已经启动。
  • 您运行了 curl -L "http://localhost:8080" 并有返回,说明 OCP 的 Web 服务在本地是可以访问的。

因此,OCP 服务本身应该是正常的。


2. 检查网络连接问题

尽管 OCP 在本地可以访问,但网页端无法访问可能与网络相关。以下是一些排查步骤:

(1) 确认主机是否可达

  • 使用 ping 命令测试目标主机是否可达。
  • 如果不可达,请联系机房运维工程师解决主机网络问题。

(2) 确认防火墙规则

  • 检查是否有防火墙阻止了外部对 8080 端口的访问。
  • 可以通过以下命令检查防火墙状态:
    iptables -L -n
    
  • 如果发现 8080 被阻止,可以临时关闭防火墙进行测试:
    systemctl stop firewalld
    

(3) 确认网络通信是否正常

  • 在其他主机上尝试访问 OCP 的 8080 端口:
    telnet <ocp_host_ip> 8080
    
  • 如果无法连接,可能是网络隔离或路由问题,建议联系网络工程师排查。

3. 检查 OCP 日志中的错误信息

从您提供的 ocp.log 中可以看到以下关键错误信息:

Could not connect to HostAddress{host='172.16.104.24', port=2881}. Connection refused (Connection refused)

这表明 OCP 在初始化时尝试连接 OceanBase 数据库失败,具体原因可能是:

(1) OceanBase 数据库未启动

  • 检查 OceanBase 数据库是否正常启动:
    netstat -ntpl | grep 2881
    
  • 如果没有监听 2881 端口,说明 OceanBase 数据库未启动,需要手动启动:
    obd cluster start <cluster_name>
    

(2) OceanBase 数据库地址配置错误

  • OCP 配置文件中可能使用了错误的 OceanBase 数据库地址或端口。
  • 检查 OCP 配置文件(通常是 conf/ocp.properties)中的数据库连接信息:
    ocp.ob.cluster.address=172.16.104.24
    ocp.ob.cluster.port=2881
    
  • 如果配置错误,请修改为正确的地址和端口后重启 OCP。

(3) 网络隔离导致无法连接

  • 如果 OceanBase 数据库运行在另一台主机上,确保两台主机之间的网络是连通的。
  • 使用以下命令测试连接:
    telnet 172.16.104.24 2881
    

4. 确认是否为企业版

从您提供的日志和版本信息来看:

  • OBProxy 版本为 4.3.2.0,OceanBase 数据库版本为 4.3.5.0
  • 这些版本号属于社区版范围,因此可以确认您使用的是 OceanBase 社区版

5. 总结与建议

根据上述分析,OCP 网页端无法访问的主要原因可能是以下之一:

  1. 网络问题:外部无法访问 OCP 的 8080 端口,需检查防火墙和网络配置。
  2. OceanBase 数据库连接问题:OCP 初始化时无法连接到 OceanBase 数据库,需检查数据库是否启动以及配置是否正确。

排查步骤:

  1. 确认 OCP 主机是否可达,并检查防火墙规则。
  2. 测试外部主机是否能访问 OCP 的 8080 端口。
  3. 检查 OceanBase 数据库是否正常启动,并验证 OCP 配置文件中的数据库连接信息。
  4. 如果问题仍未解决,建议查看 OCP 的完整日志文件(通常位于 logs/ocp.log),并联系 OceanBase 技术支持团队获取进一步帮助。

希望以上信息能够帮助您解决问题!

更多信息请查看:

  1. ob_host_monitordb_disconnected OCP-Agent 无法连接 monitordb
  2. host_agent_version_not_same 主机 OCP-Agent 版本与预期版本不一致
  3. host_unavailable 主机心跳检测失败
  4. system_obproxy_unavailable 系统 OBProxy 不可用
  5. ic_server_connect_failed Inter-Connector 服务端连接失败
  6. 使用图形化界面升级 OCP
  7. 使用图形化界面部署 OCP
  8. 查看主机进程
2 个赞

只看到了ob同步器出问题了

104.24节点的observer可能是异常退出了,可以检查下observer进程和端口,尝试重启进程再试试

1 个赞

你这个应该是企业版吧?

同步器出问题了,怎么解决啊 可以指导下吗

:+1::+1::+1::+1::+1::+1::+1::+1::+1::+1::+1: