溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Linux日志有哪些類(lèi)型

發(fā)布時(shí)間:2022-02-02 15:00:51 來(lái)源:億速云 閱讀:339 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇“Linux日志有哪些類(lèi)型”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“Linux日志有哪些類(lèi)型”文章吧。

Linux日志有哪些類(lèi)型

大部分Linux發(fā)行版默認(rèn)的日志守護(hù)進(jìn)程為 syslog,位于 /etc/syslog 或 /etc/syslogd,默認(rèn)配置文件為 /etc/syslog.conf,任何希望生成日志的程序都可以向 syslog 發(fā)送信息。

Linux系統(tǒng)內(nèi)核和許多程序會(huì)產(chǎn)生各種錯(cuò)誤信息、警告信息和其他的提示信息,這些信息對(duì)管理員了解系統(tǒng)的運(yùn)行狀態(tài)是非常有用的,所以應(yīng)該把它們寫(xiě)到日志文件中去。完成這個(gè)過(guò)程的程序就是syslog。syslog可以根據(jù)日志的類(lèi)別和優(yōu)先級(jí)將日志保存到不同的文件中。例如,為了方便查閱,可以把內(nèi)核信息與其他信息分開(kāi),單獨(dú)保存到一個(gè)獨(dú)立的日志文件中。默認(rèn)配置下,日志文件通常都保存在“/var/log”目錄下。

日志類(lèi)型

下面是常見(jiàn)的日志類(lèi)型,但并不是所有的Linux發(fā)行版都包含這些類(lèi)型:

類(lèi)型說(shuō)明
auth用戶(hù)認(rèn)證時(shí)產(chǎn)生的日志,如login命令、su命令。
authpriv與 auth 類(lèi)似,但是只能被特定用戶(hù)查看。
console針對(duì)系統(tǒng)控制臺(tái)的消息。
cron系統(tǒng)定期執(zhí)行計(jì)劃任務(wù)時(shí)產(chǎn)生的日志。
daemon某些守護(hù)進(jìn)程產(chǎn)生的日志。
ftpFTP服務(wù)。
kern系統(tǒng)內(nèi)核消息。
local0.local7由自定義程序使用。
lpr與打印機(jī)活動(dòng)有關(guān)。
mail郵件日志。
mark產(chǎn)生時(shí)間戳。系統(tǒng)每隔一段時(shí)間向日志文件中輸出當(dāng)前時(shí)間,每行的格式類(lèi)似于 May 26 11:17:09 rs2 — MARK –,可以由此推斷系統(tǒng)發(fā)生故障的大概時(shí)間。
news網(wǎng)絡(luò)新聞傳輸協(xié)議(nntp)產(chǎn)生的消息。
ntp網(wǎng)絡(luò)時(shí)間協(xié)議(ntp)產(chǎn)生的消息。
user用戶(hù)進(jìn)程。
uucpUUCP子系統(tǒng)。

日志優(yōu)先級(jí)

常見(jiàn)的日志優(yōu)先級(jí)請(qǐng)見(jiàn)下標(biāo):

優(yōu)先級(jí)說(shuō)明
emerg緊急情況,系統(tǒng)不可用(例如系統(tǒng)崩潰),一般會(huì)通知所有用戶(hù)。
alert需要立即修復(fù),例如系統(tǒng)數(shù)據(jù)庫(kù)損壞。
crit危險(xiǎn)情況,例如硬盤(pán)錯(cuò)誤,可能會(huì)阻礙程序的部分功能。
err一般錯(cuò)誤消息。
warning警告。
notice不是錯(cuò)誤,但是可能需要處理。
info通用性消息,一般用來(lái)提供有用信息。
debug調(diào)試程序產(chǎn)生的信息。
none沒(méi)有優(yōu)先級(jí),不記錄任何日志消息。

常見(jiàn)日志文件

所有的系統(tǒng)應(yīng)用都會(huì)在 /var/log 目錄下創(chuàng)建日志文件,或創(chuàng)建子目錄再創(chuàng)建日志文件。例如:

文件/目錄說(shuō)明
/var/log/boot.log開(kāi)啟或重啟日志。
/var/log/cron計(jì)劃任務(wù)日志
/var/log/maillog郵件日志。
/var/log/messages該日志文件是許多進(jìn)程日志文件的匯總,從該文件可以看出任何入侵企圖或成功的入侵。
/var/log/httpd 目錄Apache HTTP 服務(wù)日志。
/var/log/samba 目錄samba 軟件日志

/etc/syslog.conf 文件

/etc/syslog.conf 是 syslog 的配置文件,會(huì)根據(jù)日志類(lèi)型和優(yōu)先級(jí)來(lái)決定將日志保存到何處。典型的 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.*                       @see.xidian.edu.cn
 auth.*                       root,amrood
 netinfo.err                  /var/log/netinfo.log
 install.*                    /var/log/install.log
 *.emerg                      *
 *.alert                      |program_name
 mark.*                       /dev/console

