Protokollrotation verursacht nxlog-Fehler

Protokollrotation verursacht nxlog-Fehler

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>

verwandte Informationen