원격 rsyslog는 사용자 정의 로그 파일이 아닌 /var/log/syslog에만 로깅 데이터를 기록합니다.

원격 rsyslog는 사용자 정의 로그 파일이 아닌 /var/log/syslog에만 로깅 데이터를 기록합니다.

특정 파일에 원격 로깅 데이터를 기록하도록 rsyslog를 설정하는 데 문제가 있습니다. 디버깅 데이터를 Linux 상자에 기록하는 NLog.Targets.Syslog를 사용하는 C# 응용 프로그램이 각각 있는 두 개의 Windows Server 2008 상자가 있습니다. 모든 로깅 데이터가 /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 인스턴스에서 우분투를 실행하고 있습니다.

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

관련 정보