rsyslog conf文件問題
我正在執行 Fedora (F19),我的*/var/log/messages*充滿了來自 avahi-daemon 的資訊:類似:
Jan 21 14:13:42 localhost avahi-daemon[554]: Invalid response packet from host 10.10.22.3.
從我的本地網路
因為我在某處讀到它是無害的,但我目前沒有時間調試它,所以我考慮通過修改*/etc/rsyslog.conf*來禁用報告。
我修改了這一行:
*.info;mail.none;authpriv.none;cron.none /var/log/messages
到這條線
*.info;mail.none;authpriv.none;cron.none;avahi-daemon.none /var/log/messages
但是使用新行 rsyslog 不再起作用了!
systemctl restart rsyslog將其報告為正在執行,但沒有任何內容寫入消息- 執行通常被報告的事情,如停止和重新啟動某些程序(例如systemctl restart cups),沒有任何報告。
如果我像以前一樣恢復rsyslog.conf行,則會報告 cups 的重新啟動。
我修改那條線的方式有問題嗎?
這些:
*.info;mail.none;authpriv.none;cron.none
是傳統的 syslog 風格的 facility.priority 對。我喜歡 rsyslogd,但是雖然它確實有文件,但這些文件在形式上是特殊的並且組織得非常糟糕1我不知道在什麼時候,隨意地翻閱它們,新使用者應該學習這一點。我認為假設您已經熟悉傳統 syslog 的工作方式,這是不幸的,因為這些手冊頁不會出現在開始使用 rsyslogd 的系統上。
無論如何,這是一個
man syslog.conf
rsyslog 應該與之兼容的線上。請注意,有一個簡短的、有限的、硬編碼的設施列表,不包括“avahi-daemon”。即,設施!= 只是日誌中使用的一些標籤或標籤。您可以通過子字元串匹配過濾消息並丟棄它們(這是 rsyslog 特定的):
:msg, contains, "avahi-daemon" ~
這需要在所有“按設施記錄”規則之前,以便首先丟棄消息。相關的文件片段在這裡。
-t
但是,它匹配消息中的子字元串,在這種情況下,“avahi-daemon”實際上是一個man logger
不屬於msg
. 此處列出了其他可能的屬性,此處列出了比較操作。所以也許::syslogtag, isequal, "avahi-daemon" ~
將是最有效的。
wiki 中有另一種“按程序名稱過濾”的方法。我不知道這是否會更有效率。
- 也許假設搜尋引擎是您的主要指南……消除了對任何連貫組織的需求。