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

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

我的情况:

我想要几台 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 个具有相同订阅的服务器,但这会重复发送事件(并浪费带宽等)。

相关内容