rsyslog 服务器生成以 IP 地址命名的日志文件而不是 access_log

rsyslog server generating log files named for IP address instead of access_log

我有一个 syslog-ng 服务器配置为将所有 apache 日志消息发送到远程 rsyslog 服务器。以下是我的 syslog-ng 服务器配置的相关部分:

source s_http {
    file("/var/log/httpd/access_log" flags(no-parse));
};

...

destination loghost { tcp("10.0.0.48" port(514)); }; 

...

log { source(s_http); destination(loghost); };

我希望在远程 rsyslog 服务器 (10.0.0.48) 上找到文件:/apps/log/my-web-server/access_log。但相反,我在 /apps/log/my-web-server/ 中找到了几个文件,这些文件以命中 my-web-server 且扩展名为 .log 的客户端的 IP 地址命名。

[root@10.0.0.48]# pwd
/apps/log/my-web-server
[root@10.0.0.48]# ls -l
total 140
-rw-------. 1 root root   4862 Aug 14 16:39 10.0.0.97.log
-rw-------. 1 root root    193 Aug 14 15:45 10.0.0.201.log

为什么日志消息不进入一个名为 access_log 的文件?

更新:

在 10.0.0.48 的 rsyslog 服务器上,我在 /etc/rsyslog.conf

中看到这些行
$template RemoteStore, "/apps/log/%HOSTNAME%/%PROGRAMNAME%.log"
$template RemoteStoreFormat, "%msg%\n"
:source, !isequal, "localhost" -?RemoteStore;RemoteStoreFormat
:source, isequal, "last" STOP

这是什么意思?

我需要改变...

source s_http {
    file("/var/log/httpd/access_log" flags(no-parse));
};

...到这个...

source s_http {
    file("/var/log/httpd/access_log" program-override("apache_access_log"));
};