Linux系統擁有非常靈活和強大的日志功能,可以保存幾乎所有的操作記錄,并可以從中檢索出我們需要的信息。
1、大部分Linux發行版默認的日志守護進程為 syslog,位于 /etc/syslog 或 /etc/syslogd,默認配置文件為 /etc/syslog.conf,任何希望生成日志的程序都可以向 syslog 發送信息。而Fedora、Ubuntu,、rhel6、centos6以上版本默認的日志系統都是rsyslog,rsyslog是syslog的多線程增強版
2、 Linux系統內核和許多程序會產生各種錯誤信息、警告信息和其他的提示信息,這些信息對管理員了解系統的運行狀態是非常有用的,所以應該把它們寫到日志文件中去。完成這個過程的程序就是syslog。syslog可以根據日志的類別和優先級將日志保存到不同的文件中。
為了方便查閱,可以把內核信息與其他信息分開,單獨保存到一個獨立的日志文件中。默認配置下,日志文件通常都保存在“/var/log”目錄下。
3、下面是常見的日志類型,但并不是所有的Linux發行版都包含這些類型:
4、常見的日志優先級
5、所有的系統應用都會在 /var/log 目錄下創建日志文件,或創建子目錄再創建日志文件
6、etc/syslog.conf(rsyslog.conf) 是 syslog 的配置文件,會根據日志類型和優先級來決定將日志保存到何處。典型的 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
7、第一列為日志類型和日志優先級的組合,每個類型和優先級的組合稱為一個選擇器;后面一列為保存日志的文件、服務器,或輸出日志的終端。syslog 進程根據選擇器決定如何操作日志。對配置文件說明:
日志類型和優先級由點號(。)分開,例如 kern.debug 表示由內核產生的調試信息。kern.debug 的優先級大于 debug。星號(*)表示所有,例如 *.debug 表示所有類型的調試信息,kern.* 表示由內核產生的所有消息。可以使用逗號(,)分隔多個日志類型,使用分號(;)分隔多個選擇器。
對日志的操作包括:
將日志輸出到文件,例如 /var/log/maillog 或 /dev/console。將消息發送給用戶,多個用戶用逗號(,)分隔,例如 root, amrood。通過管道將消息發送給用戶程序,注意程序要放在管道符(|)后面。將消息發送給其他主機上的 syslog 進程,這時 /etc/syslog.conf 文件后面一列為以@開頭的主機名,例如@see.xidian.edu.cn。
8、logger 是Shell命令,可以通過該命令使用 syslog 的系統日志模塊,還可以從命令行直接向系統日志文件寫入一行信息。
logger命令的語法為:
logger [-i] [-f filename] [-p priority] [-t tag] [message.。。]
-f filename:將 filename 文件的內容作為日志。
-i :每行都記錄 logger 進程的ID。
-p priority :指定優先級;優先級必須是形如 facility.priority 的完整的選擇器,默認優先級為 user.notice。
-t tag :使用指定的標簽標記每一個記錄行。
message :要寫入的日志內容,多條日志以空格為分隔;如果沒有指定日志內容,并且 -f filename 選項為空,那么會把標準輸入作為日志內容。
9、日志轉儲也叫日志回卷或日志輪轉。Linux中的日志通常增長很快,會占用大量硬盤空間,需要在日志文件達到指定大小時分開存儲。 syslog 只負責接收日志并保存到相應的文件,但不會對日志文件進行管理,因此經常會造成日志文件過大,尤其是WEB服務器,輕易就能超過1G,給檢索帶來困難。 大多數Linux發行版使用 logrotate 或 newsyslog 對日志進行管理。logrotate 程序不但可以壓縮日志文件,減少存儲空間,還可以將日志發送到指定 E-mail,方便管理員及時查看日志。
10、例如,規定郵件日志 /var/log/maillog 超過1G時轉儲,每周一次,那么每隔一周 logrotate 進程就會檢查 /var/log/maillog 文件的大小:
如果沒有超過1G,不進行任何操作。
如果在1G~2G之間,就會創建新文件 /var/log/maillog.1,并將多出的1G日志轉移到該文件,以給 /var/log/maillog 文件瘦身。
如果在2G~3G之間,會繼續創建新文件 /var/log/maillog.2,并將 /var/log/maillog.1 的內容轉移到該文件,將 /var/log/maillog 的內容轉移到 /var/log/maillog.1,以保持 /var/log/maillog 文件不超過1G。
可以看到,每次轉存都會創建一個新文件(如果不存在),命名格式為日志文件名加一個數字(從1開始自動增長或以當前日期為后綴),以保持當前日志文件和轉存后的日志文件不超過指定大小
11、logrotate 的主要配置文件是 /etc/logrotate.conf,/etc/logrotate.d 目錄是對 /etc/logrotate.conf 的補充,或者說為了不使 /etc/logrotate.conf 過大而設置。
注意:include 允許管理員把多個分散的文件集中到一個,類似于C語言的 #include,將其他文件的內容包含進當前文件。 include 非常有用,一些程序會把轉儲日志的配置文件放在 /etc/logrotate.d 目錄,這些配置文件會覆蓋或增加 /etc/logrotate.conf 的配置項,如果沒有指定相關配置,那么采用 /etc/logrotate.conf 的默認配置。 所以,建議將 /etc/logrotate.conf 作為默認配置文件,第三方程序在 /etc/logrotate.d 目錄下自定義配置文件。 logrotate 也可以作為命令直接運行來修改配置文件。
linux系統日志在哪里
日志文件的默認路徑是:/var/log
下面是幾個重要的日志文件的路徑及其包含的信息:
/var/log/syslog:它和/etc/log/messages日志文件不同,它只記錄警告信息,常常是系統出問題的信息。
/var/log/messages:包括整體系統信息,其中也包含系統啟動期間的日志。此外,還包括mail,cron,daemon,kern和auth等內容。
/var/log/user.log:記錄所有等級用戶信息的日志。
/var/log/auth.log:包含系統授權信息,包括用戶登錄和使用的權限機制等。
/var/log/daemon.log:包含各種系統后臺守護進程日志信息。
/var/log/kern.log:包含內核產生的日志,有助于在定制內核時解決問題。
評論
查看更多