OCP链路查询的一些问题

【 使用环境 】生产环境
【 OB or 其他组件 】OCP社区版
【 使用版本 】4.3.1
【问题描述】
OCP 社区版4.3.1的日志服务有链路查询的功能,按照官方文档的说明,使用该功能需要部署OpenSearch集群,但是OpenSearch服务的镜像无法下载。是不是该功能还没有真正对社区版开放?如果开放了,OpenSearch的镜像的具体下载地址是什么?如果有现成的ES集群,能用ES集群替代OpenSearch集群吗?

【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

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

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

根据文档库中的信息,OCP 社区版确实支持链路查询功能,但需要部署 OpenSearch 集群来支持这一功能。关于您提到的 OpenSearch 镜像无法下载的问题,这里有一些信息可以帮助您 [2]

  1. OpenSearch 镜像下载

    • 您可以通过以下命令从阿里云的私有仓库中拉取 OpenSearch 的 Docker 镜像。请注意,这里的镜像版本号需要替换为您所需的版本号。
    # X86 环境
    docker pull reg.docker.alibaba-inc.com/oceanbase-platform/ocp-opensearch:[版本号]-x64
    # arm 环境
    docker pull reg.docker.alibaba-inc.com/oceanbase-platform/ocp-opensearch:[版本号]-arm64
    
    • 如果您无法访问上述私有仓库,建议联系 OceanBase 的交付服务人员获取镜像下载的帮助。
  2. 使用现有 ES 集群替代 OpenSearch

    • 根据现有文档,OCP 的链路查询功能是专门为 OpenSearch 设计的,并且文档中没有提及可以使用现有的 Elasticsearch (ES) 集群作为替代方案。因此,建议您使用 OpenSearch 集群以确保功能的正常运行。
  3. 配置 OCP 连接 OpenSearch

    • 在 OCP 启动后,您需要在 系统参数 中手动添加 OpenSearch 的地址和账密。具体步骤如下:
      1. 登录 OCP。
      2. 在左侧导航栏中选择 系统管理 > 日志服务
      3. 单击 链路查询 页签。
      4. 在系统提示中单击 修改系统参数 按钮,进入 系统参数 页面。
      5. 设置链路查询相关参数,参考以下参数说明进行配置:
        参数名 说明
        ocp.analyze.es.client.addresses 搭建的 OpenSearch 集群地址。如有多个入口(client)地址,需以逗号分隔。
        ocp.analyze.es.client.username 搭建的 OpenSearch 集群用户名。
        ocp.analyze.es.client.password 搭建的 OpenSearch 集群密码。

如果您在配置过程中遇到任何问题,建议参考官方文档中的详细说明,或者联系 OceanBase 的技术支持团队获取进一步的帮助。 [4]

更多信息请查看:

  1. 查询链路
  2. OpenSearch 相关说明
  3. 新建集群
  4. 配置链路查询相关参数
  5. OCP V4.0.0
  6. 多集群模式概述
  7. 通过 OCP 部署 OceanBase 集群
  8. 租户全链路追踪配置

社区版是支持的,可以参考下这篇文章
https://open.oceanbase.com/blog/13117630487

参数都是按照官方文档进行配置的,ES并没有设在用户名和密码,在ocp服务器上也能正常访问到ES集群。重启ocp后,在ES上没有看到相关的INDEX,链路查询的时候也报错,没有任何数据返回。

根据您的描述,您已经按照官方文档配置了 OCP 与 OpenSearch(或 Elasticsearch)的连接参数,并且在 OCP 服务器上能够正常访问到 ES 集群。但在重启 OCP 后,ES 上没有看到相关的索引,并且链路查询时报错,没有任何数据返回。这可能是由于以下几个原因导致的:

1. 参数配置问题

