遠端 rsyslog 僅將日誌記錄資料寫入 /var/log/syslog 而不是自訂日誌文件

遠端 rsyslog 僅將日誌記錄資料寫入 /var/log/syslog 而不是自訂日誌文件

我在設定 rsyslog 將遠端日誌記錄資料記錄到特定檔案時遇到問題。我有兩個 Windows Server 2008 機器,每個機器都有一個使用 NLog.Targets.Syslog 的 C# 應用程序,它將調試資料記錄到 Linux 機器上。所有日誌記錄資料都很好地寫入 /var/log/syslog ,但我希望每個伺服器都有一個單獨的日誌文件,並且日誌記錄資料不會寫入這些自訂日誌文件。

這是我的設定:

/etc/rsyslog.conf

$ModLoad imudp
$UDPServerRun 514

我在 /etc/rsyslog.d 中建立了一個自訂conf文件

/etc/rsyslog.d/22-remote.conf

:msg, contains, "AMAZONA-COMPUTERNAME1" /var/log/dbm/server-1.log
& ~
:msg, contains, "AMAZONA-COMPUTERNAME2" /var/log/dbm/server2.log
& ~

*.* /var/log/syslog.log

AMAZONA-COMPUTERNAME1 是伺服器的 Windows 電腦名稱。我也嘗試過IP位址,但還是不行。我缺什麼?日誌檔案存在於路徑 /var/log/dbm/ 中

我沒有從 rsyslog 收到任何關於此的錯誤,它很高興地將所有遠端日誌記錄資料寫入 /var/log/syslog 我做錯了什麼?

在日誌伺服器上,我在 Amazon EC2 執行個體上執行 ubuntu。

這是我的 NLog 配置:

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  <extensions>
    <add assembly="NLog.Targets.Syslog" />
  </extensions>

  <targets>
    <target name="syslog" type="Syslog" syslogserver="server ip here" port="514" facility="Local7"/>
  </targets>

  <rules>
    <logger name="*" minLevel="Trace" appendTo="syslog"/>
  </rules>
</nlog>

/var/log/syslog 中的範例日誌輸出

Oct 15 18:18:50 AMAZONA-COMPUTERNAME2 NLog: 2012-10-15 18:18:50.2890|DEBUG|myapp.download.excel.ExcelWorkbook|  -- Copied in the data table: 0
Oct 15 18:18:50 AMAZONA-COMPUTERNAME2 NLog: 2012-10-15 18:18:50.2890|DEBUG|myapp.download.excel.ExcelWorkbook|  -- Formatted Header and Footer: 0

答案1

好的,解決了。我將 /etc/rsyslog.d/ 中的自訂 22-remote.conf 檔案中的設定條目更改為:

:msg, contains, "AMAZONA-COMPUTERNAME1" /var/log/dbm/server-1.log
& ~
:msg, contains, "AMAZONA-COMPUTERNAME2" /var/log/dbm/server2.log
& ~

對此:

if $fromhost-ip == '10.11.12.12' then /var/log/dbm/server-1.log
& ~
if $fromhost-ip == '10.11.13.13' then /var/log/dbm/server2.log
& ~

相關內容