通过 filebeats 或 nxlog 等日志收集器读取 XEL(SQL Server 扩展事件文件)

Posted

技术标签:

【中文标题】通过 filebeats 或 nxlog 等日志收集器读取 XEL(SQL Server 扩展事件文件)【英文标题】:Reading XEL (SQL Server eXtended Event file) by log collectors such as filebeats or nxlog 【发布时间】:2019-02-09 12:57:45 【问题描述】:

我想用graylogfilebeatsnxlogs 等日志收集器创建一个集中式日志。 我知道Microsoft SQL Server extended events 创建 .XEL 文件。但它们是二进制文件。

有没有什么干净的方法可以通过filebeatsnxlog 或任何其他工具读取此xel 文件并将其发送到graylog?

【问题讨论】:

您可以使用.NET QueryableXEventData class 在 .NET 代码或 PowerShell 脚本中以编程方式读取 xel 文件。根据您的需要,我认为从 XE 数据创建一个文本文件以供您的工具提取是最简单的。 【参考方案1】:

使用 nxlog,您可以使用 im_exec 模块并编写一个脚本(如 @dan-guzman 建议的那样),将 .xel 文件转换为基于文本的格式。 另一种选择是使用Event Tracing for Windows Target 和im_etw 输入模块来收集ETW 事件。

【讨论】:

我一直在尝试设置 im_etw 模块,基本上一切似乎都很好,但我没有从 ncLog 获得任何输出。 nxLog 正在工作,因为我从例如sql 服务器错误日志。我一直在尝试与不同的提供商合作,但没有任何成功。您知道应该使用哪个 etw 提供程序来处理扩展事件吗?

以上是关于通过 filebeats 或 nxlog 等日志收集器读取 XEL(SQL Server 扩展事件文件)的主要内容,如果未能解决你的问题,请参考以下文章

通过 Nxlog 配置将日志发送到特定的 Graylog 索引

sysmon 到 nxlog 不记录任何文件或 tcp

filebeat工作原理

nxlog.conf 过滤 Windows 事件日志问题

Filebeat

filebeat工作原理