歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

Linux操作系統中日志系統功能詳解

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

  Linux操作系統中日志系統功能詳解

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

  Klogd:記錄了系統初始化時所產生並顯示在物理終端上的信息,並保存在”/var/log/dmesg”文件中,我們可以使用“cat /var/log/dmesg”進行查看,也可以使用專門的命令“dmesg”進行查看

  Syslogd:在系統初始化完成,將系統控制權轉交給init,此時產生的日志信息都有syslogd記錄,並存放在“/var/log/messages”文件中,主要保存的信息有“系統標准錯誤日志信息,非內核產生的引導信息,各個服務程序的子系統產生的信息等等”;在監控系統運行時一般使用“# tail -f /var/log/messages”來監控新生成的日志信息

  但是系統運行中所產生的信息非常多,即使只記錄這些信息,也有很大量;此時如果我們仍然將所有日志信息都保存在一個messages文件中,那麼管理起來就非常困難了;那這怎麼辦呢?我們引進了另外一種技術“日志滾動”

  日志滾動:當日志messages文件大小或時間到一定程度之後,將這個文件定義為messages.1,並重新創建一個新的messages文件,此時messages.1不再記錄新的內容,只是存放以前的內容,如果新的messages文件再次達到這個標准之後,現在這個messages文件重命名為messages.1,原有的messages.1命名為messages.2,這樣依次類推;但是這樣一直滾動下去,很久以前的日志信息對我們現在管理已經沒有很大用處了,所以我們可以定義只保留滾動多少次的日志文件;所以日志信息我們應該經常滾動,且一般定義多個標准

  日志的滾動就是將這個日志文件進行切割,在redhat上有一個專門的命令可以完成這個動作:logrotate;系統上有一個專門的系統任務計劃來完成日志切割“/etc/cron.daily”下有一個腳本叫做logrotate,這個命令的配置文件在“etc/logrotate.conf”下(定義了系統的日志滾動機制)

  內容格式是:

  weekly #全局定義每周滾動一次

  rotate 4 #只保留四個滾動版本

  include /etc/logrotate.d #上面幾行是日志系統全局屬性,下面是各個小系統的具體屬性,執行時以局部屬性為准;局部日志屬性可定義多個

  /var/log/wtmp { #定義這個子系統自己的日志滾動機制,日志存放文件

  monthly #多長時間滾動一個

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

  create 0664 root utmp #創建一個文件,權限是0664,屬主是root,文件名是utmp

  rotate 1 #只保留一個滾動版本

  }

  日志滾動的腳本文件:# vim /etc/cron.daily/logrotate

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

  一些其他子系統產生的日志信息保存位置:

  /var/maillog #郵件系統產生的日志信息

  /var/log/secure #每個用戶在登錄時所產生的安全信息(什麼時間誰以哪個用戶來自哪個主機嘗試登錄,嘗試了幾次,這個文件經常查看)

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


Copyright © Linux教程網 All Rights Reserved