远程rsyslog只将日志数据写入/ var / log / syslog而不是自定义日志文件

我有一个问题,设置rsyslog将远程日志logging数据logging到特定的文件。 我有两个Windows Server 2008盒子,每个盒子都有一个使用NLog.Targets.Syslog的C#应用​​程序,它们将debugging数据logging到一个linux盒子中。 所有的日志logging数据都被写入到/ var / log / syslog中,但我希望每个服务器都有一个单独的日志文件,并且日志logging数据没有被写入这些自定义日志文件。

这是我的设置:

/etc/rsyslog.conf

$ModLoad imudp $UDPServerRun 514 

我在/etc/rsyslog.d中创build了一个自定义的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地址,也不pipe用。 我错过了什么? 日志文件存在于path/ var / log / dbm /

我没有从rsyslog得到关于这个的任何错误,它愉快地写所有的远程日志数据到/ var / log / syslog我做错了什么?

在日志logging服务器上,我在Amazon EC2实例上运行ubuntu。

这是我的NLogconfiguration:

 <?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 

好的,解决了。 我更改了/etc/rsyslog.d/中的自定义22-remote.conf文件中的configuration项:

 :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 & ~