首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >引入用于可观测性的 Streams:调查的第一站

引入用于可观测性的 Streams:调查的第一站

原创
作者头像
点火三周
发布2025-10-27 19:54:38
发布2025-10-27 19:54:38
1010
举报
文章被收录于专栏:Elastic Stack专栏Elastic Stack专栏

我们很高兴地向您介绍 Streams,它是 Elastic Observability 中的新 AI 功能。这个功能基于 Elasticsearch 平台设计,旨在帮助站点可靠性工程师(SREs)以日志作为调查的主要信号,从而更快获得答案和快速解决问题。长期以来,日志被认为过于嘈杂、昂贵且复杂,因此许多可观测性供应商将它们视为次要数据。Streams 颠覆了这种看法,将原始日志转化为最有价值的资产,不仅可以立即识别根本原因,还能揭示其背后的原因,以实现即时解决。

现今,SREs 使用指标来识别“是什么”,使用跟踪来确定“在哪里”,这对故障排除很重要。然而,往往需要知道“为什么”才能更快速、准确地解决事件。关键的“为什么”藏在您的日志中,但现代微服务环境中日志的庞大数量和非结构化性质使其难以有效使用。这迫使团队处于艰难的境地,要么花费大量时间构建和维护复杂的数据管道以控制混乱,要么放弃有价值的日志数据以控制成本,风险不可忽视的可见性缺口。结果是,当事件发生时,SREs 浪费宝贵时间手动寻找线索和逆向工程数据,而不是迅速解决问题。

Streams:从日志摄取到答案

Streams 直接解决了这一挑战,通过使用 AI 将原始日志的混乱转化为解决方案的最清晰路径,使日志成为调查的主要信号。它可以从任何来源和任何格式(结构化和非结构化)摄取原始日志,然后进行分区、解析,并帮助管理保留和数据质量。Streams 减少了 SREs 不断规范化数据、管理自定义架构或筛选无尽噪音的需求。Streams 还可以显示重大事件,如重大错误和异常,使您能够主动进行调查。SREs 现在可以专注于更快地解决问题,而不必花费大量时间在数据管理和噪音中寻找。

让我们看看 Streams 的实际应用。在下面的演示中,观看一名 SRE 如何处理生产中的关键交易应用问题。短短几分钟内,Streams 处理原始日志,定位 Java 内存溢出错误,AI 助手直接引导 SRE 到根本原因,将数小时的手动工作转化为快速修复。

Streams 实际应用
Streams 实际应用

让我们通过视频中的关键 Streams 功能:

  • 基于 AI 的分区 - 简化摄取过程,使 SREs 可以将所有日志发送到单一端点,无需担心代理或集成。我们的 AI 自动识别日志来自两个不同的系统:Hadoop 和 Spark。随着更多数据的流入,它继续学习并识别其他组件,使分段变得轻松自如。
AI 分区
AI 分区
  • 基于 AI 的解析 - 消除了构建和管理日志处理管道的手动工作。在演示中,Streams 自动检测来自 Spark 的日志,并生成完美解析所有字段的 GROK 规则。
AI 解析
AI 解析
  • 识别重大事件 - 从噪音中筛选出关键问题,立即集中精力。Streams 分析解析后的 Spark 日志,识别 Java 内存溢出错误和异常。这为 SREs 提供了一个清晰、可操作的调查起点,而不是迫使他们在原始数据中寻找。
重大事件
重大事件
  • AI 助手 - AI 助手提供即时的根本原因分析,将数小时的工作转化为即时答案。在 Streams 识别 Java 内存溢出错误后,SRE 可以在 Discover 中使用 AI 助手分析日志。片刻之间,它确定了根本原因是 Spark 缺乏处理数据集所需的足够内存,提供了精确的答案以指导补救。
AI 助手
AI 助手

视频中未展示的是 Streams 使日志摄取变得多么简单。在上述示例中,我们使用了 OTel 收集器,只需在 OTel Collector 的 helm chart 的 values.yaml 文件中配置处理器、导出器和服务语句:

代码语言:yaml
复制
processors:
  transform/logs-streams:
    log_statements:
      - context: resource
        statements:
          - set(attributes["elasticsearch.index"], "logs")
exporters:
  debug:
  otlp/ingest:
    endpoint: ${env:ELASTIC_OTLP_ENDPOINT}
    headers:
      Authorization: ApiKey ${env:ELASTIC_API_KEY}

service:
  pipelines:
    logs:
      receivers: [filelog]
      processors: [batch, transform/logs-streams]
      exporters: [elasticsearch, debug]

