學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 操作系統(tǒng) > Linux教程 > Linux操作系統(tǒng)中日志系統(tǒng)功能詳解

Linux操作系統(tǒng)中日志系統(tǒng)功能詳解

時(shí)間: 春健736 分享

Linux操作系統(tǒng)中日志系統(tǒng)功能詳解

  Linux系統(tǒng)擁有非常靈活和強(qiáng)大的日志功能,可以保存幾乎所有的操作記錄,并可以從中檢索出我們需要的信息。小編為大家分享了Linux操作系統(tǒng)中日志系統(tǒng)功能詳解,下面大家跟著學(xué)習(xí)啦小編一起來(lái)了解一下吧。

  Linux操作系統(tǒng)中日志系統(tǒng)功能詳解

  每個(gè)操作系統(tǒng)中都有自己的強(qiáng)大的日志功能,windows有,而linux同樣也有;linux操作系統(tǒng)中的日志功能主要通過(guò)服務(wù)syslog來(lái)實(shí)現(xiàn)(RedHat6.0以后使用的是syslog-ng),而syslog服務(wù)下有兩個(gè)進(jìn)程syslogd和klogd,這兩個(gè)進(jìn)程一個(gè)用來(lái)記錄系統(tǒng)日志信息,一個(gè)用來(lái)記錄內(nèi)核日志信息;但是操作系統(tǒng)在運(yùn)行中會(huì)產(chǎn)生非常多的日志信息,如果我們將這些信息都記錄下來(lái)的話,那我們的磁盤(pán)I/O一定很繁忙,這對(duì)系統(tǒng)的性能有很大的影響,這就有違了我們的初衷,所以我們根據(jù)產(chǎn)生日志的來(lái)源和日志信息的重要性,將系統(tǒng)運(yùn)行中所產(chǎn)生的日志進(jìn)行分類;syslogd和klogd兩個(gè)進(jìn)程所記錄的日志信息和詳細(xì)程度又各有不同:

  Klogd:記錄了系統(tǒng)初始化時(shí)所產(chǎn)生并顯示在物理終端上的信息,并保存在”/var/log/dmesg”文件中,我們可以使用“cat /var/log/dmesg”進(jìn)行查看,也可以使用專門(mén)的命令“dmesg”進(jìn)行查看

  Syslogd:在系統(tǒng)初始化完成,將系統(tǒng)控制權(quán)轉(zhuǎn)交給init,此時(shí)產(chǎn)生的日志信息都有syslogd記錄,并存放在“/var/log/messages”文件中,主要保存的信息有“系統(tǒng)標(biāo)準(zhǔn)錯(cuò)誤日志信息,非內(nèi)核產(chǎn)生的引導(dǎo)信息,各個(gè)服務(wù)程序的子系統(tǒng)產(chǎn)生的信息等等”;在監(jiān)控系統(tǒng)運(yùn)行時(shí)一般使用“# tail -f /var/log/messages”來(lái)監(jiān)控新生成的日志信息

  但是系統(tǒng)運(yùn)行中所產(chǎn)生的信息非常多,即使只記錄這些信息,也有很大量;此時(shí)如果我們?nèi)匀粚⑺腥罩拘畔⒍急4嬖谝粋€(gè)messages文件中,那么管理起來(lái)就非常困難了;那這怎么辦呢?我們引進(jìn)了另外一種技術(shù)“日志滾動(dòng)”

  日志滾動(dòng):當(dāng)日志messages文件大小或時(shí)間到一定程度之后,將這個(gè)文件定義為messages.1,并重新創(chuàng)建一個(gè)新的messages文件,此時(shí)messages.1不再記錄新的內(nèi)容,只是存放以前的內(nèi)容,如果新的messages文件再次達(dá)到這個(gè)標(biāo)準(zhǔn)之后,現(xiàn)在這個(gè)messages文件重命名為messages.1,原有的messages.1命名為messages.2,這樣依次類推;但是這樣一直滾動(dòng)下去,很久以前的日志信息對(duì)我們現(xiàn)在管理已經(jīng)沒(méi)有很大用處了,所以我們可以定義只保留滾動(dòng)多少次的日志文件;所以日志信息我們應(yīng)該經(jīng)常滾動(dòng),且一般定義多個(gè)標(biāo)準(zhǔn)

  日志的滾動(dòng)就是將這個(gè)日志文件進(jìn)行切割,在redhat上有一個(gè)專門(mén)的命令可以完成這個(gè)動(dòng)作:logrotate;系統(tǒng)上有一個(gè)專門(mén)的系統(tǒng)任務(wù)計(jì)劃來(lái)完成日志切割“/etc/cron.daily”下有一個(gè)腳本叫做logrotate,這個(gè)命令的配置文件在“etc/logrotate.conf”下(定義了系統(tǒng)的日志滾動(dòng)機(jī)制)

  內(nèi)容格式是:

  weekly #全局定義每周滾動(dòng)一次

  rotate 4 #只保留四個(gè)滾動(dòng)版本

  include /etc/logrotate.d #上面幾行是日志系統(tǒng)全局屬性,下面是各個(gè)小系統(tǒng)的具體屬性,執(zhí)行時(shí)以局部屬性為準(zhǔn);局部日志屬性可定義多個(gè)

  /var/log/wtmp { #定義這個(gè)子系統(tǒng)自己的日志滾動(dòng)機(jī)制,日志存放文件

  monthly #多長(zhǎng)時(shí)間滾動(dòng)一個(gè)

  minsize 1M #日志文件最小1M

  create 0664 root utmp #創(chuàng)建一個(gè)文件,權(quán)限是0664,屬主是root,文件名是utmp

  rotate 1 #只保留一個(gè)滾動(dòng)版本

  }

  日志滾動(dòng)的腳本文件:# vim /etc/cron.daily/logrotate

  如果不自己定義,則按照全局定義的日志滾動(dòng)屬性,也可以在“/etc/logrotate.d/cups”文件下定義:

  一些其他子系統(tǒng)產(chǎn)生的日志信息保存位置:

  /var/maillog #郵件系統(tǒng)產(chǎn)生的日志信息

  /var/log/secure #每個(gè)用戶在登錄時(shí)所產(chǎn)生的安全信息(什么時(shí)間誰(shuí)以哪個(gè)用戶來(lái)自哪個(gè)主機(jī)嘗試登錄,嘗試了幾次,這個(gè)文件經(jīng)常查看)

  syslog的配置文件在:/etc/syslog.conf


749424