根据该文件: http://www.squid-cache.org/Doc/config/access_log/
squid 应该能够使用以下指令记录到 rsyslog:
access_log syslog:daemon.info squid
cache_log syslog:daemon.info squid
但是当我尝试重新启动它时,我得到:
WARNING: Cannot write log file: syslog:daemon.info
syslog:daemon.info: Permission denied
messages will be sent to 'stderr'.
我也尝试了 local0-local7 的所有设施,结果都一样。看来 rsyslog 不允许 squid 登录。Squid 正在使用代理用户运行。
知道如何修复这个问题吗?
答案1
嗯,这并不容易修复,主要是通过实验来完成的:
只有:
access_log syslog squid
cache_log syslog squid
配置中的指令正在运行,但它们甚至会在 Squid 3 启动时产生相同的错误:
ARNING: Cannot write log file: syslog
syslog: Permission denied
messages will be sent to 'stderr'.
任何其他操作(包括使用 -s)均无效!一旦应用这些指令,Squid 将完全停止向 access.log 和 cache.log 文件记录日志。
不幸的是,如果不定义设施,这将淹没消息+syslog文件,但我会将其留给rsyslog规则来过滤掉它们。
答案2
在 squid.conf 中你可能需要这样写
access_log syslog:local2 squid
然后在 rsyslog 中
local2.* @@syslogserverip:syslogport
答案3
对 Mansur 的上述回答进行更正
在 squid.conf 中你可能需要这样写
access_log syslog:local2.info squid
access_log syslog:local2.* squid
然后在 rsyslog 中
local2.* @@syslogserverip:syslogport