什么是日志文件
日志文件不用說颊埃,就是記錄linux系統(tǒng)在什么時候由哪個進程做了什么樣的行為拂募,發(fā)生了什么事件等拂到。詳細的日志文件信息可以幫助我們解決大部分的Linux問題。
常見的Linux日志文件名
- /var/log/cron : 與之前寫過的crontab任務(wù)調(diào)度相關(guān)的日志文件尸红。
- /var/log/dmesg : 記錄系統(tǒng)在開機時候內(nèi)核檢測過程中所產(chǎn)生的各項信息。由于centos默認將開機時內(nèi)核的硬件檢測過程取消,因此額外將數(shù)據(jù)記錄一份在這個文件中外里。
- /var/log/lastlog : 記錄系統(tǒng)上面所有賬號最近一次登錄系統(tǒng)時的相關(guān)信息怎爵。
lastlog
命令就是基于此。 - /var/log/maillog|* : 記錄郵件的往來信息盅蝗,主要是記錄sendmail(SMTP協(xié)議提供者)與dovecot(POP3協(xié)議提供者)所產(chǎn)生的信息鳖链。
- /var/log/message : 相當重要的日志文件,幾乎系統(tǒng)發(fā)生的錯誤信息都會記錄在這個文件中风科。系統(tǒng)發(fā)生莫名的錯誤時撒轮,這個文件是一定要查閱的日志文件之一。
- /var/log/secure : 基本上贼穆,只要涉及賬號密碼的軟件题山,登錄信息都會存在這個文件中。
- /var/log/wtmp,/var/log/faillog : 分別記錄正確登錄系統(tǒng)的賬戶信息(wtmp)和錯誤登錄的賬戶信息(faillog)
- /var/log/httpd/*
/var/log/news/*
/var/log/samba/*:網(wǎng)絡(luò)服務(wù)相關(guān)的日志文件故痊。
【ps:不同的linux distributions中顶瞳,通常日志的文件名不會相同,所以愕秫,具體仍需查閱主機上的日志文件設(shè)置數(shù)據(jù)慨菱。】
日志文件的產(chǎn)生方式:
- 軟件開發(fā)商自行定義寫入的日志文件與相關(guān)格式戴甩。
- Linux distribution提供的日志文件管理服務(wù)來統(tǒng)一管理符喝。centos7使用rsyslogd來統(tǒng)一管理。
日志文件所需服務(wù)與程序
rsyslogd : 主要登錄系統(tǒng)與網(wǎng)絡(luò)等服務(wù)的信息甜孤。
klogd : 主要登錄內(nèi)核產(chǎn)生的各項信息协饲。
logrotate : 主要進行日志文件的輪替功能。
rsyslogd
日志文件內(nèi)容的一般格式
一般來說缴川,系統(tǒng)產(chǎn)生的信息經(jīng)過syslog記錄的數(shù)據(jù)茉稠,每條信息均會記錄下面的幾個重要數(shù)據(jù)。
- 事件發(fā)生的日期與時間
- 發(fā)生此事件的主機名
- 啟動此事件的服務(wù)名稱和函數(shù)名稱
- 該信息的實際數(shù)據(jù)內(nèi)容
這里就拿第一條數(shù)據(jù)做說明:
在7月22日 03:46:03(Jul 22 03:46:03) 由 izuf6i29flb2df231kt91hz這臺主機的sshd[pid為3070]傳來的消息把夸,信息為 來自175.124.123.28端口46519的用戶wuzhenqun無效
syslog的配置文件:/etc/rsyslog.conf(centos7采用rsyslog)
syslog針對各種服務(wù)與信息記錄在某些文件的配置文件就是/etc/rsyslog.conf.這個文件規(guī)定了什么服務(wù)的什么等級信息以及需要被記錄在那里(設(shè)備或文件)
語法規(guī)則:
服務(wù)名稱[.=!]信息等級 信息記錄的文件名或設(shè)備或主機
mail.info /var/log/maillog_info
# 說明 mail服務(wù)產(chǎn)生的大于等于info等級的信息而线,都記錄到/var/log/maillog_info文件中
-
服務(wù)名稱
syslog設(shè)置有一些服務(wù),可以通過這些服務(wù)來存儲系統(tǒng)的信息恋日,syslog設(shè)置的服務(wù)主要有下面這些:
服務(wù)類型 | 說明 |
---|---|
auth(authpriv) |
主要與認證有關(guān)的機制膀篮,例如login,ssh,su等需要賬號/密碼 |
cron |
就是例行性工作調(diào)度cron/at等生成信息日志的地方 |
daemon |
與各個daemon有關(guān)的信息 |
kern |
就是內(nèi)核(kernel)產(chǎn)生信息的地方 |
lpr |
即時打印相關(guān)的信息 |
mail |
只要與郵件收發(fā)有關(guān)的信息記錄都屬于這個 |
news |
與新聞組服務(wù)器有關(guān)的東西 |
syslog |
就是syslogd這個程序本身生成的信息 |
user,uucp,local0-local7 |
與Unix like機器本身有關(guān)的一些信息 |
以上提到的都是syslog自行制定的服務(wù)名稱。軟件開發(fā)商可以通過調(diào)用上述的服務(wù)名稱來記錄他們的軟件岂膳。
比如sendmail是與郵件相關(guān)的軟件各拷,都是調(diào)用syslogd內(nèi)的mail服務(wù)。
- 信息等級
等級 | 等級名稱 | 說明 |
---|---|---|
1 | info |
僅是一些基本的信息說明而已 |
2 | notice |
除了info外還需要注意的一些信息內(nèi)容 |
3 | warning(warn) |
警示的信息闷营,可能有問題烤黍,但是還不至于影響某個daemon運行的信息 |
4 | err(error) |
一些重大的錯誤信息知市,例如配置文件的某些設(shè)置造成該服務(wù)無法啟動的信息說明 |
5 | crit |
比error還要嚴重的錯誤信息,這個crit是臨界點(critical)的縮寫速蕊,這個錯誤已經(jīng)很嚴重了 |
6 | alert |
警告嫂丙,已經(jīng)很有問題的等級,比crit還嚴重 |
7 | emergency(panic) |
"疼痛"等級规哲,意指系統(tǒng)已經(jīng)幾乎要死機的狀態(tài) |
- 鏈接符號
"." : 代表比后面還要高的等級(含該等級)跟啤,都被記錄下來的意思
".=" :代表需要的等級就是后面接的等級而已
".!" : 代表不等于,即是除了該等級之外的其他等級都記錄
- rsyslog.conf配置(centos7采用rsyslog,這里使用的是rsyslog的數(shù)據(jù))
# Don't log private authentication messages!
記錄所有日志類型的info級別以及大于info級別的信息到/var/log/messages唉锌,但是mail郵件信息隅肥,authpriv驗證方面的信息和cron時間任務(wù)相關(guān)的信息除外
*.info;mail.none;authpriv.none;cron.none /var/log/messages
# The authpriv file has restricted access.
authpriv驗證相關(guān)的所有信息存放在/var/log/secure
authpriv.* /var/log/secure
# Log all the mail messages in one place.
郵件的所有信息存放在/var/log/maillog; 這里有一個-符號, 表示是使用異步的方式記錄, 因為日志一般會比較大
mail.* -/var/log/maillog
# Log cron stuff
計劃任務(wù)有關(guān)的信息存放在/var/log/cron
cron.* /var/log/cron
# Everybody gets emergency messages
記錄所有的大于等于emerg級別信息, 以wall方式發(fā)送給每個登錄到系統(tǒng)的人
*.emerg :omusrmsg:*
# Save news errors of level crit and higher in a special file.
記錄uucp,news.crit等存放在/var/log/spooler
uucp,news.crit /var/log/spooler
# Save boot messages also to boot.log
啟動的相關(guān)信息
local7.* /var/log/boot.log
日志文件的安全設(shè)置
通過這個chattr屬性可以保護日志文件只能被增加,而不能被刪除袄简。
chattr +a /var/log/message
日志文件的輪替
配置文件:
/etc/logrotate.conf 主要參數(shù)文件
/etc/logrotate.d 目錄文件
下圖是centos7默認的logrotate.conf文件