Remote rsyslog schreibt nur Protokolldaten in /var/log/syslog und keine benutzerdefinierten Protokolldateien

Remote rsyslog schreibt nur Protokolldaten in /var/log/syslog und keine benutzerdefinierten Protokolldateien

Ich habe ein Problem beim Einrichten von rsyslog, um Remote-Protokollierungsdaten in eine bestimmte Datei zu protokollieren. Ich habe zwei Windows Server 2008-Boxen, die jeweils eine C#-Anwendung mit NLog.Targets.Syslog haben, die ihre Debugdaten in eine Linux-Box protokollieren. Alle Protokollierungsdaten werden problemlos in /var/log/syslog geschrieben, aber ich möchte für jeden Server eine separate Protokolldatei haben und die Protokollierungsdaten werden nicht in diese benutzerdefinierten Protokolldateien geschrieben.

Hier ist mein Setup:

/etc/rsyslog.conf

$ModLoad imudp
$UDPServerRun 514

Ich habe eine benutzerdefinierte Konfigurationsdatei in /etc/rsyslog.d erstellt

/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 ist der Windows-Computername des Servers. Ich habe es auch mit IP-Adressen versucht, aber das funktioniert auch nicht. Was übersehe ich? Die Protokolldateien befinden sich im Pfad /var/log/dbm/

Ich erhalte diesbezüglich keine Fehlermeldungen von rsyslog und es schreibt alle Remote-Protokollierungsdaten problemlos nach /var/log/syslog. Was mache ich falsch?

Auf dem Protokollierungsserver verwende ich Ubuntu auf einer Amazon EC2-Instanz.

Hier ist meine NLog-Konfiguration:

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

Beispiel-Protokollausgabe in /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

Antwort1

OK, gelöst. Ich habe den Konfigurationseintrag in meiner benutzerdefinierten Datei 22-remote.conf in /etc/rsyslog.d/ wie folgt geändert:

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

Hierzu:

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

verwandte Informationen