UNIX 係統日誌
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 |
Syslog優先級:
該係統記錄的優先級總結在下麵的表中:
優先級 | 描述 |
---|---|
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 文件:
/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符號(例如,@ gitbook.net)
logger命令:
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/ |