
我正在使用 nxlog 來監視 Windows Server 2008 系統上的兩個 vCenter 日誌文件,並且我有一個非常簡單的配置來將訊息發送到 Logstash。昨天,檔案輪替後,Nxlog 開始失敗。這是我的配置:
<Extension syslog>
Module xm_syslog
</Extension>
<Input in1>
Module im_file
File "C:\ProgramData\VMware\VMware VirtualCenter\Logs\vpxd-[0-5][0-9].log"
SavePos TRUE
</Input>
<Input in2>
Module im_file
File "C:\ProgramData\VMware\VMware VirtualCenter\Logs\vpxd-alert-[0-5][0-9].log"
SavePos TRUE
</Input>
<Processor buffer1>
Module pm_buffer
MaxSize 1024
Type Mem
WarnLimit 512
</Processor>
<Processor buffer2>
Module pm_buffer
MaxSize 1024
Type Mem
WarnLimit 512
</Processor>
<Output out1>
Module om_udp
Host <ip>
Port 514
</Output>
<Output out2>
Module om_udp
Host <ip>
Port 514
</Output>
<Route 1>
Path in1 => buffer1 => out1
</Route>
<Route 2>
Path in2 => buffer2 => out2
</Route>
vCenter 日誌輪換有點奇怪,所以我認為它至少部分導致了這個問題。您可以從上面看到我正在觀看的檔案名稱。該檔案創建為 vpxd-01.log 並從那裡遞增。檔案達到 50MB 時會輪換,舊日誌會在建立兩個新檔案後進行壓縮,例如建立 vpxd-03 並壓縮 vpxd-01。
但昨天 nxlog 開始監視的第一個檔案(自上周安裝以來)被輪換,導致此錯誤:
2013-12-28 19:41:08 WARNING input file does not exist: C:\ProgramData\VMware\VMware VirtualCenter\Logs\vpxd-47.log
它在接下來的 24 小時內重複了 12 次,然後 nxlog 完全失敗,直到我昨天早上重新啟動該服務。
希望我的解釋有意義。我最終丟失了大約六個小時的日誌,所以我想確保這種情況不會再次發生。有人有任何解決方案或建議嗎?
答案1
嘗試使用此輸入而不是硬定義 [0-5][0-9]:
<Input in2>
Module im_file
File "C:\ProgramData\VMware\VMware VirtualCenter\Logs\vpxd-*.log"
SavePos TRUE
</Input>