Unix 系統有一個非常靈活和強大的紀錄檔系統,它可以讓您記錄幾乎任何你能想象和操作紀錄檔,以獲取所需要的資訊。
許多版本 UNIX 提供了一個通用的紀錄檔工具,稱為:syslog。個別程式需要有記錄的資訊傳送到 syslog 資訊。
Unix的系統紀錄檔主機組態,統一的系統紀錄檔記錄工具。該系統採用一個集中的系統執行程式 /etc/syslogd 或 /etc/syslog 紀錄檔記錄進程。.
系統紀錄檔的操作是相當簡單的。程式紀錄檔條目傳送到syslogd,參考的組態檔案在/etc/syslogd.conf 或 /etc/syslog,找到一個匹配時,所需的紀錄檔檔案寫入紀錄檔訊息。
有四個基本的 syslog 條款,你應該明白:
Term | 描述 |
---|---|
Facility | The identifier used to describe the application or process that submitted the log message. Examples are mail, kernel, and ftp. |
Priority | An indicator of the importance of the message. Levels are defined within syslog as guidelines, from debugging information to critical events. |
Selector | A combination of one or more facilities and levels. When an incoming event matches a selector, an action is performed. |
Action | What happens to an incoming message that matches a selector. Actions can write the message to a log file, echo the message to a console or other device, write the message to a logged in user, or send the message along to another syslog server. |
這裡是可用的裝置選擇。並非所有的設施都存在於所有版本的UNIX。
裝置 | 描述 |
---|---|
auth | Activity related to requesting name and password (getty, su, login) |
authpriv | Same as auth but logged to a file that can only be read by selected users |
console | Used to capture messages that would generally be directed to the system console |
cron | Messages from the cron system scheduler |
daemon | System daemon catch-all |
ftp | Messages relating to the ftp daemon |
kern | Kernel messages |
local0.local7 | Local facilities defined per site |
lpr | Messages from the line printing system |
Messages relating to the mail system | |
mark | Pseudo event used to generate timestamps in log files |
news | Messages relating to network news protocol (nntp) |
ntp | Messages relating to network time protocol |
user | Regular user processes |
uucp | UUCP subsystem |
該系統記錄的優先順序總結在下面的表中:
優先順序 | 描述 |
---|---|
emerg | Emergency condition, such as an imminent system crash, usually broadcast to all users |
alert | Condition that should be corrected immediately, such as a corrupted system database |
crit | Critical condition, such as a hardware error |
err | Ordinary error |
warning | Warning |
notice | Condition that is not an error, but possibly should be handled in a special way |
info | Informational message |
debug | Messages that are used when debugging programs |
none | Pseudo level used to specify not to log messages. |
裝置和級別的組合,讓你辨識記錄和資訊。
由於每個程式盡職地傳送它的訊息的系統記錄器,記錄器作出決定什麼來跟蹤和丟棄的基礎上在選擇器中定義的級別。
當你指定一個級別,系統將跟蹤所有在這一水平較高。
/etc/syslog.conf 檔案控制,記錄訊息的位置。一個典型的 syslog.conf 檔案可能看起來像這樣:
*.err;kern.debug;auth.notice /dev/console daemon,auth.notice /var/log/messages lpr.info /var/log/lpr.log mail.* /var/log/mail.log ftp.* /var/log/ftp.log auth.* @prep.ai.mit.edu auth.* root,amrood netinfo.err /var/log/netinfo.log install.* /var/log/install.log *.emerg * *.alert |program_name mark.* /dev/console
檔案的每一行包含兩個部分:
訊息選擇器,指定哪種要記錄的訊息。例如,所有的錯誤訊息或核心的所有偵錯資訊。
應該做些什麼訊息,說一個動作域。例如,把它放在一個檔案或訊息傳送到使用者的終端上。
以下是對上述組態的顯著點:
訊息選擇器有兩個部分組成:裝置和優先順序。例如,kern.debug的選擇由核心(設施)產生的所有偵錯訊息(優先順序)。
訊息選擇kern.debug的選擇所有優先順序大於偵錯。
設施或優先的地方中的星號表示“所有”。例如,*. 偵錯是指所有偵錯資訊,而 kern.* 指由核心生成的所有訊息。
您還可以使用逗號指定多個裝置。兩個或多個選擇可以組合在一起使用分號。
action欄位指定的五個動作之一:
紀錄檔訊息傳送到一個檔案或裝置。例如,/var/log/lpr.log 或 /dev/console.。
傳送一條資訊給使用者。您可以指定多個使用者名(如根,amrood)用逗號將它們分隔開。
傳送一條資訊給所有使用者。在這種情況下,“動作”欄位中包含一個星號(例如,*)。
管道訊息的程式。在這種情況下,程式被指定後,UNIX管道符號(|)。
將訊息傳送到另一台主機上的系統紀錄檔。在這種情況下,行動領域包括主機名,前面有一個at符號(例如,@ tw511.com)
UNIX 提供了命令logger ,這是一個非常有用的命令處理系統紀錄檔。 logger 命令記錄訊息傳送到syslogd守護行程,從而引發系統紀錄檔。
這意味著我們可以在命令列檢查隨時syslogd 守護行程,它的組態。 logger 命令提供系統紀錄檔檔案,在命令列新增一行條目的方法。
該命令的格式是:
logger [-i] [-f file] [-p priority] [-t tag] [message]...
下面是詳細的引數:
選項 | 描述 |
---|---|
-f filename | Use the contents of file filename as the message to log. |
-i | Log the process ID of the logger process with each line. |
-p priority | Enter the message with the specified priority (specified selector entry); the message priority can be specified numerically, or as a facility.priority pair. The default priority is user.notice. |
-t tag | Mark each line added to the log with the specified tag. |
message | The string arguments whose contents are concatenated together in the specified order, separated by the space |
您可以使用聯機幫助幫助檢查完成此命令的語法。
紀錄檔檔案的增長傾向非常快,消耗大量的磁碟空間。要啟用紀錄檔切換,大多數發行版使用 newsyslog 或 logrotate 工具。
這些工具應該被稱為使用cron守護程式在頻繁的時間間隔。檢查newsyslog 或 logrotate的更多詳細資訊的手冊頁。
所有的系統應用程式建立紀錄檔檔案在 /var/log 和其子目錄。這裡有幾個重要的應用程式及其紀錄檔目錄:
應用程式 | 目錄 |
---|---|
httpd | /var/log/httpd |
samba | /var/log/samba |
cron | /var/log/ |
/var/log/ | |
mysql | /var/log/ |