如何将日志重定向到 fifo 设备?

如何将日志重定向到 fifo 设备?

我的 rsyslog 配置文件中有以下行:

*.*;auth,daemon,kern,user   -/dev/logi

它做了它应该做的事情,但我想将一些 iptables 日志发送到不同的文件,所以我将以下内容添加到 rsyslog.conf 文件中:

:msg,contains,"IPTABLES:" /var/log/iptables
& stop

我创建了 /dev/fw device ,但我不知道如何将文件的新内容发送到该设备。有办法做到吗?

答案1

我终于找到了解决办法。

这是我在系统启动时创建的 fifo 设备:

LOG_DEV=/dev/logi
if [ ! -r $LOG_DEV ]; then
    mkfifo $LOG_DEV
    chmod 640 $LOG_DEV
    chown root:morfik $LOG_DEV
fi

我刚刚将其添加到/etc/init.d/rsyslog文件中。

有了该设备,我可以通过在文件中放置以下行来将所有日志发送到那里/etc/rsyslog.conf

*.*                 -/dev/logi

它是规则部分的第一行,因此每个日志都会到达那里并继续处理配置文件中的其他规则。该文件中的下一条规则是:

:msg,contains,"IPTABLES:" /var/log/iptables
& stop

它将 iptables 日志发送到特定文件,执行此操作后,rsyslog 仅停止处理包含短语的条目IPTABLES:。接下来的规则只是 rsyslog 配置文件中的普通规则。

所以我得到了我想要的——所有日志都发送到 fifo 设备 + iptables 条目的单独日志文件。

相关内容