使用 OpenTelemetry 和 Elastic Streams 进行 Windows 事件日志监控

16 阅读5分钟

作者:来自 Elastic David Hope

学习如何使用 OpenTelemetry 提升 Windows 事件日志监控,实现标准化摄取,并使用 Elastic Streams 进行智能分区和分析。

对于系统管理员和 SRE 来说,Windows 事件日志既是金矿也是坟场。它们包含诊断服务器崩溃或安全漏洞根本原因所需的关键数据,但常常被数 GB 的噪声掩盖。传统上,从这些日志中提取价值需要脆弱的正则解析器、手动规则创建以及大量人类直觉。

然而,日志管理的格局正在发生变化。通过将行业标准的 OpenTelemetry(OTel)摄取与 Elastic Streams 的 AI 驱动能力结合,我们可以改变 Windows 基础设施的监控方式。这种方法不仅仅是移动数据,我们还在使用大型语言模型(LLM)来理解数据。

传统 Windows 日志的挑战

Windows 会生成大量不同类型的日志:System、Security、Application、Setup 和 Forwarded Events。在这些类别中,又包含成千上万的 Event ID。历史上,将这些数据引入可观测性平台通常需要安装专有代理,并配置复杂的管道来剥离 XML 头并格式化消息。

一旦数据被摄取,就需要尝试识别“异常”。你必须提前知道 Event ID 7031 表示服务崩溃,然后为其编写特定警报。如果漏掉了某个 Event ID 或者格式发生变化,监控就会失效。

步骤 1:通过 OpenTelemetry 摄取

现代化此工作流的第一步是采用 OpenTelemetry。OTel collector 已经成熟,现在对 Windows 环境提供了稳健支持。通过直接在 Windows 服务器上安装 collector,可以配置接收器以接入事件日志子系统。

这种方法的优势在于标准化。你不会被锁定在特定厂商的传输代理中。OTel collector 充当通用路由器,抓取日志并将其发送到你的可观测性后端,在本例中,是为处理高吞吐流量设计的 Elastic logs 索引。

在此配置中需要关注的关键点是我们如何添加这个 transform 语句:

`

1.  transform/logs-streams:
2.    log_statements:
3.      - context: resource
4.        statements:
5.          - set(attributes["elasticsearch.index"], "logs")

`AI写代码

这适用于原生 OpenTelemetry collector,当数据到达 Elastic 时,它会告诉 Elastic 使用新的 wired streams 功能,从而启用我们在后续步骤中讨论的所有下游 AI 功能。

查看我的示例配置这里

步骤 2:AI 驱动分区

数据到达后,下一个挑战是组织。将所有 Windows 日志都倒入单个 logs-* 索引会导致查询缓慢和混乱。过去,我们基于硬编码字段拆分索引。现在,我们可以使用 AI 对数据进行“指纹识别”。

这个过程涉及分析传入的流以识别模式。系统会查看日志的结构和内容来确定其来源。例如,它可以仅根据数据形状区分 Windows Security Audit 日志和 Service Control Manager 日志。

结果是自动分区。系统为每种数据类型创建单独、优化的“桶”或流。你得到干净的关注点分离,Security 日志进入一个流,File Manager 日志进入另一个流,而无需编写任何条件路由规则。这种分区对于性能和流程的下一阶段 —— 分析 —— 至关重要。

步骤 3:重要事件与 LLM 分析

一旦你的数据被分区(例如进入专用的 Service Control Manager 流),你就可以应用 GenAI 模型分析该流的语义意义。

在传统设置中,系统只能看到文本字符串。在 AI 驱动的设置中,系统可以理解上下文。当 LLM 分析 Service Control Manager 流时,它能够识别该系统负责的内容。它知道这个特定组件管理系统服务的启动和停止。

因为模型理解了日志流的目的,它可以生成关于什么是 “重要事件” 的建议。它不需要你告诉它去查找崩溃;它知道对于 Service Manager 来说,崩溃是关键故障。

从被动存储到主动建议

该工作流有效地自动化了检测规则的创建。LLM 扫描日志并生成与该特定数据集相关的潜在问题列表,例如:

  • 服务崩溃:后台进程意外终止的高严重性异常。
  • 启动/引导失败:阻止操作系统达到稳定状态的关键错误。
  • 权限拒绝:与服务交互相关的安全事件。

它会将这些作为建议观察项提出。你可以查看潜在问题列表,看到 AI 分配给它们的严重性(例如,Critical、Warning),并通过一次点击生成查找这些日志所需的查询。

结论

将 OpenTelemetry 用于标准化摄取,结合 AI 驱动的 Streams 进行分析,将混乱的 Windows 日志洪流转化为结构化、可操作的情报源。我们正从 “记录一切,却什么都不看” 的时代,迈向工具能够像我们一样理解基础设施的时代。

有效监控的障碍不再是技术复杂性。无论你是在跟踪安全审计还是调试启动循环,利用 LLM 对流进行分区和分析,已成为可观测性的新的标准。

今天就试用 Streams

原文:www.elastic.co/observabili…