了解 syslog conf - 针对特定类型/标签的日志

了解 syslog conf - 针对特定类型/标签的日志

我正在合并主机上多个 docker 容器的日志文件,并将它们发送到远程日志服务。我只是将输出重定向到记录器并对其进行标记:

docker-compose logs 2>&1 | logger -t deviant

可以通过以下方式轻松配置:

*.*  @remote_service:remote_port

但是,*.*当我只想将重定向的日志发送到远程服务时,会匹配来自主机的各种日志。

这是我想要捕获的日志的示例:

Apr 08 08:55:04 calvin.local deviant:  proxy_1 | 192.168.59.3 - - [08/Apr/2015:15:55:04 +0000] "stuff here"

注意它包含calvin.local deviant

包含以下内容的条目deviant是我想要的。我尝试指定哪些日志条目,如下所示:

*deviant*

deviant...并重新启动日志记录...但我仍然在远程日志中看到所有条目(不仅仅是标记的条目)。为什么?

答案1

syslog.conf只能根据给定的设施和消息级别分配操作。

指定的标签logger -t [tag]不能用于 syslog 识别消息。但是,您可以使用-p [facility.level]'选项来logger设置自定义设施和级别,例如:

logger -t deviant -p local3.info

然后在 syslog.conf 中您可以捕获并重定向这些消息:

local3.info  @remote_service:remote_port

尝试寻找其他服务未使用的设施。local0到之一将是不错的选择local7

当你指定一个级别时,例如info,默认情况下它表示规则将匹配的最低级别。

阅读更多:

相关内容