
Tengo problemas para configurar rsyslog para registrar datos de registro remoto en un archivo específico. Tengo dos cajas de Windows Server 2008 y cada una tiene una aplicación C# que usa NLog.Targets.Syslog que registra sus datos de depuración en una caja de Linux. Todos los datos de registro se escriben en /var/log/syslog sin problemas, pero quiero tener un archivo de registro separado para cada servidor y los datos de registro no se escriben en esos archivos de registro personalizados.
He aquí mi arreglo:
/etc/rsyslog.conf
$ModLoad imudp
$UDPServerRun 514
Hice un archivo de configuración personalizado en /etc/rsyslog.d
/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 es el nombre de la computadora con Windows del servidor. También probé con direcciones IP y tampoco funciona. ¿Qué me estoy perdiendo? los archivos de registro existen en la ruta /var/log/dbm/
No recibo ningún error de rsyslog sobre esto y felizmente escribe todos los datos de registro remoto en /var/log/syslog. ¿Qué estoy haciendo mal?
En el servidor de registro, estoy ejecutando ubuntu en una instancia de Amazon EC2.
Aquí está mi configuración de 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>
Salida de registro de muestra en /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
Respuesta1
Vale, lo solucioné. Cambié la entrada de configuración en mi archivo 22-remote.conf personalizado en /etc/rsyslog.d/ de esto:
:msg, contains, "AMAZONA-COMPUTERNAME1" /var/log/dbm/server-1.log
& ~
:msg, contains, "AMAZONA-COMPUTERNAME2" /var/log/dbm/server2.log
& ~
A esto:
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
& ~