Product SiteDocumentation Site

9.5. syslog 系統事件

9.5.1. 原則與機制

rsyslogd 後台進程負責搜集來自應用程式與核心的服務訊息,然後送至日誌檔內 (通常儲存在 /var/log/ 資料夾內)。遵守 /etc/rsyslog.conf 組態檔案的要求。
每個日誌檔內的訊息都與應用程式次系統有關 (文件中稱為 “設施”):
  • authauthpriv:供認證之用;
  • cron:來自工作排程服務,cronatd
  • daemon:未受任何特別分類影響的後台進程 (DNS、NTP 等);
  • ftp:關心 FTP 伺服器;
  • kern:來自核心的訊息;
  • lpr:來自列印次系統的;
  • mail:來自電子郵件次系統;
  • news:Usenet 次系統的訊息 (尤其是來自管理新聞群組的 NNTP — Network News Transfer Protocol — 伺服器);
  • syslog:來自 syslogd 伺服器本身的訊息;
  • user:使用者訊息 (一般);
  • uucp:來自 UUCP 伺服器 (Unix to Unix Copy Program,用於散布電子郵件訊息的通訊協定) 的訊息;
  • local0local7:保留給在地使用。
每個訊息有其自身的優先層級。以下的遞減的清單:
  • emerg:“救命!” 緊急狀態,系統可能已掛了。
  • alert:趕快,任何延誤可能造成危險,必須立即採取行動;
  • crit:情況嚴重;
  • err:錯誤;
  • warn:警示 (可能的錯誤);
  • notice:情況正常,但訊息極重要;
  • info:資訊性訊息;
  • debug:需要除錯的訊息。

9.5.2. 組態檔案

The syntax of the /etc/rsyslog.conf file is detailed in the rsyslog.conf(5) manual page, but there is also HTML documentation available in the rsyslog-doc package (/usr/share/doc/rsyslog-doc/html/index.html). The overall principle is to write “selector” and “action” pairs. The selector defines all relevant messages, and the action describes how to deal with them.

9.5.2.1. 選擇器的語法

選擇器是分號區隔 次系統.優先層級 配對 (如:auth.notice;mail.info) 清單。星號代表所有次系統或優先層級 (如:*.alertmail.*)。可以用逗點群聚多個次系統,(如:auth,mail.info)。優先層級也包括等於或高於的優先訊息;因此 auth.alert 表示 auth 次系統的 alertemerg 優先層級。前置驚嘆號 (!) 表示相反的意思,換句話說,就是限於較低的優先層級;auth.!notice 表示來自 auth 次系統的 infodebug 優先層級。前置等號 (=) 表示祗限該優先層級 (auth.=notice 祗限於來自 auth 訊息的 notice 優先層級)。
選擇器清單內的元素,後者權限均高於前者。據以限制或排除特定的元素。例如,kern.info;kern.!err 表示來自核心的訊息,其優先權介於 infowarn 之間。none 優先權表示空白的集合 (無優先權),且可做為從訊息集中排除指定的次系統。因此,*.crit;kern.none 表示所有來自核心以外的訊息,其優先權均等同於高於 crit

9.5.2.2. 行動語法

可能的行動為:
  • 新增訊息至檔案 (如:/var/log/messages);
  • 新增訊息至遠端 syslog 伺服器 (如:@log.falcot.com);
  • 送訊息至已命名的管端 (如:|/dev/xconsole);
  • 送訊息給一位或多位已登入的使用者 (如:root,rhertzog);
  • 送訊息給所有已登入的使用者 (如:*);
  • 在文字終端機撰寫訊息 (如:/dev/tty8)。