第一列為日志類(lèi)型和日志優(yōu)先級(jí)的組合,每個(gè)類(lèi)型和優(yōu)先級(jí)的組合稱(chēng)為一個(gè)選擇器;后面一列為保存日志的文件、服務(wù)器,或輸出日志的終端。syslog 進(jìn)程根據(jù)選擇器決定如何操作日志。

對(duì)配置文件的幾點(diǎn)說(shuō)明:

  • 日志類(lèi)型和優(yōu)先級(jí)由點(diǎn)號(hào)(.)分開(kāi),例如 kern.debug 表示由內(nèi)核產(chǎn)生的調(diào)試信息。

  • kern.debug 的優(yōu)先級(jí)大于 debug。

  • 星號(hào)(*)表示所有,例如 .debug 表示所有類(lèi)型的調(diào)試信息,kern. 表示由內(nèi)核產(chǎn)生的所有消息。

  • 可以使用逗號(hào)(,)分隔多個(gè)日志類(lèi)型,使用分號(hào)(;)分隔多個(gè)選擇器。

對(duì)日志的操作包括:

  • 將日志輸出到文件,例如 /var/log/maillog 或 /dev/console。

  • 將消息發(fā)送給用戶(hù),多個(gè)用戶(hù)用逗號(hào)(,)分隔,例如 root, amrood。

  • 通過(guò)管道將消息發(fā)送給用戶(hù)程序,注意程序要放在管道符(|)后面。

  • 將消息發(fā)送給其他主機(jī)上的 syslog 進(jìn)程,這時(shí) /etc/syslog.conf 文件后面一列為以@開(kāi)頭的主機(jī)名,例如@see.xidian.edu.cn。

logger 命令

logger 是Shell命令,可以通過(guò)該命令使用 syslog 的系統(tǒng)日志模塊,還可以從命令行直接向系統(tǒng)日志文件寫(xiě)入一行信息。

logger命令的語(yǔ)法為:

 logger [-i] [-f filename] [-p priority] [-t tag] [message...]

每個(gè)選項(xiàng)的含義如下:

選項(xiàng)說(shuō)明
-f filename將 filename 文件的內(nèi)容作為日志。
-i每行都記錄 logger 進(jìn)程的ID。
-p priority指定優(yōu)先級(jí);優(yōu)先級(jí)必須是形如 facility.priority 的完整的選擇器,默認(rèn)優(yōu)先級(jí)為 user.notice。
-t tag使用指定的標(biāo)簽標(biāo)記每一個(gè)記錄行。
message要寫(xiě)入的日志內(nèi)容,多條日志以空格為分隔;如果沒(méi)有指定日志內(nèi)容,并且 -f filename 選項(xiàng)為空,那么會(huì)把標(biāo)準(zhǔn)輸入作為日志內(nèi)容。

例如,將ping命令的結(jié)果寫(xiě)入日志:

 $ ping 192.168.0.1 | logger -it logger_test -p local3.notice&
 $ tail -f /var/log/userlog
 Oct 6 12:48:43 kevein logger_test[22484]: PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
 Oct 6 12:48:43 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=1 ttl=253 time=49.7 ms
 Oct 6 12:48:44 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=2 ttl=253 time=68.4 ms
 Oct 6 12:48:45 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=3 ttl=253 time=315 ms
 Oct 6 12:48:46 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=4 ttl=253 time=279 ms
 Oct 6 12:48:47 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=5 ttl=253 time=347 ms
 Oct 6 12:48:49 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=6 ttl=253 time=701 ms
 Oct 6 12:48:50 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=7 ttl=253 time=591 ms
 Oct 6 12:48:51 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=8 ttl=253 time=592 ms
 Oct 6 12:48:52 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=9 ttl=253 time=611 ms
 Oct 6 12:48:53 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=10 ttl=253 time=931 ms

ping命令的結(jié)果成功輸出到 /var/log/userlog 文件。

命令 logger -it logger_test -p local3.notice 各選項(xiàng)的含義:

  • -i:在每行都記錄進(jìn)程ID;

  • -t logger_test:每行記錄都加上“l(fā)ogger_test”這個(gè)標(biāo)簽;

  • -p local3.notice:設(shè)置日志類(lèi)型和優(yōu)先級(jí)。

日志轉(zhuǎn)儲(chǔ)

日志轉(zhuǎn)儲(chǔ)也叫日志回卷或日志輪轉(zhuǎn)。Linux中的日志通常增長(zhǎng)很快,會(huì)占用大量硬盤(pán)空間,需要在日志文件達(dá)到指定大小時(shí)分開(kāi)存儲(chǔ)。

