
Ich verwende nxlog, um zwei vCenter-Protokolldateien auf einem Windows Server 2008-System zu überwachen, und habe eine sehr einfache Konfiguration, um Nachrichten an Logstash zu senden. Nxlog funktionierte gestern nicht mehr, nachdem eine Datei rotiert wurde. Hier ist meine Konfiguration:
<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>
Die vCenter-Protokollrotation ist etwas seltsam, daher denke ich, dass sie zumindest teilweise dieses Problem verursacht. Oben sehen Sie den Dateinamen, den ich beobachte. Diese Datei wird als vpxd-01.log erstellt und von dort aus inkrementiert. Die Dateien werden rotiert, wenn sie 50 MB erreichen, und alte Protokolle werden komprimiert, nachdem zwei neue Dateien erstellt wurden, z. B. wird vpxd-03 erstellt und vpxd-01 wird komprimiert.
Aber gestern wurde die erste Datei, die nxlog überwacht hatte (seit der Installation letzte Woche), rotiert, was diesen Fehler verursachte:
2013-12-28 19:41:08 WARNING input file does not exist: C:\ProgramData\VMware\VMware VirtualCenter\Logs\vpxd-47.log
Dies wiederholt sich innerhalb der nächsten 24 Stunden 12 Mal und dann ist nxlog vollständig ausgefallen, bis ich den Dienst gestern Morgen neu gestartet habe.
Hoffentlich ist meine Erklärung verständlich. Ich habe am Ende etwa sechs Stunden an Protokollen verloren und möchte sicherstellen, dass das nicht noch einmal passiert. Hat jemand eine Lösung oder Vorschläge?
Antwort1
Versuchen Sie es mit dieser Eingabe, statt [0-5][0-9] fest zu definieren:
<Input in2>
Module im_file
File "C:\ProgramData\VMware\VMware VirtualCenter\Logs\vpxd-*.log"
SavePos TRUE
</Input>