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"));
};
我有一个 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"));
};