syslog 只負(fù)責(zé)接收日志并保存到相應(yīng)的文件,但不會(huì)對(duì)日志文件進(jìn)行管理,因此經(jīng)常會(huì)造成日志文件過(guò)大,尤其是WEB服務(wù)器,輕易就能超過(guò)1G,給檢索帶來(lái)困難。

大多數(shù)Linux發(fā)行版使用 logrotate 或 newsyslog 對(duì)日志進(jìn)行管理。logrotate 程序不但可以壓縮日志文件,減少存儲(chǔ)空間,還可以將日志發(fā)送到指定 E-mail,方便管理員及時(shí)查看日志。

例如,規(guī)定郵件日志 /var/log/maillog 超過(guò)1G時(shí)轉(zhuǎn)儲(chǔ),每周一次,那么每隔一周 logrotate 進(jìn)程就會(huì)檢查 /var/log/maillog 文件的大小:

  • 如果沒(méi)有超過(guò)1G,不進(jìn)行任何操作。

  • 如果在1G~2G之間,就會(huì)創(chuàng)建新文件 /var/log/maillog.1,并將多出的1G日志轉(zhuǎn)移到該文件,以給 /var/log/maillog 文件瘦身。

  • 如果在2G~3G之間,會(huì)繼續(xù)創(chuàng)建新文件 /var/log/maillog.2,并將 /var/log/maillog.1 的內(nèi)容轉(zhuǎn)移到該文件,將 /var/log/maillog 的內(nèi)容轉(zhuǎn)移到 /var/log/maillog.1,以保持 /var/log/maillog 文件不超過(guò)1G。

可以看到,每次轉(zhuǎn)存都會(huì)創(chuàng)建一個(gè)新文件(如果不存在),命名格式為日志文件名加一個(gè)數(shù)字(從1開(kāi)始自動(dòng)增長(zhǎng)),以保持當(dāng)前日志文件和轉(zhuǎn)存后的日志文件不超過(guò)指定大小。

logrotate 的主要配置文件是 /etc/logrotate.conf,/etc/logrotate.d 目錄是對(duì) /etc/logrotate.conf 的補(bǔ)充,或者說(shuō)為了不使 /etc/logrotate.conf 過(guò)大而設(shè)置。

可以通過(guò) cat 命令查看它的內(nèi)容:

 $cat /etc/logrotate.conf
 # see "man logrotate" for details  //可以查看幫助文檔
 # rotate log files weekly
 weekly                             //設(shè)置每周轉(zhuǎn)儲(chǔ)一次
 # keep 4 weeks worth of backlogs
 rotate 4                           //最多轉(zhuǎn)儲(chǔ)4次
 # create new (empty) log files after rotating old ones
 create                             //當(dāng)轉(zhuǎn)儲(chǔ)后文件不存儲(chǔ)時(shí)創(chuàng)建它
 # uncomment this if you want your log files compressed
 #compress                          //以壓縮方式轉(zhuǎn)儲(chǔ)
 # RPM packages drop log rotation information into this directory
 include /etc/logrotate.d           //其他日志文件的轉(zhuǎn)儲(chǔ)方式,包含在該目錄下
 # no packages own wtmp -- we'll rotate them here
 /var/log/wtmp {                    //設(shè)置/var/log/wtmp日志文件的轉(zhuǎn)儲(chǔ)參數(shù)
     monthly                        //每月轉(zhuǎn)儲(chǔ)
     create 0664 root utmp          //轉(zhuǎn)儲(chǔ)后文件不存在時(shí)創(chuàng)建它,文件所有者為root,所屬組為utmp,對(duì)應(yīng)的權(quán)限為0664
     rotate 1                       //最多轉(zhuǎn)儲(chǔ)一次
 }

注意:include 允許管理員把多個(gè)分散的文件集中到一個(gè),類(lèi)似于C語(yǔ)言的 #include,將其他文件的內(nèi)容包含進(jìn)當(dāng)前文件。

include 非常有用,一些程序會(huì)把轉(zhuǎn)儲(chǔ)日志的配置文件放在 /etc/logrotate.d 目錄,這些配置文件會(huì)覆蓋或增加 /etc/logrotate.conf 的配置項(xiàng),如果沒(méi)有指定相關(guān)配置,那么采用 /etc/logrotate.conf 的默認(rèn)配置。

所以,建議將 /etc/logrotate.conf 作為默認(rèn)配置文件,第三方程序在 /etc/logrotate.d 目錄下自定義配置文件。

logrotate 也可以作為命令直接運(yùn)行來(lái)修改配置文件。

以上就是關(guān)于“Linux日志有哪些類(lèi)型”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI