将 Streams 引入 Observability:调查的第一站

33 阅读8分钟

作者:来自 Elastic Bahubali Shetti  及 Luca Wintergerst

介绍 Elastic Streams,这是一个新的 AI 可观测性功能,将日志从嘈杂且昂贵的数据源转化为主要的调查信号。

我们很高兴介绍 Streams,这是 Elastic Observability 中的一项新 AI 功能。它建立在 Elasticsearch 平台上,旨在让站点可靠性工程师(SREs)使用日志作为调查的主要信号,从而更快地得到答案并更快地解决问题。几十年来,日志被认为过于嘈杂、昂贵且难以管理,许多可观测性供应商将其视为次要数据。Streams 改变了这一现状,通过将原始日志转化为最有价值的资产,不仅能立即识别根本原因,还能了解根本原因背后的原因,从而实现即时解决。

如今,SREs 使用指标识别 “what”,使用追踪识别 “where”,这对于故障排查很重要。然而,更快、更准确的事件解决通常需要知道 “why”。关键的 “why” 藏在日志中,但现代微服务环境中日志量巨大且结构不固定,使得其难以高效使用。这迫使团队处于两难境地:要么花费大量时间构建和维护复杂的数据管道来整理混乱,要么丢弃有价值的日志数据以控制成本,从而导致关键可视性缺失。因此,当发生事件时,SREs 浪费宝贵时间手动寻找线索和逆向分析数据,而不是快速解决问题。

Streams,从日志摄取到答案

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

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

完整视频地址: www.bilibili.com/video/BV1nU…

让我们来看看视频中强调的一些关键 Streams 功能:

  • 基于 AI 的分区 —— 通过允许 SREs 将所有日志发送到单一端点而无需担心代理或集成,简化了日志摄取。我们的 AI 会自动识别日志来自两个不同系统:Hadoop 和 Spark。随着更多数据的传入,它会持续学习并识别额外组件,使分区变得轻松。

  • 基于 AI 的解析 —— 消除了构建和管理日志处理管道的人工工作。在演示中,Streams 自动检测来自 Spark 的日志,并生成一个 GROK 规则,完美解析 100% 的字段。

  • 识别重大事件 —— 剔除噪声,让你可以立即关注关键问题。Streams 分析解析后的 Spark 日志,精准定位 Java 内存溢出错误和异常。这为 SREs 提供了清晰且可操作的调查起点,而无需他们在原始数据中逐条寻找线索。

  • AI 助手 —— AI 助手提供即时根因分析,将数小时的工作转化为即时答案。在 Streams 识别出 Java 内存溢出错误后,SRE 可以使用 AI 助手在 Discover 中分析日志。几秒钟内,它确定根本原因是 Spark 为正在处理的数据集分配的内存不足,从而提供精准答案以指导修复。

视频中没有提到的一点是,Streams 使日志摄取变得非常简单。在上面的示例中,我们使用了 OTel collector,只需在 OTel Collector 的 helm chart 的 values.yaml 文件中配置处理器、导出器和服务声明即可:

`

1.  processors:
2.    transform/logs-streams:
3.        log_statements:
4.          - context: resource
5.            statements:
6.              - set(attributes["elasticsearch.index"], "logs")
7.  exporters:
8.    debug:
9.    otlp/ingest:
10.      endpoint: ${env:ELASTIC_OTLP_ENDPOINT}
11.      headers:
12.        Authorization: ApiKey ${env:ELASTIC_API_KEY}

14.  service:
15.    pipelines:
16.        logs:
17.          receivers: [filelog]
18.          processors: [batch, transform/logs-streams]
19.          exporters: [elasticsearch, debug]

`AI写代码![](https://csdnimg.cn/release/blogv2/dist/pc/img/runCode/icon-arrowwhite.png)

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

如你在示例中看到的,Streams 帮助 SREs 专注于寻找 “why”,而无需手动处理繁琐且易出错的日志处理工作。过去需要数小时的工作,现在可以在几分钟内完成。

Streams:主要功能与可用性

虽然前面的示例展示了使用分区、解析、重大事件和 AI 助手如何快速轻松地进行根因分析,Streams 还具有更多功能,如下图所示:

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

Streams(9.2 正式发布)

提供基础功能,减少 SREs 的管道管理工作。Streams 可处理来自现有代理和集成的日志,以及通过 Logs Streams 传入的原始非结构化日志。主要功能包括:

  • Streams Processing:使用 AI 驱动的解析或可视化 UI 模拟和优化日志解析。比较前后状态并修改模式以简化日志处理。

  • Streams Retention Management:在 UI 中直接定义基于时间或高级 ILM 策略,监控摄取量并管理失败存储中的数据。

  • Streams Data Quality:通过失败存储检测并修复摄取失败,捕获并暴露失败文档供检查。

Logs Streams(技术预览)

允许 SREs 直接将任何格式的日志摄取到 Elasticsearch,无需代理或集成。主要功能包括:

  • 直接摄取:使用任何日志转发器将原始日志直接发送到 /logs 索引,例如通过 OpenTelemetry collector 的 logs_index 参数。

  • AI 驱动分区:使用上下文 AI 建议自动或手动将单个日志流分割为不同部分(如按服务或组件)。

重大事件(技术预览)

重大事件在 Streams 和 Logs Streams 中均可用,用于展示真正重要的错误和异常,如启动和关闭消息、内存溢出错误、内部服务器故障及其他变化信号。这些事件作为可操作标记,提前向 SREs 发出警告并提供调查起点。

对 SREs 的实际意义

借助 Elastic Streams,SREs 无需在成为调查者之前花费时间处理数据。日志成为主要调查信号,因为 Streams 让 SREs 能够:

  • 全面日志摄取,无需担心管道:无需构建和维护复杂管道,任何来源的结构化或非结构化日志都可直接发送到单一 Elastic 端点。使用 OTel collector 或其他数据转发器发送日志,AI 驱动的处理会解析并结构化日志,使其立即 “可调查”。

  • 从日志获取答案,而不仅是收集:Streams 分析数据以展示 “重大事件”,主动识别关键错误、异常和性能瓶颈,如内存溢出异常。提供清晰、优先级明确的调查起点,让问题在影响用户前快速解决。

  • 低成本实现完整可视性:智能结构化数据并仅展示最关键事件,减少操作复杂度,大幅缩短根因分析时间,经济高效地存储所有相关日志数据,确保不为预算牺牲关键可视性,更快获得明确答案,降低总体拥有成本。

结论

Elastic Streams 通过将日志从嘈杂且昂贵的数据源转化为主要调查信号,彻底改变了可观测性。借助 AI 驱动的自动分区、解析、保留管理以及重大事件展示功能,Streams 让 SREs 超越数据管理,直接锁定问题根因。通过降低操作复杂度、减少存储成本并提供完整可视性,Streams 确保 AI 增强的日志成为最快的解决途径,回答可观测性的关键问题 “why”。

cloud.elastic.co 注册 Elastic 试用,并体验 Elastic 的 Serverless 服务,尝试所有 Streams 功能。

此外,还可以查看:

原文:www.elastic.co/observabili…