有什么方法可以限制其对 Windows 事件日志的source
影响log
?
即大多数系统都会将事件报告给application
事件日志。当出现问题时,一个系统会特别大声地发出警报,在几秒钟内记录数千个错误,因为它不断重试并失败某些操作,而每次尝试之间都不会暂停。这意味着不仅有问题的系统的事件日志只能回溯几分钟,而且整个application
日志都会被淹没,从而丢失同一服务器上其他系统的有用信息。
我无法对有问题的系统做任何事情(除了禁用它),但是有没有什么办法可以做到:
- 限制单个保存的记录数
source
;即,使其不能填满整个log
- 将其移至
source
其他位置log
;以便应用程序认为它正在将问题报告给同一个地方,但现在这些问题被孤立在其他地方? - 还能做些什么来保护我的日志免受此罪犯的侵害?
我尝试过简单地在不同的日志下重新创建源(参见下面的 PowerShell),但没有任何效果(新日志出现了,但应用程序似乎能够继续向旧日志报告):
Remove-EventLog -Source 'OffendingAppSource'
New-EventLog -Source 'OffendingAppSource' -LogName 'OffendingAppLog'
答案1
有什么方法可以限制一个源对 Windows 事件日志的影响?
我认为可以采取四项措施来限制影响:
- 系统已硬编码写入此日志。如果不访问源代码,这一点不会改变。请联系系统创建者/供应商,请求他们仅针对该应用程序写入自定义日志。
- 您可以通过创建事件触发任务来更改故障事件的频率。让您的任务触发日志中充斥的事件,并运行自定义脚本来停止服务并运行一些健康检查,然后在一切正常后重新启动服务。这样,您就可以控制系统记录故障事件的频率。
- 增加应用程序日志文件的大小并将日志配置为自动备份而不是覆盖事件。
- 设置将 Windows 事件转发到事件收集器,并在事件订阅中隐藏来自此应用程序源的事件。这非常适合将所有服务器事件集中到一个中心位置以供审查或提取到 SIEM(如 Splunk)中。