如何将第三方日志redirect到Centos中的日志服务器

我想设置一个简单的日志服务器来接受来自所有客户端的日志。 我不是在谈论标准的系统日志,如/ var / log / mail,消息,启动等。我想redirect或发送应用程序日志,他们可能不会使用syslog守护进程logging他们的消息。

如/appdir/log/error.log。

我在互联网上跑过很多post; 大多数build议使用rsyslog或syslog-ng。 那么到目前为止,我已经能够redirect标准的系统日志而不是应用程序日志。 我正在使用centos 5/6环境。

有两个主要的方法,我见过。

首先,许多应用程序将能够本地写入系统日志主机。 这是最好的路线。 在其他情况下,我会使用一个基本的脚本 – 如下所示的作品。

sudo tail /my/app/log | nc -w0 -u 192.168.1.1 514 

编辑 – 如果你在生成日志的系统上运行它,在syslog-ng中确实有办法处理这个问题。 根据需要replace命名约定和目的地。 类似的东西也可用于rsyslog,但它是笨重的(imho)。

 source s_trbdk3 { file("/var/log/trbdk3.log" flags(no-parse) program_override("trbdk3") ); }; log{ source(s_trbdk3); destination( d_mesg ); }; 

imfileimfileinput模块可以:

提供将任何标准文本文件转换为系统日志消息的function。 标准文本文件是由可打印字符组成的文件,其中行由LF定界。

你可以阅读更多的官方文档 。

我从来没有尝试过,这可能不是非常有效,但它听起来像可以做的工作。

syslog-ng似乎可以用它的file()源驱动程序做类似的事情。 这个例子build议像这样的源代码声明:

 source s_all { file("/path/to/your/file" follow_freq(1) flags(no-parse)); };