我正在尝试使用 syslog-ng 将日志转发到我的中央系统日志服务器。但它不起作用。
这是我在 syslog-ng.conf 中添加的行
source s_access { file("/var/log/httpd/access_log" follow_freq(10) flags(no-parse)); };
destination logserver { udp("xxxxxx.amazonaws.com" port(514)); };
log { source(s_access); destination(logserver); };
但是当我重新启动时,出现以下错误。
[root@ip-10-244-143-226 ~]# /etc/init.d/syslog-ng restart
Stopping syslog-ng: [ OK ]
Starting syslog-ng: syntax error at 79
Parse error reading configuration file, exiting. (line 79)
[FAILED]
第79行是定义source s_access的行。
可能是什么问题?
请有人帮我解决这个问题:( 下面这行就是问题所在。 源 s_access { file("/var/log/httpd/access_log"follow_freq(10) flags(no-parse, validate-utf8)); };
但我不明白哪里出了问题。
我有 apache、tomcat 和一些自定义应用程序,我需要将这些日志发送到远程中央系统日志服务器。
最佳答案
如果您尝试将 Apache 事件记录到 syslog-ng,那么您会遗漏一些东西。有一篇来自 LogZilla here 的博文这解释了执行此操作的步骤。您应该能够根据您的需要进行调整。但为了完整起见,我将在此处重新发布,以防博客页面被删除:
此方法不仅限于 Apache,而且适用于任何通用日志格式日志。以通用日志格式存储的文件中的每一行都具有以下语法:
host ident authuser date request status bytes
第一步是将新源添加到 syslog-ng 配置中。在/etc/syslog-ng/conf.d 目录中,我们将创建一个文件并将其命名为 apache.conf。
cd /etc/syslog-ng/conf.d
vi apache.conf
在编辑器中打开文件后,我们将首先添加源代码。
source s_apache {
file("/var/log/apache2/access.log");
file("/var/log/apache2/error.log");
};
如果您已在 Web 服务器上启用了 ssl-access.log,则还可以添加它。在同一个文件中,我们需要添加一个目的地。
log { source(s_apache);
destination(d_tls);
};
在此示例中,目标是在上一教程中创建的 TLS 隧道。保存文件并退出,然后重新启动 syslog-ng。
service syslog-ng restart
您现在应该在 Logzilla 服务器上接收 apache 事件,但它们看起来有点不对劲。那是因为它们还没有被格式化。为此,我们需要编辑 apache 配置。此步骤仅适用于 Apache。对于其他通用日志格式源,每个源都有自己的格式化解决方案。
cd /etc/apache2
vi apache2.conf
在该文件中,您将找到如下行:
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\" %v" combined
需要添加一些内容(它将忽略预设日期)。
LogFormat "Jan 12 12:12:12 %v apache[666]: %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\" %v" combined
保存文件并重新启动 Apache,您的日志应如下所示:
0 www user notice apache None 97.76.75.78 - - [07/Nov/2013:15:14:41 -0500] "GET /highslide/highslide.css HTTP/1.1" 304 209
"http://www.yourserver.com/" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0; EIE10;ENUSMSN)"
www.yourserver.com
关于linux - 通过syslog-ng转发日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22187893/