从 Elastic 迁移agent
- Beats 家族 —— 例如 Filebeat、Metricbeat 和 Packetbeat —— 均基于
libbeat库。这些 Beats 支持通过 Lumberjack 协议将数据发送到 Elasticsearch、Kafka、Redis 或 Logstash。 Elastic Agent提供统一的agent,可采集日志、指标和链路追踪。该agent可通过 Elastic Fleet Server 进行集中管理,并支持输出到 Elasticsearch、Logstash、Kafka 或 Redis。- Elastic 还提供了 OpenTelemetry Collector - EDOT 的一个发行版。虽然目前它还无法由 Fleet Server 统一编排,但如果你要迁移到 ClickStack,它提供了一条更灵活、更开放的路径。
首选迁移路径
为什么选择 OpenTelemetry Collector?OpenTelemetry Collector 为可观测性数据摄取提供了一种可持续、厂商中立的解决方案。我们理解,有些组织运行着由数千个、甚至数万个 Elastic agent 组成的大规模部署。对于这类用户,与现有 agent 基础设施保持兼容可能至关重要。本文档旨在为此提供支持,同时帮助团队逐步过渡到基于 OpenTelemetry 的采集方案。
ClickHouse OpenTelemetry 端点
从 Beats 迁移
1
安装 Vector
使用官方安装指南安装 Vector。可将其安装在与你的 Elastic Stack OTel collector 相同的实例上。你可以在将 Vector 迁移到生产环境时,遵循架构和安全方面的最佳实践。2
配置 vector
需要将 Vector 配置为通过 Lumberjack 协议接收事件,以模拟 Logstash 实例。可通过为 Vector 配置logstash source 来实现:TLS 配置如果需要双向 TLS,请参考 Elastic 指南 “为 Logstash 输出配置 SSL/TLS” 生成证书和私钥。然后即可像上文所示那样在配置中指定这些证书和私钥。
beats 数据源接收事件。下方展示了我们的重映射脚本。该脚本仅针对日志事件进行了测试,但可作为其他格式的参考基础。VRL - ECS 转 OTel
VRL - ECS 转 OTel
remap_filebeat 转换的输出作为输入:YOUR_INGESTION_API_KEY 由 ClickStack 生成。您可以在 ClickStack UI (HyperDX) 的 Team Settings → API Keys 中找到该密钥。完整的最终配置如下所示:3
从 Elastic Agent 迁移
- 将 Elastic Agent 配置为通过 Lumberjack 协议发送到 Vector 端点。目前,这种方式仅针对仅使用 Elastic Agent 收集日志数据的用户进行了测试。 这可以通过 Kibana 中的 Fleet UI 统一配置。
- 将 Elastic Agent 作为 Elastic OpenTelemetry Collector (EDOT) 运行。Elastic Agent 内嵌了 EDOT Collector,因此您只需对应用程序和基础设施进行一次埋点,即可将数据发送到多个供应商和后端。在这种配置下,您只需将 EDOT collector 配置为通过 OTLP 将事件转发到 ClickStack OTel collector。这种方式支持所有事件类型。
通过 Vector 发送数据
2
配置 Elastic Agent
需要将 Elastic Agent 配置为通过 Logstash 的 Lumberjack 协议发送数据。这是一种受支持的部署模式,既可以集中配置;如果是不使用 Fleet 的部署方式,也可以通过 agent 配置文件elastic-agent.yaml 进行配置。要在 Kibana 中进行集中配置,可以向 Fleet 添加一个 Output。然后即可在 agent policy 中使用此 Output。这意味着,所有使用该策略的 agent 都会自动将其数据发送到 Vector。由于这需要配置基于 TLS 的安全通信,我们建议参考指南“为 Logstash Output 配置 SSL/TLS”。按照该指南操作时,可将用户的 Vector 实例视为充当 Logstash 角色。请注意,这还要求用户将 Vector 中的 Logstash source 也配置为 mutual TLS。使用该指南中生成的 密钥和证书,正确配置输入端。将 Elastic agent 作为 OpenTelemetry collector 运行
agent 集成与编排使用随 Elastic agent 分发的 EDOT collector 的用户将无法利用 agent 提供的现有集成。此外,该 collector 无法由 Fleet 进行集中管理,这意味着用户必须以独立模式运行 agent,并自行管理配置。
exporters,并配置 OTLP 输出,将数据发送到 ClickStack OpenTelemetry collector。例如,exporters 的配置将变为:
托管 ClickStack默认情况下,如果以独立方式为托管 ClickStack 运行 OpenTelemetry Collector,则无需 API 摄取密钥。不过,也可以通过指定 OTLP 身份验证令牌来保护摄取。请参阅“保护收集器”。
YOUR_INGESTION_API_KEY 由 ClickStack 生成。您可以在 ClickStack UI 的 Team Settings → API Keys 中找到该密钥。
如果 Vector 已配置为使用双向 TLS,并且证书和私钥是按照指南“为 Logstash 输出配置 SSL/TLS”中的步骤生成的,则还需要相应配置 otlp 导出器,例如: