本文介绍在 Windows Server 2012 R2 中的大型环境中配置 EventLog 转发的最佳做法。
原始 KB 数: 4494356
总结
在 2020 年 2 月 25 日累积更新中,已向 Windows Server 2016、Windows Server 2019 推出重要的可伸缩性修复。
请参阅以下两篇文章中的“改进事件转发可伸缩性,确保线程安全性并增加资源”。项目符号:
事件延迟
在客户端上生成事件后,事件转发机制需要一些时间才能将其转发到收集器。
此延迟可能是由订阅配置引起的,例如 DeliveryMaxLatency 参数、收集器的性能、转发器或网络。
注意
在转发事件之前,请确保不会在客户端上覆盖这些事件。 我们通常只有在客户端生成大量事件(例如繁忙服务器或转发安全日志的 DC)时才能管理此问题。
限制和系统要求
在大型环境中部署 EventLog 转发。 例如,将 40,000 个部署到 100,000 台源计算机。 在这种情况下,我们建议为每个收集器部署多个具有 2,000 到不超过 4,000 个客户端的收集器。
此外,我们建议在收集器上安装至少 16 GB RAM 和 4 个 (4) 处理器,以支持配置了一两个订阅的平均负载为 2,000 到 4,000 个客户端。
建议使用快速磁盘,可以将 ForwardedEvents 日志置于另一个磁盘上,以提高性能。
Windows 事件收集器服务的内存使用情况取决于客户端收到的连接数。 连接数取决于以下因素:
- 连接的频率
- 订阅数
- 客户端数
- 客户端的操作系统
例如,对于 4,000 个客户端和 5 到 7 个订阅的默认值,Windows 事件收集器服务使用的内存可能很快超过 4 GB 并继续增长。 这会使计算机无响应。
客户端连接的频率
三个参数控制客户端连接的频率:
- Refresh= (在 GPO 的配置 URL 中指定)
- DeliveryMaxLatency (在订阅中指定)
- HeartbeatInterval (在订阅中指定)
GPO 中的 Refresh= 参数
此参数以秒为单位。 它控制客户端连接到 /WEC URL 以枚举可用订阅的频率。
收集器通过提供为客户端启用的订阅列表来响应。 响应包括每个通道和 Xpath 查询的书签。 客户端收到信息后,就会开始将事件或检测信号数据包发送到 /Subscriptions URL。 如果订阅不经常更改,则可以将此参数配置为每隔几个小时检查一次,甚至更不频繁地检查一次。
DeliveryMaxLatency
控制客户端连接的频率。 对于大型部署,可以为紧急事件创建设置为 5 分钟频率的订阅,为不太紧急的事件创建一个订阅,另一个用于将紧急事件设置为 2 小时的频率。
HeartbeatInterval
控制控制台的运行时状态窗口中的“非活动”状态。 可以设置为与 DeliveryMaxLatency 相同的值或更大的值,以便在客户端标记为“非活动”之前给予客户端额外的时间。
自定义参数
若要配置自定义参数,必须使用命令行运行 Wecutil。 有关详细信息,请参阅 Wecutil.exe。
-
可以将配置的订阅列出为
wecutil es。 -
必须先将订阅切换到“自定义”:
wecutil ss <SubscriptionName> /cm:"Custom" -
然后,设置 DeliveryMaxLatency 参数:
wecutil ss <SubscriptionName> /dmlt:7200000(值以毫秒为单位:72000000 = 2 小时)
-
将 HeartbeatInterval** 调整**为相同的值。 此设置会影响控制台中每个客户端的“非活动”状态:
wecutil ss <SubscriptionName> /hi:7200000
订阅传递优化
客户端将事件发送到 /subscriptions URL。 这些连接对于收集器内存使用情况非常重要。
以下预配置模式可用。
-
正常
- 提供可靠的事件传送,并且不会尝试节省带宽。
- 除非需要更严格地控制带宽使用情况,或者要求尽快传递转发的事件,否则适当的选择。
- 使用拉取传递模式,一次对五个项目进行批处理,并设置 15 分钟的批处理超时。
-
最小化带宽
- 确保严格控制网络带宽用于事件传送。
- 如果要限制网络连接传送事件的频率,则选择适当的选择。
- 使用推送传递模式,并设置 6 小时的批处理超时和检测信号间隔 6 小时。
-
最小化延迟
- 确保通过延迟最小来传递事件。
- 如果收集警报或关键事件,则选择适当的选择。
- 使用推送传递模式,并设置 30 秒的批处理超时。
客户端以指定的频率连接到收集器,以发送事件或发送检测信号。 默认的“普通”设置可能会导致内存使用率高,每个收集器有 2,000 到 4,000 个客户端。
配置收集器名称
可以通过配置以下组策略对象(GPO)在客户端上配置收集器名称: 计算机配置/管理模板/Windows 组件/事件转发/配置目标订阅管理器
或者,可以在以下子项中设置注册表:HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\EventLog\EventForwarding\SubscriptionManager
可以使用 GPO 本身或 WMI 筛选器上的安全设置筛选将收集器分配给每个客户端的 GPO。 例如,如果计算机名称始终以数字(如 computer1、computer2 等)结尾,我们可以创建 GPO 以将客户端指向 10 个不同的收集器。
合并订阅
配置多个订阅会增加连接数。 本文前面讨论的注意事项适用于每个订阅。
建议通过编辑 Xpath 查询并将多个查询放入同一订阅来配置订阅。