新聞中心
系統(tǒng)日志
UNIX 系統(tǒng)有一個非常靈活和強大的日志系統(tǒng),它讓你能夠記錄幾乎任何你能想象的東西,然后你可以操作日志來獲取你需要的信息。

創(chuàng)新互聯(lián)建站基于成都重慶香港及美國等地區(qū)分布式IDC機房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)成都服務(wù)器托管報價,主機托管價格性價比高,為金融證券行業(yè)服務(wù)器托管,ai人工智能服務(wù)器托管提供bgp線路100M獨享,G口帶寬及機柜租用的專業(yè)成都idc公司。
許多版本的 UNIX 提供了一個名為 syslog 的通用日志工具,有信息需要記錄的單獨程序要將信息發(fā)送到 syslog。
Unix syslog 是一個主機可配置的,統(tǒng)一的系統(tǒng)日志工具。該系統(tǒng)采用集中式的系統(tǒng)日志進程,其運行程序 /etc/syslogd 或者 /etc/syslog。
系統(tǒng)記錄器的操作是相當簡單的。程序發(fā)送日志條目到 syslogd,其將會在配置文件 /etc/syslogd.conf 或 /etc/syslog 中查找,當找到一個匹配后,將日志消息寫入到期望的日志文件中。
現(xiàn)有你應該了解的四種基本日志術(shù)語:
| 術(shù)語 | 描述 |
|---|---|
| Facility | 此標識符用來描述提交的日志信息的應用程序或進程。例如郵件,內(nèi)核和 FTP。 |
| Priority | 一個顯示消息重要性的指示器。syslog 作為準則定義了消息的級別,從調(diào)試信息到關(guān)鍵事件。 |
| Selector | 一個或更多的 facility 和 level 的結(jié)合體 。當一個輸入事件匹配一個 selector 時,一個 action 會被執(zhí)行。 |
| Action | 傳入的消息匹配 selector 時會發(fā)生的事情。Action 可以將消息寫入日志文件,將消息回傳到控制臺或其他設(shè)備,將消息寫入到一個登錄用戶,或?qū)⑾l(fā)送到另一個日志服務(wù)器。 |
Syslog Facilities
下面是 selector 可用的 facility。不是所有的 facility 都存在于所有版本的 UNIX。
| Facility | 描述 |
|---|---|
| auth | 需要用戶名和密碼的相關(guān)活動(getty,su,login) |
| authpriv | 類似于 auth 的認證,但是記錄的文件只能被授權(quán)的用戶讀取。 |
| console | 用于捕獲信息,這些信息一般會傳向系統(tǒng)控制臺。 |
| cron | 與 cron 系統(tǒng)有關(guān)的計劃任務(wù)信息。 |
| daemon | 所捕獲的所有系統(tǒng)守護進程信息。 |
| ftp | ftp 守護進程相關(guān)的信息。 |
| kern | 內(nèi)核信息。 |
| local0.local7 | 用戶自定義使用的本地信息。 |
| lpr | 與打印服務(wù)系統(tǒng)有關(guān)的信息。 |
| 與郵件系統(tǒng)相關(guān)的信息。 | |
| mark | 用于生產(chǎn)日志文件中時間戳的偽事件。 |
| news | 與網(wǎng)絡(luò)新聞傳輸協(xié)議( nntp )有關(guān)的信息。 |
| ntp | 與網(wǎng)絡(luò)時間協(xié)議有關(guān)的信息。 |
| user | 普通用戶進程產(chǎn)生的信息。 |
| uucp | UUCP 子系統(tǒng)生成的信息。 |
Syslog 優(yōu)先級
syslog 的優(yōu)先級( Priority )如下表:
| Priority | 描述 |
|---|---|
| emerg | 緊急情況,如即將發(fā)生的系統(tǒng)崩潰,通常會廣播到所有用戶。 |
| alert | 需要立即修改的情況,如系統(tǒng)數(shù)據(jù)庫的損壞。 |
| crit | 關(guān)鍵的情況,如一個硬件的錯誤。 |
| err | 普通錯誤。 |
| warning | 警告 |
| notice | 不是一個錯誤的情況,但是可能需要用特定方式的處理一下。 |
| info | 報告性的消息。 |
| debug | 用于調(diào)試程序的消息。 |
| none | 沒有重要級別,通常用于指定非日志的消息。 |
facility 和 level 的組合能夠讓你辨別記錄了什么和這些日志信息去哪兒了。
每個程序盡職盡責地向系統(tǒng)記錄器發(fā)送消息,記錄器基于 selector 定義的 level 決定跟蹤什么和舍棄什么信息。
當你指定了一個 level,系統(tǒng)會記錄這一 level 及更高 level 的一切信息。
文件 /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文件中的每一行包含兩部分:
- 一個消息 selector,其指定了哪種消息用來記錄。例如,內(nèi)核的所有錯誤信息或所有調(diào)試信息。
- 一個 action,其指明了對接收的消息該怎么處理。例如,寫入一個文件中或者將消息發(fā)送到用戶的終端。
下面是上述配置的注意事項:
- 消息 selector 有兩部分:facility 和 priority。例如, kern.debug 選擇了所有由內(nèi)核( facility )產(chǎn)生的的調(diào)試信息( priority )。
- 消息 selectetor kern.debug 選擇了所有 priority 大于 debug 的信息。
- 在任何 facility 和 priority 位置上的星號,表示“所有”的意思。例如, *.debug 表示所有 facility 的調(diào)試信息,而 kern.* 表示內(nèi)核所產(chǎn)生的所有信息。
- 你也可以用逗號來指定多個 facility。兩個或兩個以上的 selectetor 可以用分號組合在一起。
日志記錄 Action
action 部分指定了下面五個 action 中的其中一個:
- 將信息記錄到一個文件或設(shè)備。例如,
/var/log/lpr.log或者/dev/console。 - 發(fā)送一個消息給一個用戶。你可以用逗號分開指定多個用戶名(例如,root,amrood)。
- 發(fā)送一個消息給所有用戶。在這種情況下,action 部分包含了一個星號(例如,*)。
- 用管道發(fā)送消息到程序。在這種情況下,程序是在 UNIX 管道符號(|)后指定。
- 將消息發(fā)送到另一臺主機上的 syslog。在這種情況下,action 部分包含了一個前面有 at 符號的主機名(例如,@cdcxhl.com)。
logger 命令
UNIX 提供了 logger 命令,這是處理系統(tǒng)日志記錄的一個非常有用的命令。logger 命令發(fā)送日志消息到 syslogd 守護進程,從而驅(qū)使系統(tǒng)記錄日志。
這意味著我們可以隨時用命令行檢查 syslogd 守護進程及其配置。logger 命令提供了一種在命令行上添加一行條目到系統(tǒng)日志文件中的方法。
該命令的格式是:
logger [-i] [-f file] [-p priority] [-t tag] [message]...下面是具體的參數(shù)細節(jié):
| 選項 | 描述 |
|---|---|
| -f filename | 使用文件 filename 的內(nèi)容作為消息來記錄。 |
| -i | 日志的每一行都記錄進程的 id。 |
| -p priority | 指定輸入消息的優(yōu)先級 priority(指定的 selector),優(yōu)先級 priority 可以是數(shù)字或者指定為 facility.level 對的格式。默認參數(shù)是 user.notice。 |
| -t tag | 用指定 tag 標記記錄到日志中的每一行。 |
| message | 字符串參數(shù),它的內(nèi)容以特定順序連接在一起,由空格分開。 |
日志輪換
日志文件有快速增長的特點,并消耗大量的磁盤空間。大多數(shù) UNIX 發(fā)行版系統(tǒng)使用了工具(如 newsyslog 或 logrotate)啟用日志輪換功能。
這些工具由 cron 守護進程在一個頻繁的時間間隔里調(diào)用。你可以在 newsyslog 或 logrotate 的手冊頁中獲取更多的細節(jié)內(nèi)容。
重要日志文件的位置
所有的系統(tǒng)應用程序創(chuàng)建自己的日志文件在 /var/log 和它的子目錄里。下面這里有幾個重要的應用,其相應的日志目錄:
| 應用 | 目錄 |
|---|---|
| httpd | /var/log/httpd |
| samba | /var/log/samba |
| cron | /var/log/ |
| /var/log/ | |
| mysql | /var/log/ |
網(wǎng)站名稱:創(chuàng)新互聯(lián)UNIX教程:UNIX 系統(tǒng)日志
新聞來源:http://www.dlmjj.cn/article/cdphcoe.html


咨詢
建站咨詢
