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符號(例如,@ yiibai.com)
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/