TL; DR:EventLog文件已满。覆盖条目很昂贵,并且/或者在Windows Server 2008中无法很好地实现。
在@pk。和@joeqwerty的建议,并询问了一下之后,我认为似乎最有可能被遗忘的监视实现正在抓取事件日志。
我在一个域控制器上安装了Microsoft的网络监视器,并开始使用该ProtocolName == MSRPC
筛选器筛选MSRPC 。流量很大,但是所有流量都在我们远程站点的RODC之间,但是不幸的是,没有使用与侦听EventLog进程相同的目标端口。该死!那里有理论。
为了简化操作并简化监视软件的运行,我决定从SVCHost拆开EventLog服务。以下命令和域控制器的重新启动将一个SVCHost进程专用于EventLog服务。由于您没有对该PID附加多个服务,因此这使调查变得容易一些。
SC config EventLog Type= own
然后,我求助于ProcMon并设置一个过滤器以排除不使用该PID的所有内容。我没有看到EventLog尝试打开丢失的注册表项的失败尝试,因为这里没有指出这是可能的原因(显然,糟糕的应用程序可能以极差的方式注册为事件源)。可以预见,我看到了安全事件日志(C:\ Windows \ System32 \ WinEvt \ Logs \ Security.evtx)的许多成功的ReadFile条目。
这是其中一个事件的堆栈:
您会首先注意到RPCBinding,然后是RPCBindingUnbind。其中有很多。就像每秒数千。安全日志确实很忙或者该Security.evtx
日志无法正常工作。
在EventViewer中,安全日志每分钟仅记录一次50-100个事件,这似乎适用于这种规模的域。该死!第二种理论认为,我们在非常冗长的事件审核中启用了一些应用程序,但该事件仍然在尽职尽责的被遗忘的角落处打开。即使记录的事件发生率很低,仍然记录了很多事件(〜250,000)。日志大小?
安全日志-(右键单击)-属性...,最大日志大小设置为131,072 KB,当前日志大小为131,072 KB。选中了“根据需要覆盖事件”单选按钮。我认为,不断删除和写入日志文件可能是一项艰苦的工作,尤其是当日志文件已满时,因此我选择了清除日志(我保存了旧日志,以防万一我们以后需要对其进行审核)并让EventLog服务创建一个新的空文件。结果:CPU使用率恢复到大约5%的合理水平。