我有一个问题,设置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 & ~