腾讯云 Elasticsearch Service 目前还未提供托管的 APM Server,因此我们需要手动安装 APM Server 才能体验 Elastic APM 的功能,或将 OpenTelemetry 的数据导出到腾讯云 Elasticsearch Service。本文将详细介绍如何通过 Fleet 服务器在腾讯云 ES 上安装和配置 APM Server,解决安装过程中可能遇到的网络连接问题,并探讨使用 OpenTelemetry 与 APM 的价值。
安装 APM Server 时,您可以选择以下两种方法:
本文主要介绍使用 Fleet 服务器的方法,因为这种方式更易于管理和扩展。
在使用 Fleet 服务器安装 APM Server 时,需要连接到 Elastic Package Registry(EPR)。由于 Kibana 和 ES 节点通常在腾讯云的 VPC 中,无法直接访问 EPR,因此需要通过腾讯云的售后支持,提交工单来解决网络连接问题。
在腾讯云的 8.11 网络架构之后,您可以通过调整控制台配置,开启外网访问端口,让 Kibana 连接到 EPR。然而,实践中发现,由于网络带宽和出海流量的限制,直接从 EPR 下载工件效率较低,这会导致 Fleet 响应缓慢。因此,我们建议通过构建本地仓库来优化 Fleet 的使用体验。
为了提高安装和使用 Fleet 的效率,可以参考 Elastic 官方的无网络环境安装指南,通过构建本地的 Elastic Package Registry 来解决这一问题。
首先,从公共 Docker 仓库中拉取 Elastic Package Registry 镜像:
docker pull docker.elastic.co/package-registry/distribution:8.13.3将拉取的 Docker 镜像保存到本地:
docker save -o package-registry-8.13.3.tar docker.elastic.co/package-registry/distribution:8.13.3将镜像文件传输到需要部署的无网络环境中,并加载镜像:
docker load -i package-registry-8.13.3.tar使用以下命令启动 Elastic Package Registry:
docker run -it -p 8080:8080 docker.elastic.co/package-registry/distribution:8.13.3接下来,您可以提交工单,要求腾讯云售后团队在 kibana.yml 中增加以下配置,以便使用您本地的仓库:
xpack.fleet.registryUrl: "http://172.27.16.2:8080"当我们配置好仓库的时候,你将可以查看和安装所有373个可用集成,这其中也包括我们需要的APM集成。

接下来,您可以按照以下步骤来安装和配置 APM Server:


0.0.0.0:8200,URL 填写为 Elastic Agent 所安装主机的公网地址,例如:http://162.14.77.46:8200/。


Elastic APM 支持与 OpenTelemetry 集成,使得您可以重用现有的 OpenTelemetry 仪器,轻松地将观测数据发送到 Elastic Stack 中。通过 OpenTelemetry,您可以利用已有的 API 和 SDK,实现与 Elastic APM 的无缝集成。Elastic 原生支持 OpenTelemetry 协议(OTLP),这意味着从 OpenTelemetry 代理收集的追踪数据和指标可以直接发送到 Elastic Stack。

这种集成不仅降低了对单一供应商的依赖,还让您能够使用 OpenTelemetry 捕获的丰富数据进行更深入的分析和观察,从而提升系统的性能和稳定性。
通过本文指南,您将能够在腾讯云 Elasticsearch Service 上成功安装和配置 APM Server,并充分利用 OpenTelemetry 和 Elastic APM 的强大功能来提升应用的可观测性和性能分析能力。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。