现在我的事件被转发到一个收集器,然后我运行一个脚本将它们从收集器的事件日志中拉出来,然后将它们插入到数据库中。
是否有任何实用程序知道本机的Windows事件转发协议,可以接收传入的转发事件,并直接插入到数据库? 我很惊讶,我还没有看到有这样做的产品。
我正在查看API ,但它看起来并不像它提供了一种方法来将数据源更改为像SQL DB而不是Windows事件日志。
使用LogParser从Windows事件日志(在多个源中)提取数据并将其复制到数据库中。 如果按计划运行,则可以使用任何新事件来更新数据库。
这种devise的性能不会很好地扩大。 它可能在小型/中等环境中工作。
Windows事件收集器旨在做到这一点 – 在很大程度上扩大规模。 单个收集器服务器可以从数百或数千台计算机中收集,每天10 GB或甚至100 GB。
在可比较的硬件上,SQL服务器上的pull用户方法不会与Windows事件收集器的性能相匹配。 在SQL服务器上推送订阅者的方法 – 即使只有极less的索引,也可以在得到任何Windows事件收集器可以做的事情之前很久就变成像狼一样的土豆。
而且你不希望与插入竞争,所以在大型环境中,可能需要用于查询的报告数据库,特别是如果你有很多相关的表格或地毯式的索引。 所以在规模上,解决scheme将无法在性能或成本方面进行竞争。
事件收集器和SQL服务器之间的性能阻抗显着不匹配。 这就是为什么事件收集器与转换中介很相称的原因。 阅读转发事件日志的转换应用程序/脚本既便宜又易于构build,因此没有任何理由(绿色)来消除它们。 SQL服务器只需要一个数据库 – 不需要报告数据库,并且可以具有适度的容量,因为可以大批量地执行转换,而对数据库服务器的影响最小。
你可以用syslog-ng来做到这一点,它有Windows机器的客户端软件 。
syslog-ng
服务器可以将其日志存储在关系数据库和非关系 数据库中 。