我的情况:
我想要几台 Windows 服务器将事件转发到收集器 A 或收集器 B 等等。
我尝试过的:
设置GPO:计算机设置-策略-管理模板-Windows组件-事件转发-配置目标订阅管理器
Server=http://Collectors.contoso.com:5985/wsman/SubscriptionManager/WEC
其中 Collectors 是集群的名称(通过 NLB 设置),收集器 A 和 B 是其成员。
问题:未转发任何事件。
事件转发实际上是如何工作的?使用网络负载平衡 (NLB) 是否可行且有用?
笔记: 我正在使用 WinServ 2012R2,所有防火墙都已被禁用。
我的订阅来自收藏家 A 和 B:
<?xml version="1.0" encoding="UTF-8"?>
<Subscription xmlns="http://schemas.microsoft.com/2006/03/windows/events/subscription">
<SubscriptionId>pull1</SubscriptionId>
<SubscriptionType>SourceInitiated</SubscriptionType>
<Description></Description>
<Enabled>true</Enabled>
<Uri>http://schemas.microsoft.com/wbem/wsman/1/windows/EventLog</Uri>
<ConfigurationMode>Normal</ConfigurationMode>
<Delivery Mode="Push">
<Batching>
<MaxLatencyTime>900000</MaxLatencyTime>
</Batching>
<PushSettings>
<Heartbeat Interval="900000"/>
</PushSettings>
</Delivery>
<Query>
<![CDATA[
<QueryList><Query Id="0"><Select Path="Application">*</Select><Select Path="Security">*</Select><Select Path="Setup">*</Select><Select Path="System">*</Select><Select Path="ForwardedEvents">*</Select></Query></QueryList>
]]>
</Query>
<ReadExistingEvents>false</ReadExistingEvents>
<TransportName>HTTP</TransportName>
<ContentFormat>RenderedText</ContentFormat>
<Locale Language="en-US"/>
<LogFile>ForwardedEvents</LogFile>
<PublisherName>Microsoft-Windows-EventCollector</PublisherName>
<AllowedSourceNonDomainComputers>
<AllowedIssuerCAList>
</AllowedIssuerCAList>
</AllowedSourceNonDomainComputers>
<AllowedSourceDomainComputers>O:NSG:BAD:P(A;;GA;;;DC)S:</AllowedSourceDomainComputers>
</Subscription>
谢谢
答案1
事件转发实际上是如何工作的?使用网络负载平衡 (NLB) 是否可行且有用?
事件转发依赖于 WSMan/WinRM(Windows 远程管理服务)。对于域加入场景,这使用 Kerberos 作为身份验证和加密的默认设置,这需要服务主体名称 (SPN)。SPN 应该是唯一的。因此,不应允许两台加入域的计算机为其计算机帐户/身份注册相同的 SPN,这使得使用默认设置的负载平衡无法工作。虽然有一些关于配置 IIS 以使用特定服务域帐户(而不是计算机帐户)以及让 IIS Web 服务器池共享该服务帐户的指南,但 WSMan/WinRM 更像是核心操作系统服务。它似乎与作为计算机的网络服务帐户运行密切相关,而这又取决于计算机的内置计算机帐户和 SPN。因此,负载平衡 Windows 事件转发并非易事。
我见过的关于这个主题的大多数参考资料都提出了一些解决方法,例如:
- 直接使用 GPO 订阅设置根据站点拓扑等来切换/负载平衡使用哪些特定事件收集服务器。
- 将订阅设置分成不同的角色,例如一个用于系统和应用程序日志,另一个用于安全,并通过 GPO 配置客户端(日志源)以从两个服务器获取订阅。
以上两种方法都无法提供 HA,只能分担负载。对于 HA,我看到有人建议设置 2 个具有相同订阅的服务器,但这会重复发送事件(并浪费带宽等)。