我发现了syslog-ng的一个很好的特性:如果我使用记录器从用户进程中记录东西,我就会得到日志用户名。因此:
peterh$ echo test log message|logger
然后我在/var/log/messages
上得到了这个:
Oct 12 16:38:29 thehost peterh: test log message
其中“主机”是服务器的主机名,"peterh“是我给出的命令下面的用户名。
现在我想要的是:我希望将特定用户的日志条目收集到带有syslog-ng的特定文件中。
用于过滤整个日志条目的syslog-ng的外观很差,但有时起作用:
# Doesn't work - it doesn't do anything
filter f_peterh { match('peterh'); };
destination d_filter { file("/var/log/peterh.log"); };
log { source(s_src); filter(f_peterh); destination(d_peterh); };
网络上的许多可用文档都讨论从日志消息的二进制格式到相关的RFCs的所有内容,除了我如何过滤syslog中的用户名之外。
该怎么做呢?
发布于 2020-04-29 20:43:10
我不知道这是否还在为您服务,但是对于其他试图通过用户名进行过滤的人来说,这就是我所能做到的。
我创建了以下过滤器。
filter sampleUserFilter {
facility (user) and match ("myUser" value ("PROGRAM"));
};
这允许我将消息从特定用户(使用记录器)路由到单独的文件。
https://unix.stackexchange.com/questions/475100
复制相似问题