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. 組態檔案

/etc/rsyslog.conf 檔案的語法詳述於 rsyslog.conf(5) 手冊內,還有 HTML 文件於 rsyslog-doc package (/usr/share/doc/rsyslog-doc/html/index.html) 內。總體原則是撰寫 “選擇器” 與 “作為” 的配對。選擇器設定所有相關的訊息,作為描述對應的工作。

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)。