Rsyslog 在特定设施中将文本添加到消息前面

Rsyslog 在特定设施中将文本添加到消息前面

操作系统:Debian 11 Rsyslog 版本 8.2102 Squid 版本 4.13

我尝试在不通过文件的情况下远程记录 squid 日志。我在 squid.conf 中使用以下日志行来记录存储日志:

cache_store_log syslog:local:6

这些存储日志出现在日志中,因此它们按预期跳过标准日志文件。

当这些日志生成时,它们与 squid 访问日志没有明显的区别。因此,为了正确处理这些日志,我想在所有 local6 日志的开头添加一个字符串,例如squid-store

在 rsyslog.conf 中我有以下相关行:

$template squidstore_tagged,"squid-store %msg%\n"
local6.* @192.168.3.2:1514;squidstore_tagged

*.* @192.168.3.2:1514

尽管 rsyslog 进程重新启动时没有出现错误,并且 squid 存储日志确实到达了远程服务器,但它们没有标记为“squid-store”。然后我尝试使用此配置进行故障排除,但日志仍然到达了远程服务器:

#$template squidstore_tagged,"squid-store %msg%\n"
#local6.* @192.168.3.2:1514;squidstore_tagged
local6.* /dev/null
*.* @192.168.3.2:1514

如何在远程发送之前用一些文本标记来自 Squid 存储的日志?

答案1

我不是 squid 用户,但是缓存存储日志 指的是 访问日志 对于要使用的格式,它看起来更像是:

cache_store_log syslog:local6.info

另请注意,在rsyslog.conf文件中,您可能应该在过滤器行下方添加“停止”行,例如:

local6.* @192.168.3.2:1514;squidstore_tagged
& stop

这会停止对匹配消息的进一步处理,因此您也不会在本地记录它。

相关内容