系統日誌配置 - 重複警報?

系統日誌配置 - 重複警報?

我正在使用 Solaris 10 並在中看到了這一行/etc/syslog.conf

*.err;kern.debug;daemon.notice;mail.crit;auth.debug;local2.notice       /var/adm/messages

這是否意味著,如果我有一個授權錯誤/var/adm/message,由於以下原因,錯誤訊息將出現在我的兩次中:

*.err  
auth.debug 

如果假設我還有另一行:

*.emerg  *
*.err;kern.debug;daemon.notice;mail.crit;auth.debug;local2.notice       /var/adm/messages

這是否意味著,如果我有一個內核.emerg,它將記錄兩次,/var/adm/messages因為

 *.emerg  *   and
kern.debug  /var/adm/messages

=======

添加於

auth.notice         ifdef(`LOGHOST', /var/log/authlog, @loghost) 
  • syslog 如何檢查這台機器是否為日誌主機?透過檢查 /etc/hosts 中的「loghost」別名並查看它是否與機器的 IP 相符?

  • 我的 syslog.conf 沒有 ifdef,但它仍然有效,ifdef 是否必要?

答案1

這些規則主要定義在運行時應用於每個訊息的過濾器,因此實際上,您不應該在同一目標/檔案中存在重複的訊息。

可以使用分號('';'')分隔符號為單一操作指定多個選擇器。請記住,選擇器欄位中的每個選擇器都能夠覆蓋前面的選擇器。

但是,您可以並且確實收到發送到不同文件(包括控制台)的相同訊息。

如果是

*.emerg *

這是 syslog 中所有使用者的簡寫,它適用於所有使用者。

大家都登入了

緊急訊息通常會發送給目前線上的所有用戶,通知他們系統發生了異常情況。若要指定此 wall(1) 功能,請使用星號 (''*'')。

因此,實際上,在 kernel.emerg 中,會將其發送給所有用戶,並同時發送給 /var/adm/messages ;但是 /var/adm/messages 中只有一行。

原始 BSD syslogd 的行為是根據給定的操作記錄指定優先權及更高優先權的所有訊息。

引用自手冊syslog.conf頁:

syslog.conf(5) 手冊頁

至於ifdef,舉個例子:

auth.notice         ifdef(`LOGHOST', /var/log/authlog, @loghost) 

如果定義了LOGHOST(即此syslog是一個LOGHOST,它將發送日誌/訊息到/var/log/authlog,否則將發送到@loghost。

至於ifdef則不是必需的,至於LOGHOST,根據這一頁它是從檔案 /etc/hosts 中取得的機器名稱(或可能是 DNS,僅測試)

編輯 /etc/hosts (./inet/hosts) 並新增一行或多行定義 loghost 的 IP 位址(名稱是任意的,如果定義了多個遠端主機,您可以使用您想要的任何名稱)

相關內容