关于远程日志服务器上的apache访问/错误日志,我有一个非常烦人的情况。
networking服务器:股票阿帕奇login:
ErrorLog "|/usr/bin/logger -p local7.err -t www.sitename.com" CustomLog "|/usr/bin/logger -p local7.info -t www.sitename.com" "combined"
rsyslogconfiguration如下:
local7.info @log.remote.lan local7.err @log.remote.lan
到现在为止还挺好。 所有日志都在远程日志服务器上结束。 在该服务器上,我已经configuration了syslog-ng,如下所示:
options { long_hostnames(off); flush_lines(0); use_dns(no); use_fqdn(no); owner("root"); group("adm"); perm(0644); dir_perm(0755); stats_freq(0); bad_hostname("^gconfd$"); create_dirs(yes); keep_hostname (yes); }; destination hosts_acc { file("/var/log/remote/${newmsghdr}/$R_YEAR/$R_MONTH/$R_DAY/access.log"); }; destination hosts_err { file("/var/log/remote/${newmsghdr}/$R_YEAR/$R_MONTH/$R_DAY/error.log"); }; filter f_access { message("GET|POST|OPTIONS|HEAD"); }; filter f_error { message('\[error\]'); }; log { source(s_lan); rewrite(r_msghdr); filter(f_access); destination(hosts_acc); flags("final");}; log { source(s_lan); rewrite(r_msghdr); filter(f_error); destination(hosts_err); flags("final"); };
这两个日志工作正常。 但是…错误日志在日志文件中插入两次。 当我将Web服务器设置为login到本地文件时,该错误在该文件中只出现一次。 任何线索?
由于rsyslogd.conf中的这些行,您将发送两次日志行:
local7.info @log.remote.lan local7.err @log.remote.lan
当你指定信息,这意味着信息和所有更高的优先级将被发送,不仅信息。 由于err比info具有更高的优先级,所以可以删除第二行,这样日志只会被发送一次。