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

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


咨詢
建站咨詢
