Windows 事件收集器负载平衡到多个收集器

Joe*_*oel 5 windows-server-2012-r2

我的场景:

我想要几个 Windows 服务器将事件转发到收集器 A 或收集器 B 等等。

我试过的:

设置 GPO:计算机设置 - 策略 - 管理模板 - Windows 组件 - 事件转发 - 配置目标订阅管理器

Server=http://Collectors.contoso.com:5985/wsman/SubscriptionManager/WEC
Run Code Online (Sandbox Code Playgroud)

其中收集器是集群的名称(通过 NLB 设置),其中收集器 A 和 B 是其成员。

问题:没有事件被转发。

事件转发实际上是如何工作的?使用网络负载平衡 (NLB) 是否可行且有用?

注意: 我使用的是 WinServ 2012R2 并且所有防火墙都已禁用。

我的订阅 von 收藏家 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>
Run Code Online (Sandbox Code Playgroud)

谢谢

JPv*_*iel 2

事件转发实际上是如何工作的?使用网络负载平衡 (NLB) 是否可行且有用?

事件转发依赖于WSMan/WinRM(Windows远程管理服务)。对于加入域的方案,这使用 Kerberos 作为默认身份验证和加密,这需要服务主体名称 (SPN)。SPN 应该是唯一的。因此,不应允许加入域的两台计算机为其计算机帐户/身份注册相同的 SPN,这使得默认设置的负载平衡无法工作。虽然有一些关于将 IIS 配置为使用特定服务域帐户(而不是计算机帐户)以及让 IIS Web 服务器池共享该服务帐户的指南,但 WSMan/WinRM 更多的是核心操作系统服务。它似乎与作为计算机的网络服务帐户运行密切相关,而这又取决于计算机的内置计算机帐户和 SPN。因此,负载平衡 Windows 事件转发并非易事。

我见过的关于该主题的大多数参考文献都提出了一些解决方法,例如:

  • 直接使用 GPO 订阅设置来根据站点拓扑等切换/负载平衡使用哪些特定事件收集器服务器。
  • 将订阅设置拆分为不同的角色,例如一个用于系统和应用程序日志,另一个用于安全,并通过 GPO 配置客户端(日志源)以从两台服务器获取订阅。

以上都不提供HA,只是分担负载。对于 HA,我看到建议设置 2 个具有相同订阅的服务器,但这会重复发送的事件(并浪费带宽等)。