两台服务器上的相同 rsyslog 配置,不同的输出

Same rsyslog config on two servers, different output

我开始使用 rsyslog 将日志文件数据发送到远程服务器。

我有开发 (server1) 和生产 (server2)。两个系统都使用相同版本的 CentOS 和 rsyslog。 rsyslog.conf 和 httpd 配置文件是相同的(保存上面的服务器名称)。

问题是其中一个系统正在将自己的 IP 添加到 rsyslog 流,而另一个没有。在下面的日志数据中,我的本地 IP 是 1.2.3.4,服务器 IP 在 99.99.99.X 子网中。


服务器 1 - CentOS 6.5(开发版,99.99.99.77)

Name        : rsyslog
Arch        : x86_64
Version     : 5.8.10
Release     : 10.el6_6

httpd 配置文件:

ErrorLog "| tee -a /var/log/httpd/error_log | 记录器 -thttpd_server1_ssl_error -plocal6.err"

CustomLog "|tee -a /var/log/httpd/access_log | 记录器 -thttpd_server1_ssl_access -plocal5.notice" 组合

rsyslog输出: 注意只包含远程IP...

消息:7 月 6 日 11:57:24 服务器 1 httpd_access:1.2.3.4 - - [06/Jul/2015:11:57:23 -0400] "GET /somepage.html HTTP/1.1" 200 - “https://server1.top.level.domain/”"text/html" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0"


server2 - CentOS 6.5(产品,99.99.99.99)

Name        : rsyslog
Arch        : x86_64
Version     : 5.8.10
Release     : 10.el6_6

httpd 配置文件:

ErrorLog "| tee -a /var/log/httpd/error_log | 记录器 -thttpd_server2_ssl_error -plocal6.err"

CustomLog "|tee -a /var/log/httpd/access_log | logger -thttpd_server2_ssl_access -plocal5.notice" 组合

rsyslog 输出: 注意远程和服务器 IP 都包括在内...

消息:7 月 6 日 11:58:49 服务器 2 httpd_access:1.2.3.4 99.99.99.99 - - [06/Jul/2015:11:58:49 -0400] "GET https://server1.top.level.domain/ HTTP/1.1" 200 443 20


问题是两个服务器之间 httpd.conf 文件中的 LogFormat 不同。

server2 上,我更改了

LogFormat "%h %A %l %u %t \"%r\" %>s %p %b" combined

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{Content-Type}o\" \"%{User-Agent}i\"" combined

server1 上的内容相匹配。

然后我重新启动了 apache,现在两台服务器都有相同的 rsyslog 数据流 (这意味着我在出站日志数据中看到的只是远程用户 IP 而不是远程和服务器 IP)。