
Quiero configurar un servidor de registro simple para aceptar registros de todos los clientes. No estoy hablando de registros estándar del sistema como /var/log/mail, mensaje, arranque, etc. Quiero redirigir o enviar registros de aplicaciones y es posible que no estén usando el demonio syslog en absoluto para registrar sus mensajes.
Como por ejemplo /appdir/log/error.log.
Me encontré con muchas publicaciones en Internet; la mayoría sugiere usar rsyslog o syslog-ng. Bueno, hasta ahora he podido redirigir los registros estándar del sistema, no los registros de la aplicación. Estoy usando el entorno centos 5/6.
Respuesta1
Hay dos enfoques principales para esto que he visto.
En primer lugar, muchas aplicaciones tendrán la capacidad de escribir en un host syslog de forma nativa. Esta es la mejor ruta a seguir. En otros casos, usaré un script básico; funciona algo como lo que se muestra a continuación.
sudo tail /my/app/log | nc -w0 -u 192.168.1.1 514
EDITAR: de hecho, existe una manera de manejar esto dentro de syslog-ng si lo está ejecutando en el sistema que genera los registros. Sustituya la convención de nomenclatura y el destino según desee. También hay algo similar disponible para rsyslog pero es más complicado (en mi humilde opinión).
source s_trbdk3 {
file("/var/log/trbdk3.log" flags(no-parse) program_override("trbdk3") );
};
log{
source(s_trbdk3);
destination( d_mesg );
};
Respuesta2
El módulo de entrada de rsyslog imfile
puede:
Proporciona la capacidad de convertir cualquier archivo de texto estándar en un mensaje syslog. Un archivo de texto estándar es un archivo que consta de caracteres imprimibles con líneas delimitadas por LF.
Puedes leerla documentación oficialpara más.
Nunca lo he probado y puede que no sea muy eficiente, pero parece que puede hacer el trabajo.
syslog-ng parece ser capaz de hacer algo similar con sufile()
controlador fuente.este ejemplosugiere una declaración de fuente como esta:
source s_all {
file("/path/to/your/file" follow_freq(1) flags(no-parse));
};