linux宕機(jī)日志在“/var/log/”中;linux下的“/var/log/”的log日志,包括message、內(nèi)核報(bào)錯(cuò)日志demsg等;其中sa記錄是記錄cpu、內(nèi)存等運(yùn)行的性能文件;利用sa文件可以查看宕機(jī)時(shí)CPU和內(nèi)存情況。
本教程操作環(huán)境:linux5.9.8系統(tǒng)、Dell G3電腦。
linux 宕機(jī)日志在哪?
linux主機(jī)宕機(jī)排查思路
原因分析
服務(wù)器分類,web服務(wù)器,數(shù)據(jù)庫服務(wù)器,文件服務(wù)器,中間件,其它服務(wù)器。
web服務(wù)器分析:常見的web應(yīng)用apache,nginx,IIS等。
宕機(jī)原因很多,cpu,內(nèi)存,IO磁盤,應(yīng)用BUG,內(nèi)核BUG,硬件等
系統(tǒng)和內(nèi)核版本
流程
1.查看宕機(jī)的時(shí)間記錄和歷史登陸還有重啟時(shí)間
last reboot
last -F |grep crash
查看歷史登陸有沒有異常的用戶
last
2.首先查看系統(tǒng)日志。如linux下的/var/log/下的log日志,包括message,內(nèi)核報(bào)錯(cuò)日志demsg等等,sa記錄,是記錄cpu,內(nèi)存等運(yùn)行的性能文件,記錄著運(yùn)行時(shí)的cpu的運(yùn)行狀態(tài)如圖所示。
利用sa文件查看宕機(jī)時(shí)CPU情況
利用sa文件查看宕機(jī)時(shí)內(nèi)存情況
日志量往往很大
還可以進(jìn)行模糊查詢,如
查看報(bào)錯(cuò)
tail -200 /var/log/messages |grep "Error" cat /var/log/dmesg |grep "Error"
查看內(nèi)核崩潰日志
tail -200 /car/log/messages |grep "crash"
查看是否出現(xiàn)OOM,一般會(huì)出現(xiàn)kill殺死進(jìn)程的情況
cat /var/log/messages |grep -i "kill"
還可以查看宕機(jī)時(shí)間段的日志,查看12月11日15點(diǎn)的日志
cat /vat/log/messages |grep "Feb 11 15*"
3.查看內(nèi)存使用
free -m,查看swap的使用和內(nèi)存剩余情況和緩存。如果swap用了,且available也不夠了,具體還要查看參數(shù)cat /proc/sys/vm/swappiness,如果設(shè)置為0,說明內(nèi)存不夠了。
4.查看io和文件系統(tǒng)使用
觀察idle和iowait。磁盤讀寫時(shí)會(huì)用到緩存,一般為系統(tǒng)內(nèi)存的40%,但是中間有一個(gè)緩沖時(shí)間120秒,將要用完這個(gè)緩存時(shí),且會(huì)等待120秒,才會(huì)寫入磁盤,在讀寫頻繁的時(shí)候容易造成hang住的情況。
查看IO的讀寫速度,如果很慢說明磁盤性能出現(xiàn)瓶頸。
文件系統(tǒng)使用
5.查看安全日志
安全日志為/var/log/secure,查看history記錄,查看是否有人登陸主機(jī)并做了惡意動(dòng)作,例如關(guān)機(jī)。
6.利用kdump和crash工具分析內(nèi)核
檢查服務(wù)器開啟了kdump服務(wù),并在/var/crash目錄找到了當(dāng)天生成的vmcore文件,使用crash工具分析vmcore文件。
Kdump 用于對(duì)內(nèi)存鏡像的轉(zhuǎn)儲(chǔ),它不但可以轉(zhuǎn)儲(chǔ)內(nèi)存鏡像到本地硬盤,還可以將內(nèi)存鏡像通過NFS,SSH 等協(xié)議轉(zhuǎn)儲(chǔ)到不同機(jī)器的設(shè)備上。
Kdump 分為兩個(gè)組件:Kexec 和Kdump。
Kexec 是一種內(nèi)核的快速啟動(dòng)工具,可以使新的內(nèi)核在正在運(yùn)行的內(nèi)核(生產(chǎn)內(nèi)核)的上下文中啟動(dòng),而不需要通過耗時(shí)的BIOS 檢測(cè),方便內(nèi)核開發(fā)人員對(duì)內(nèi)核進(jìn)行調(diào)試。
Kdump 是一種有效的內(nèi)存轉(zhuǎn)儲(chǔ)工具,啟用 Kdump 后,生產(chǎn)內(nèi)核將會(huì)保留一部分內(nèi)存空間,用于在內(nèi)核崩潰時(shí)通過 Kexec 快速啟動(dòng)到新的內(nèi)核,這個(gè)過程不需要重啟系統(tǒng),因此可以轉(zhuǎn)儲(chǔ)崩潰的生產(chǎn)內(nèi)核的內(nèi)存鏡像。
7.查看服務(wù)日志和監(jiān)控軟件
如果在能找到宕機(jī)時(shí)進(jìn)程的占用情況,可以根據(jù)占用異常的服務(wù)查看其日志。
服務(wù)日志一般有數(shù)據(jù)庫和web服務(wù),中間件,框架等。
還可以查看監(jiān)控軟件的歷史記錄圖像,找到峰值點(diǎn)和宕機(jī)時(shí)間點(diǎn)的圖像分析如下圖。
8.總結(jié)
系統(tǒng)宕機(jī)的原因很多,需要我們細(xì)心的按照流程分析,