¿Cómo reenviar un archivo de registro específico fuera de / var / log con rsyslog al servidor remoto?


25

¿Cómo puedo reenviar un mensaje desde un archivo de registro específico como /www/myapp/log/test.logcon el rsyslogcliente al rsyslogservidor remoto ? Este archivo de registro está fuera del directorio /var/log.

Respuestas:


43

Simplemente configure una regla de archivo en su /etc/rsyslog.conf

#/etc/rsyslog.conf
$ModLoad imfile
$InputFileName /data/mysql/error.log
$InputFileTag mysql-error
$InputFileStateFile stat-mysql-error
$InputFileSeverity error
$InputFileFacility local3
$InputRunFileMonitor
local3.* @@hostname:<portnumber>

Esto mira un archivo y lo guarda en la instalación local3 en syslog. Luego puede enviar todos los datos de la instalación local3 a su servidor remoto. También puede agregar lo siguiente a su conf rsyslog (generalmente /etc/rsyslog.d/50-default.conf en Ubuntu) para no guardar la instalación local3 en / var / log / syslog:

#/etc/rsyslog.d/50-default.conf
*.*;auth,authpriv.none,local1.none,local2.none,local3.none,local4.none,local5.none,local6.none          -/var/log/syslog

Además, recomendaría leer algunos de los siguientes documentos de rsyslog para un filtrado más avanzado:

  1. El sustituto de la propiedad
  2. Condiciones de filtro

Esto es muy útil, gracias Bryan. Mi único desafío aquí es que la línea para mantener los registros adicionales fuera del lado del cliente / var / log / syslog no funciona para mí en Ubuntu 12.04. Probablemente un PEBKAC, pero me pregunto si este es un desafío conocido.
James T Snell

1
Lo averigué. Mi problema fue que /etc/rsyslog.d/50-default.conf ya tenía una declaración que comenzaba con . ; auth; authpriv.none .. Esa línea parece tener prioridad. Entonces, al agregar la última línea que ha dado, no tiene ningún efecto. En cambio, el similar preexistente debe ser modificado. Muy útil. ¡Gracias!
James T Snell

1

En ubuntu, también tuve que comentar las líneas de privilegios de caída para que el rsyslog realmente lea el archivo de registro fuera de / var / logs.

#/etc/rsyslog.conf
$ModLoad imfile
$InputFileName /data/mysql/error.log
$InputFileTag mysql-error
$InputFileStateFile stat-mysql-error
$InputFileSeverity error
$InputFileFacility local3
$InputRunFileMonitor
local3.* @@hostname:<portnumber>

# Set the default permissions for all log files.
#
#$FileOwner syslog
#$FileGroup adm
#$FileCreateMode 0640
#$DirCreateMode 0755
#$Umask 0022
#$PrivDropToUser syslog
#$PrivDropToGroup syslog
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.