Logs如何將具有唯一 id 子字元串的核心消息重定向到單獨的日誌文件中(使用
如何將具有唯一 id 子字元串的核心消息重定向到單獨的日誌文件中(使用 rsyslog
)?
我正在使用
iptables
的日誌記錄功能來調試我的網路活動。我使用帶有--log-prefix
參數的某些前綴來唯一標識核心日誌中屬於iptables
輸出的消息,例如::IPT::LOG::
.如何配置
rsyslog
以將這種方式標記的消息重定向到單獨的日誌文件中?手冊頁對rsyslog
我來說看起來太神秘了。
除了基於選擇器的過濾之外,rsyslogd 還可以過濾在日誌消息屬性中找到的模式。要完成您想要做的事情,您可以創建一個基於屬性的過濾器來匹配您在 iptables 規則中使用的字元串。如果要
--log-prefix "unique_prefix: "
在 iptables 規則中使用,則需要將其添加到 rsyslog.conf::msg,startswith,"unique_prefix" /var/log/iptables
此規則將為您的前綴測試日誌消息並將它們發送到 /var/log/iptables(除了 rsyslog 配置為發送它們的任何其他位置)。如果您需要讓消息出現在 /var/log/iptables 而不是其他地方,請將新規則放在其他規則之上,並在其後面加上一行包含
& ~
. 完整範例::msg,startswith,"unique_prefix" /var/log/iptables & ~ # # The rest of my rules appear below # ... *.info;mail.none;authpriv.none;cron.none /var/log/messages
Rsyslog 規則可以有多個操作。
&
後續操作在以 & 符號 ( )開頭的新行上定義。在上面的範例中,第一條規則有兩個操作:將輸出發送到 /var/log/iptables,然後丟棄消息 (~
)。有關此答案中規則的更多資訊,請參閱有關操作和過濾器的rsyslog 文件編輯使用
startswith
而不是contains
出於性能考慮。由於 iptables--log-prefix
確實是一個前綴,因此將在消息的開頭。