使用 Streams,您可以使用任何日志转发器,例如 OTel Collector(如上例),fluentd,fluentbit 等。这使摄取变得简单,并确保您不会被锁定在任何特定的日志转发器中。

正如您在此示例中所见,Streams 帮助 SREs 专注于找到“为什么”,而无需手动、容易出错地使日志变得可用。过去需要数小时完成的工作现在可以在几分钟内完成。

Streams:关键特性和可用性

虽然之前的示例展示了如何轻松快速地通过分区、解析、重大事件和 AI 助手到达根本原因分析,但 Streams 还有更多功能,以下图示展示了这些功能:

Streams
Streams

这些功能在两个主要模式下可用:Streams 用于已经在 Elasticsearch 中索引的数据,以及 Logs Streams 用于直接摄取原始日志。两种模式均支持 AI 驱动的分区和解析,识别重大事件,以及管理数据质量、保留和成本效益存储的基本工具。

Streams(GA 在 9.2 发布)

提供减少 SREs 管理管道负担的基础功能。Streams 适用于来自现有代理和集成的日志以及通过 Logs Streams 流入的原始、非结构化日志。关键功能包括:

  • Streams 处理:使用 AI 驱动的解析或点选式 UI 模拟和精炼日志解析。比较前后状态并修改架构以简化日志处理。
  • Streams 保留管理:直接在 UI 中定义基于时间或高级 ILM 策略,获得摄取量的可见性,并在失败存储中管理数据。
  • Streams 数据质量:通过捕获和暴露失败文档供检查的失败存储检测并修复摄取失败。

Logs Streams(技术预览)

使 SREs 能够以任何格式直接将任何日志摄取到 Elasticsearch,而无需代理或集成。关键功能包括:

  • 使用任何日志转发器直接摄取到 Elasticsearch:使用任何机制将原始日志直接发送到 /logs 索引,例如 OpenTelemetry 收集器中的 logs_index 参数。
  • AI 驱动的分区:使用上下文 AI 的建议自动或手动将单个日志流分成不同部分(例如按服务或组件)。

重大事件(技术预览)

重大事件在 Streams 和 Logs Streams 中都可用,并揭示真正重要的错误和异常,如启动和关闭消息、内存溢出错误、内部服务器故障以及其他变化信号。这些事件充当可操作标记,在服务受到影响之前,为 SREs 提供早期警告和调查起点。

对 SREs 的实际意义是什么?

通过 Elastic Streams,SREs 不再需要在调查之前花费时间处理数据。日志成为主要的调查信号,因为 Streams 为 SREs 提供了以下能力:

  • 以任何格式记录所有内容,无需担心管道 - 不再浪费时间构建和维护复杂的摄取管道。以任何格式、结构化或非结构化,从任何来源直接发送日志到单一 Elastic 端点,无需特定代理。使用 OTel 收集器或其他数据发送器将日志发送到 Elastic。Streams AI 驱动的处理解析并结构化您的日志数据,使其立即“可用于调查”。这意味着您可以随时适应新的日志格式,而无需维护脆弱的配置。Streams 确保您始终拥有所需的数据,在需要时即可获得。
  • 不仅仅是收集日志,从中获取答案 - Streams 分析您的数据以揭示“重大事件”,主动识别关键错误、异常和性能瓶颈,如内存溢出异常。无需手动筛选数TB数据,您即可获得清晰、优先的调查起点。这使您可以在几分钟内从症状到解决方案,在问题影响用户之前进行修复。
  • 以较低成本实现完全可见性:在不预期的开销下获得所有服务的全面可见性。通过智能结构化数据并仅显示最关键事件,Streams 减少了操作复杂性,并显著缩短了根本原因分析时间。这种效率使您能够以成本效益的方式存储所有相关日志数据,确保您无需为了满足预算而牺牲重要的可见性。更快地获得更清晰的答案,降低总拥有成本。

结论

Elastic Streams 通过将日志从嘈杂且昂贵的数据源转变为主要调查信号,彻底改变了可观测性。通过 AI 驱动的功能,如自动分区、解析、保留管理和重大事件浮现,Streams 使 SREs 能够超越数据管理,直接定位问题的根本原因。通过降低操作复杂性、降低存储成本和提供完全可见性,Streams 确保日志经过 AI 丰富后成为解决问题的最快途径,回答了可观测性中的关键问题“为什么”。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Streams:从日志摄取到答案
  • Streams:关键特性和可用性
  • 对 SREs 的实际意义是什么?
  • 结论
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档