ログローテーションにより nxlog が失敗する

ログローテーションにより nxlog が失敗する

私は nxlog を使用して Windows Server 2008 システム上の 2 つの 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 として作成され、そこから増加します。ファイルは 50 MB に達するとローテーションされ、2 つの新しいファイルが作成された後に古いログが圧縮されます。たとえば、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 は完全に失敗しました。

私の説明が意味を成すといいのですが。結局、約 6 時間分のログが失われてしまったので、二度とこのようなことが起こらないようにしたいです。何か解決策や提案はありますか?

答え1

[0-5][0-9]を厳密に定義する代わりに、この入力を使用してみてください。

<Input in2>
    Module      im_file
    File        "C:\ProgramData\VMware\VMware VirtualCenter\Logs\vpxd-*.log"
    SavePos     TRUE
</Input>

関連情報