最近,Elastic 发布了其 OpenTelemetry (OTel) 的 Elastic 发行版(EDOT),旨在增强标准 OpenTelemetry 发行版的能力,并改进现有的 Elastic 对 OpenTelemetry 的支持。EDOT 帮助 Elastic 提供了全新的统一 OpenTelemetry 体验。SRE 不再需要通过繁琐的步骤来配置和摄取 OTel 数据到可观测性中,而是可以通过简单的步骤来配置 OTel 收集器和应用程序,并将所有 OTel 数据摄取到 Elastic 中。这一体验的组成部分包括(详细信息请参阅概述博客):
本文将介绍如何通过三个简单步骤将 OTel 数据摄取到 K8S 和应用程序中:
然后,您可以轻松地在 Elastic Observability 中查看 K8S 的度量、日志以及应用程序的日志、度量和跟踪。
要跟随本文,您需要具备以下条件:
您可以在 Elastic 的集成部分找到认证信息。更多信息也可以在文档中找到。
在介绍步骤之前,我们先来看看在 Elastic 中可以看到的内容。
一旦 Operator 启动 OTel 收集器,您可以在 Elastic 中看到以下内容:
使用开箱即用的仪表板,您可以查看节点度量、整体集群度量和状态,如 pods、部署等。
可以在 UI 的 Observability->Inventory 中找到
可以在 Observability->Infrastructure->Hosts 中找到
可以在 Observability->Discover 中找到
可以在 Observability->Application 中找到
然后选择服务并深入了解不同方面。
上图展示了使用原生 OTel 数据显示的跟踪。
在 Add data->Kubernetes->Kubernetes Monitoring with EDOT 下
您将找到以下指令,我们将在这里遵循。
运行以下命令。请确保您已经在 K8s 集群中进行了认证,并在此处运行下面提供的 Helm 命令。
# 添加所需的 helm 仓库
helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts --force-update
# 创建所需的密钥。提供之前记录的 Elasticsearch 端点 URL 和 API 密钥
kubectl create ns opentelemetry-operator-system
kubectl create -n opentelemetry-operator-system secret generic elastic-secret-otel \
--from-literal=elastic_endpoint='YOUR_ELASTICSEARCH_ENDPOINT' \
--from-literal=elastic_api_key='YOUR_ELASTICSEARCH_API_KEY'
# 安装 EDOT 操作符
helm install opentelemetry-kube-stack open-telemetry/opentelemetry-kube-stack --namespace opentelemetry-operator-system --create-namespace --values https://raw.githubusercontent.com/elastic/opentelemetry/refs/heads/main/resources/kubernetes/operator/helm/values.yaml --version 0.3.0
可以在这里找到 values.yaml 文件的配置。
最简单的方法是转到菜单 > 仪表板 > OTEL 集群概览,确保您看到以下仪表板正在填充
在此示例中,我们只注释 Elastiflix 应用程序中的一个服务,即 favorite-java 服务
使用以下命令启动自动插桩:
# 注释 Java 命名空间
kubectl annotate namespace java instrumentation.opentelemetry.io/inject-java="opentelemetry-operator-system/elastic-instrumentation"
# 重新启动 java-app 以获取新的注释
kubectl rollout restart deployment java-app -n java
您也可以通过注释来修改 pod 的 yaml 文件
metadata:
name: my-app
annotations:
instrumentation.opentelemetry.io/inject-python: "true"
这些指令在 UI 中提供:
一旦 OTel 数据进入 Elastic,您可以看到:
Elastic 的 OpenTelemetry 发行版 (EDOT) 通过简化 Kubernetes 和应用程序的插桩,彻底改变了可观测性体验。有了 EDOT,SRE 和开发人员可以绕过复杂的设置,立即深入了解 Kubernetes 集群,并捕获关键的度量、日志和跟踪——这一切都在 Elastic Observability 中。只需几个简单步骤,您就可以使用统一、高效的监控解决方案,将 OpenTelemetry 数据直接导入 Elastic。凭借强大的开箱即用仪表板、自动应用程序插桩和无缝集成,EDOT 不仅节省时间,还提高了整个基础设施的可观测性数据的准确性和可访问性。今天就开始使用 EDOT,体验无摩擦的可观测性,保持系统的顺畅和洞察力。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有