按用户过滤 rsyslog 消息

按用户过滤 rsyslog 消息

有没有办法通过用户 ID 过滤发送到 rsyslog 的消息?假设我想确保只有 root 发送的消息才会记录到单独的文件中(基于 rsyslog 规则),而非特权用户(例如使用记录器实用程序)生成的消息将被丢弃。

答案1

是的,至少对于来自 SystemD 日志的消息可以。

load="imuxsock"将行更改/etc/rsyslog.conf为:

module(load="imuxsock" SysSock.Annotate="on" SysSock.ParseTrusted="on")

添加到 Syslog 配置:

if $!uid == '0'  then /var/log/root.log
if $!uid == '33' then /var/log/www-data.log

我已经学会了这一点这里

选修的:如果您想添加“经典” syslog Unix 套接字作为输入(不是 TCP),请在“模块”行下方添加以下内容:

input(type="imuxsock" Socket="/dev/rsyslog" Annotate="on" ParseTrusted="on")

$!uid也将适用于记录到该系统日志套接字的消息。

答案2

现在无法测试这一点,但是 /etc/rsyslog.conf 文件中的这一行不应该起作用吗?

root.*                        -/var/log/root_messages.log

相关内容