![Squid 记录到 syslog-ng - 程序名称带有括号](https://linux22.com/image/590886/Squid%20%E8%AE%B0%E5%BD%95%E5%88%B0%20syslog-ng%20-%20%E7%A8%8B%E5%BA%8F%E5%90%8D%E7%A7%B0%E5%B8%A6%E6%9C%89%E6%8B%AC%E5%8F%B7.png)
使用 Ubuntu 10.04.4 LTS 和 Squid3 我想要记录到 syslog-ng
已编辑/etc/squid3/squid.conf并添加了以下行:
access_log syslog squid
正在写入日志,但程序名称“squid”被添加到括号中,而其他日志则没有程序名称
Jul 25 17:26:23 ubuntuserver kernel:
Jul 25 17:26:24 ubuntuserver named[1231]:
Jul 25 16:17:56 ubuntuserver (squid):
我假设这是 squid3 告诉 syslog-ng“我的程序名称是 (squid)”,并且无法找到任何地方来以不同的方式配置它,因为我想删除括号。
在 syslog-ng 的配置文件中,我尝试输出日志,并且 $PROGRAM 宏肯定也包含括号,这表明它来自 squid,因为此页面显示以下内容:http://www.balabit.com/sites/default/files/documents/syslog-ng-admin-guide_en.html/reference_macros.html
PROGRAM:发送消息的程序的名称。请注意,$PROGRAM 变量的内容可能不完全可信,因为它是由构建消息的客户端程序提供的。
我怎样才能删除括号?
答案1
您可以使用重写规则以任何您想要的方式修复程序名称:
rewrite r_brackets {
subst ("\((.+)\)", "$1", value (PROGRAM));
};
...
log { source (...); ....; rewrite (r_brackets); destination (...); ...; };
答案2
尝试关注论坛帖子这里- 它概述了如何使用 syslog-ng 配置 Squid 和 LogZilla。在文章中,使用的配置正确地发送了程序名称。