日志系統:操作系統在運行過程中會有很多信息產生,這些信息即是我們去觀察系統運行過程當中正常狀況一種途徑;同時為我們提供了當發生故障的時候定位問題所在位置根源
syslogd與klogd介紹
syslogd;專門記錄非內核的其他設施所產生的日志;當系統的控制權 由內核轉交給init的時候,這時候的日志信息的記錄由syslog記錄
klogd:內核 主要負責內核所產生的日志當系統啟動完成之後就會
由klogd進程記錄控制並把這些內容記錄在/var/log/dmesg中
查看命令
# dmesg(專門負責打開var/log/dmesg文件,並顯示出來的
# cat命令也可以查看
相關文件存放日志信息類型介紹
var/log/dmesg:存放的是內核產生的日志信息,即啟動init程序之前產生的日志信息
/var/log/messages:系統標准錯誤日志信息;非內核產生的引導信息大多數的子系統所產生的日志信息都會記錄到這裡
/var/log/maillog:存放由郵件系統產生的日志信息;
/var/log/secure:存放與安全有關的日志信息,裡面記錄了用戶正確或錯誤登錄系統的詳細的私密信息
只有管理員才能查看;
日志級別介紹
priority(log level)日志的級別,一般有以下幾種級別(從低到高)
debug # 程序或系統的調試信息【級別越低,記錄的日志越詳細,同時會導致硬盤工作超負荷
info # 一般信息
notice # 不影響正常功能,需要注意的消息
warning/warn # 可能影響系統功能,需要提醒用戶的重要事件
err/error # 錯誤信息
crit # 比較嚴重的 【相當於發出藍色警報】
alert # 必須馬上處理的 【相當於發出橙色警報】
emerg/panic # 會導致系統不可用的 【相當於發出紅色警報】
* # 表示所有的日志級別
none # 跟* 相反,表示什麼也不記錄
facility(可以理解為產生日志的來源)經常用的總結如下
auth # 認證相關的
authpriv # 權限,授權相關的
cron # 任務計劃相關的
daemon # 守護進程相關的 比如:httpd 工作在後台的
kern # 內核相關的
lpr # 打印相關的
mail # 郵件相關的
mark # 標記相關的
news # 新聞相關的
security # 安全相關的,與auth 類似
syslog # syslog自己的
user # 用戶相關的
uucp # unix to unix cp 相關的
local0 到 local7 # 用戶自定義使用
* # *表示所有的facility
action(可以理解為對日志的處理辦法)
系統上的絕對路徑 # 普通文件 如: /var/log/xxx
| # 管道 通過管道送給其他的命令處理
終端 # 終端 如:/dev/console
@HOST # 遠程主機 如: @10.0.0.1
用戶 # 系統用戶 如: root
* # 登錄到系統上的所有用戶,一般emerg級別的日志是這樣定義的
格式示例的詳解
mail.info /var/log/mail.log # 表示將mail相關的,級別為info及以上級別的信息記錄到/var/log/mail.log文件中
auth.=info @172.16.0.1 # 表示將auth相關的,只是把info級別的信息記錄到10.0.0.1主機上去
user.!=error # 表示記錄user相關的,除了error級別外的信息
user.!error # 比error低的級別信息
*.info # 所有可能產生日志信息的子系統的info級別及其以上級別信息
mail.* # mail子系統產生的所有日志信息
*.* # 記錄所有的日志信息的所有級別的日志信息
cron.info;mail.info # 記錄多個日志系統信息,中間用“;”隔開
cron,mail.info # 意思同上
mail.*;mail.!=info # 記錄mail相關的所有級別的信息,但是不包括info級別的
對/etc/logrotate.conf配置文件的分析
# see "man logrotate" for details
# rotate log files weekly
weekly (意思是每周更新一次日志文件)
# keep 4 weeks worth of backlogs
rotate 4 (定義保留4個版本,超出這個定義的數就會被清除)
# create new (empty) log files after rotating old ones
create (滾動結束之後,生成新的一個空的日志文件)
# uncomment this if you want your log files compressed
#compress
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d (日志文件同時還依賴於這個文件,在/etc/logrotate.d中為每個文件定義一個子系統的日志滾動機制)
# no packages own wtmp -- we'll rotate them here
/var/log/wtmp { (指定一個日志文件)
monthly (按月滾動,以這個日志文件定義的滾動時間為主,如果全局定義了,這個沒定義,以全局為主)
minsize 1M (最小為1M)
create 0664 root utmp (創建一個新的文件,權限為0664,屬主為root,日志文件名為utmp )
rotate 1 (保留1個歷史版本)
}
/var/log/btmp {
missingok
monthly
minsize 1M
create 0600 root utmp
rotate 1
}
對/etc/syslog.conf配置文件的分析
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/console
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none /var/log/messages
(除了mail,authpriv,cron之外所有facility產生的info以及info以上的級別都放在/var/llog/messages)
# The authpriv file has restricted access.
authpriv.* /var/log/secure
跟用戶授權相關的所有級別都記錄在/var/log/secure文件中
# Log all the mail messages in one place.
mail.* -/var/log/maillog
(與郵件相關的所有級別都記錄在/var/log/maillog文件中,此處的“-”表示異步寫入,不會同時寫入到磁盤上去)
# Log cron stuff
cron.* /var/log/cron
(與cron相關的所有級別都記錄在/var/log/cron文件中 )
# Everybody gets emergency messages
*.emerg *
(相當於向每一個用戶發出紅色警報)
# Save news errors of level crit and higher in a special file.
uucp,news.crit /var/log/spooler
(在uucp和news相關的crit和crit以上級別記錄在/var/log/spooler文件中)
# Save boot messages also to boot.log
local7.* /var/log/boot.log
(用戶自定義的跟引導相關的所有級別都記錄在/var/log/boot.log文件中)