Syslog

rsyslog conf文件問題

  • September 12, 2016

我正在執行 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.confrsyslog 應該與之兼容的線上。請注意,有一個簡短的、有限的、硬編碼的設施列表,不包括“avahi-daemon”。即,設施!= 只是日誌中使用的一些標籤或標籤。

您可以通過子字元串匹配過濾消息並丟棄它們(這是 rsyslog 特定的):

:msg, contains, "avahi-daemon" ~

這需要所有“按設施記錄”規則之前,以便首先丟棄消息。相關的文件片段在這裡

-t但是,它匹配消息中的子字元串,在這種情況下,“avahi-daemon”實際上是一個man logger不屬於msg. 此處列出了其他可能的屬性,此處列出了比較操作。所以也許:

:syslogtag, isequal, "avahi-daemon" ~

將是最有效的。

wiki 中有另一種“按程序名稱過濾”的方法。我不知道這是否會更有效率。


  1. 也許假設搜尋引擎是您的主要指南……消除了對任何連貫組織的需求。

引用自:https://unix.stackexchange.com/questions/110432