请再次检查以下参数是否正确配置:

  • ocp.analyze.enabled:是否设置为 true
  • ocp.analyze.ob.trace.enabled:是否设置为 true
  • ocp.analyze.es.client.addresses:OpenSearch 或 Elasticsearch 集群的地址是否正确
  • ocp.analyze.es.client.usernameocp.analyze.es.client.password:即使 ES 没有设置用户名和密码,这些参数也需要为空字符串(""

2. OpenSearch/Elasticsearch 版本兼容性

确保您使用的 OpenSearch 或 Elasticsearch 版本与 OCP 兼容。OCP 社区版 4.3.1 可能对特定版本的 OpenSearch 或 Elasticsearch 有兼容性要求。建议使用官方推荐的版本。

3. 网络和防火墙配置

确保 OCP 服务器能够无障碍地访问 OpenSearch/Elasticsearch 集群。检查网络配置和防火墙规则,确保没有阻止 OCP 与 ES 之间的通信。

4. 日志和错误信息

查看 OCP 和 OpenSearch/Elasticsearch 的日志文件,寻找可能的错误信息。这些日志文件可能会提供更多线索,帮助您定位问题。

5. 重新启动 OCP 和 OpenSearch/Elasticsearch

有时,重新启动 OCP 和 OpenSearch/Elasticsearch 可以解决一些临时性的问题。请尝试以下步骤:

  1. 重启 OCP 服务:
    systemctl restart ocp
    
  2. 重启 OpenSearch/Elasticsearch 服务:
    systemctl restart opensearch  # 或者 elasticsearch
    

6. 检查索引创建情况

在 OpenSearch/Elasticsearch 中手动检查是否有索引被创建。您可以使用以下命令:

curl -X GET "http://<es_address>:9200/_cat/indices?v"

如果索引没有被创建,可能是因为 OCP 没有成功发送数据到 ES。

7. 联系技术支持

如果以上步骤都无法解决问题,建议联系 OceanBase 的技术支持团队获取进一步的帮助。他们可以提供更详细的指导和支持。

总结

  1. 检查参数配置:确保所有必要的参数都已正确配置。
  2. 版本兼容性:确保使用的 OpenSearch/Elasticsearch 版本与 OCP 兼容。
  3. 网络和防火墙配置:确保 OCP 服务器能够无障碍地访问 OpenSearch/Elasticsearch 集群。
  4. 查看日志:检查 OCP 和 OpenSearch/Elasticsearch 的日志文件,寻找错误信息。
  5. 重新启动服务:尝试重新启动 OCP 和 OpenSearch/Elasticsearch 服务。
  6. 检查索引创建情况:手动检查 OpenSearch/Elasticsearch 中是否有索引被创建。
  7. 联系技术支持:如果问题仍然存在,联系 OceanBase 的技术支持团队。

希望这些步骤能帮助您解决问题。如果还有其他疑问,请随时提问。

检索到的文档如下:

  1. 配置链路查询相关参数
  2. 管理 OBProxy 集群参数
  3. 修改系统参数
  4. 登录 OceanBase 云平台
  5. 查看参数列表
  6. OBProxy 集群参数管理
  7. 验证安全与密码箱

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

相关报错提示截图发下吧

点击查询的时候就报这个错:
image
日志里面有些这样的报错:

Caused by: org.opensearch.OpenSearchStatusException: OpenSearch exception [type=illegal_argument_exception, reason=request [/ocp_trace_summary_20241021/_search] contains unrecognized parameters: [ccs_minimize_roundtrips], [ignore_throttled]]
at org.opensearch.rest.BytesRestResponse.errorFromXContent(BytesRestResponse.java:202)
at org.opensearch.client.RestHighLevelClient.parseEntity(RestHighLevelClient.java:2075)
at org.opensearch.client.RestHighLevelClient.parseResponseException(RestHighLevelClient.java:2052)
at org.opensearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1775)
at org.opensearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:1728)
at org.opensearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:1696)
at org.opensearch.client.RestHighLevelClient.search(RestHighLevelClient.java:1087)
at com.oceanbase.ocp.analyze.internal.basic.es.ESBasicQuerier.query(ESBasicQuerier.java:138)
at com.oceanbase.ocp.analyze.internal.trace.TraceSummaryQuerierImpl.queryTrace(TraceSummaryQuerierImpl.java:57)
at com.oceanbase.ocp.server.controller.AnalyzeController.lambda$searchTraces$8(AnalyzeController.java:534)
at com.oceanbase.ocp.server.controller.AnalyzeController.wrapException(AnalyzeController.java:572)
… 145 common frames omitted
Suppressed: org.opensearch.client.ResponseException: method [POST], host [http://10.252.242.155:9200], URI [/ocp_trace_summary_20241021/_search?typed_keys=true&max_concurrent_shard_requests=5&ignore_unavailable=true&expand_wildcards=open&allow_no_indices=true&ignore_throttled=false&search_type=query_then_fetch&batched_reduce_size=512&ccs_minimize_roundtrips=true], status line [HTTP/1.1 400 Bad Request]
{“error”:{“root_cause”:[{“type”:“illegal_argument_exception”,“reason”:“request [/ocp_trace_summary_20241021/_search] contains unrecognized parameters: [ccs_minimize_roundtrips], [ignore_throttled]”}],“type”:“illegal_argument_exception”,“reason”:“request [/ocp_trace_summary_20241021/_search] contains unrecognized parameters: [ccs_minimize_roundtrips], [ignore_throttled]”},“status”:400}
at org.opensearch.client.RestClient.convertResponse(RestClient.java:344)
at org.opensearch.client.RestClient.performRequest(RestClient.java:314)
at org.opensearch.client.RestClient.performRequest(RestClient.java:289)
at org.opensearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1762)
… 152 common frames omitted

我咨询下这块的老师,有进展回复你

1 个赞

你现在的opensearch是怎么部署的呢?用的什么版本?ES版本也发下

没有部署opensearch,只部署的ES 6.5.4。

ES client的版本也看下,建议按照这篇文档部署OpenSearch集群

https://www.oceanbase.com/docs/community-ocp-cn-1000000000261155

无法获取docker镜像:

确认了下,这个地址外网确实不能下载,目前可以部署ES7.2版本 不用OpenSearch,其他版本可能有兼容性问题,然后按这个文档配置下就可以了

https://www.oceanbase.com/docs/common-ocp-1000000001406000

好的, 我用ES7.2版本的是尝试下。

在4.3.3 ocp all in one包中会把OpenSearch镜像打包进去