现在,我将事件转发到收集器,然后我运行脚本将它们从收集器的事件日志中以 xml 的形式拉出,然后将它们插入到数据库中。
是否有任何实用程序知道本机 Windows 事件转发协议,可以接收传入的转发事件并将其直接插入数据库?我很惊讶我还没有看到任何可以做到这一点的产品。
我当时正在看API,但它看起来似乎没有提供将数据源更改为 SQL DB 之类的东西而不是 Windows 事件日志的方法。
答案1
使用日志解析器从 Windows 事件日志(以及许多来源)中提取数据并将其复制到数据库中。如果按计划运行,它可以用任何新事件更新数据库。
答案2
这种设计的性能扩展性不好。不过它可能在小型/中型环境中有效。
Windows 事件收集器就是为此而设计的 - 大规模扩展。单个收集器服务器每天可以从数百或数千台计算机收集数十 GB 甚至数百 GB 的数据。
在类似的硬件上,SQL 服务器上的拉取订阅者方法无法与 Windows 事件收集器的性能相媲美。而 SQL 服务器上的推送订阅者方法 - 即使索引最少,在达到 Windows 事件收集器可以执行的任何操作之前,也会像威利狼一样被压扁。
而且您不想与插入竞争,因此在大型环境中,查询报告数据库可能是必要的,特别是如果您有大量相关表或用索引对它们进行地毯式轰炸。因此,在规模上,该解决方案无法在性能或成本上竞争。
事件收集器和 SQL 服务器之间的性能存在显著的阻抗不匹配。这就是为什么事件收集器非常适合用作转换中介的原因。读取转发事件日志的转换应用程序/脚本成本低廉且易于构建,因此没有商业理由(绿色内容)来消除它们。SQL 服务器只需要一个数据库 - 不需要报告数据库,并且容量适中,因为转换可以大批量执行,对数据库服务器的影响最小。
答案3
你可以这样做系统日志工具, 其中有Windows 计算机的客户端软件。
服务器syslog-ng
可以将其日志存储在数据库中,关系和非关系型。