Windows-Server-2008-R2

Windows 事件日誌中超過 4 GB 的含義是什麼?

  • August 3, 2018

我發現這個 Microsoft KB 涵蓋了最高為 Windows 2008/Vista 的作業系統的建議事件日誌設置最大值,它建議最大為 4GB,並且看到了一些其他模糊的參考,即至少不建議使用大於 4 GB 的事件日誌2008 R2,但我想知道如果事件日誌超過這個大小會發生什麼?

我已經在測試伺服器(2012 R2)上超過了這個值,並且沒有註意到像高記憶體使用等任何事情。我們不關心 2008 R2 之前的作業系統,但想要一個大日誌,因為我們正在通過許多機器收集事件Windows 事件轉發並希望將所有事件集中在一個地方。

除了當您必須載入 4 GB 日誌時糟糕的性能和荒謬的等待時間之外,如果您必須搜尋這樣一個可怕的東西,那將是地獄,不多。我認為我在我的環境中看到的最大的是 10 GB,雖然我放棄了等待它載入,但它似乎並沒有造成任何損害。

Server 2008 的 4GB 警告是由於在 4 GB 時經常遇到的 32 位限制。在 64 位系統上,讓它增長到 16 TB(或 64,具體取決於)應該沒問題,儘管我不知道是否有人已經接近測試該限制。

當然,如果您還沒有,您會發現使用非常大的日誌文件根本不切實際 - 上次我嘗試載入一個簡單的 100 GB(文本)日誌文件時,甚至無法打開它崩潰打開它的應用程序,我懷疑你會在 100 GB 之前遇到這個問題。

更好的方法是將文件大小限制在合理的範圍內,並不時使用腳本將其清除。我在我的環境中使用以下內容,並結合我們的安全日誌的 1 GB 大小限制。我們的一些(嗯,大多數)伺服器每天生成超過 3 GB 的安全事件,我們不想將所有空間浪費在我將在梳理之前退出的巨大日誌文件上,所以我的腳本將日誌內容複製到另一個文件夾,然後清除要再次寫入的事件日誌。而且由於我將它們複製到的文件夾已備份,因此我們總是可以在需要的可怕事件中返回日誌。

#Adapted from: http://blogs.technet.com/b/heyscriptingguy/archive/2009/04/08/how-can-i-check-the-size-of-my-event-log-and-then-backup-and-archive-it-if-it-is-more-than-half-full.aspx

Param($logName = "security",$backupFolder = "C:\backupLogs")

Function Get-EventLog([string]$logName)
{
$log = Get-WmiObject -Class Win32_NTEventLogFile -filter "LogFileName = '$logName'"
If($log.FileSize / $log.MaxFileSize -ge .9)
 {
  "Log is at least 90% full. Backing up now."
  Backup-EventLog($log)
 } #end if
Else 
{ 
  "Not backed up: $logName is only " + ($log.FileSize / $log.MaxFileSize).tostring("N2") +  " percent full" 
} #end else
} #end Get-EventLog

Function Backup-EventLog($log)
{
$folder = Join-Path -Path $BackUpFolder -ChildPath (Get-Date).ToString("MMddyy_hhmm")
If(-not(Test-Path $folder)) 
  { 
    New-Item -path $folder -itemtype Directory -force | out-Null
  }
 $rtn = $log.BackupEventLog("$folder\$logName.evt").ReturnValue
 If($rtn -eq 0)
   {
    $log.ClearEventLog() | out-null
   } #end if
ELSE 
  {
   "$logName could not be cleared. Backup ended with $($rtn)" 
 }
} #end Backup-EventLog

# *** ENTRY POINT ***
Get-EventLog -logname $logname

引用自:https://serverfault.com/questions/671116