在處理Linux操作系統(tǒng)出現(xiàn)的各種故障時,故障的癥狀是最容易發(fā)現(xiàn)的,但導(dǎo)致故障的原因才是最終排除故障的關(guān)鍵。熟悉Linux操作系統(tǒng)中常見的日志文件,了解一般故障的分析與解決辦法,將有助于管理員快速定位故障點,“對癥下藥”,及時解決各種系統(tǒng)問題。
創(chuàng)新互聯(lián)建站2013年至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元鐘山做網(wǎng)站,已為上家服務(wù),為鐘山各地企業(yè)和個人服務(wù),聯(lián)系電話:13518219792博文大綱:
一、分析日志文件;
二、排除系統(tǒng)啟動類故障;
三、排除文件系統(tǒng)類故障;
日志文件是用于記錄Linux操作系統(tǒng)中各種運(yùn)行消息的文件,相當(dāng)于Linux主機(jī)的“日記”。不同的日志文件記載了不同類型的信息,如Linux內(nèi)核消息、用戶登錄事件、程序錯誤等。
日志文件對于診斷和解決系統(tǒng)中的問題很有幫助,因為在Linux操作系統(tǒng)中運(yùn)行的程序通常會把系統(tǒng)消息和錯誤消息寫入相應(yīng)的日志文件,這樣系統(tǒng)一旦出現(xiàn)問題就會“有據(jù)可查”,此外,當(dāng)主機(jī)遭受 破壞時,日志文件還可以幫助尋找破壞 者留下別的痕跡。
在Linux操作系統(tǒng)中,日志數(shù)據(jù)主要包括以下三種類型:
- 內(nèi)核及系統(tǒng)日志:這種日志數(shù)據(jù)由系統(tǒng)服務(wù)rsyslog統(tǒng)一管理,根據(jù)其主配置文件/etc/rsyslog.conf中的設(shè)置決定將內(nèi)核消息及各種系統(tǒng)程序消息記錄到什么位置。 系統(tǒng)中有相當(dāng)一部分程序會把自己的日志文件交由rsyslog管理,因而這些程序使用的日志記錄也具有相似的格式;
- 用戶日志:這種日志數(shù)據(jù)用于記錄Linux操作系統(tǒng)用戶登錄及退出系統(tǒng)的相關(guān)信息,包括用戶名、登錄的終端、登錄時間、來源主機(jī)、正在使用的進(jìn)程操作等;
- 程序日志:有些應(yīng)用程序會選擇由自己獨立管理一份日志文件(而不是交給rsyslog服務(wù)管理),用于記錄本程序運(yùn)行過程中的各種事件信息。由于這些程序只負(fù)責(zé)管理自己的日志文件,因此不同程序所使用的日志記錄格式可能會存在較大的差異;
Linux操作系統(tǒng)本身和大部分的服務(wù)器程序的日志文件都默認(rèn)放在目錄/var/log/下。一部分程序公用一個日志文件,一部分程序使用單個日志文件;而有些大型的服務(wù)程序由于日志文件不止一個,所以會在/var/log/目錄中建立相應(yīng)的子目錄來存放日志文件,這樣既保證了日志文件目錄的結(jié)構(gòu)清晰,又可以快速定位日志文件。有相當(dāng)一部分日志文件只有root用戶才有權(quán)限讀取,這保證了相關(guān)信息的安全性。
對于Linux操作系統(tǒng)中的日志文件,有必要了解其各自的用途,這樣才能在需要的時候更快地找到問題所在、及時地解決各種故障。
常見的一些日志文件,如圖:
分析日志文件的目的在于通過瀏覽日志查找關(guān)鍵信息,對系統(tǒng)服務(wù)進(jìn)行調(diào)試,以及判斷發(fā)生故障的原因等。
對于大多數(shù)文本格式的日志文件(如內(nèi)核及系統(tǒng)日志、大多數(shù)的程序日志),可以使用tail、more、cat、less等命令進(jìn)行查看,對于一些特殊的二進(jìn)制的日志文件(如用戶日志)則需要使用特定的查詢命令。
rsyslog服務(wù)所使用的配置文件為/etc/rsyslog.conf。
[root@localhost ~]# grep -v "^$" /etc/rsyslog.conf
//過濾空行
# rsyslog configuration file
# For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
# If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html
#### MODULES ####
# The imjournal module bellow is now used as a message source instead of imuxsock.
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
…………………… //省略部分內(nèi)容
從配置文件中可以看出,受rsyslog服務(wù)管理的日志文件都是Linux操作系統(tǒng)中主要的日志文件,它們記錄了Linux操作系統(tǒng)中內(nèi)核、用戶認(rèn)證、電子郵件、計劃任務(wù)等基本的系統(tǒng)消息。在Linux內(nèi)核中,根據(jù)日志消息的重要程度不同,將其分為不同的優(yōu)先級別(數(shù)字越小,優(yōu)先級越高,消息越重要)。如圖:
內(nèi)核及大多數(shù)系統(tǒng)消息被記錄到公共日志文件/var/log/messages中,而其他一些程序消息被記錄到各自獨立的日志文件中,此外日志消息還能夠記錄到特定的存儲設(shè)備中,或者直接發(fā)送給指定用戶。
對于rsyslog服務(wù)統(tǒng)一管理的大部分日志文件,使用的日志記錄格式基本上是相同的。以公共日志/var/log/messages文件的記錄格式為例,其中每一行表示一條日志消息,每一條消息均包括以下四個字段:
在有些情況下,可以設(shè)置rsyslog,使其在把日志信息記錄到文件的同時將日志信息發(fā)送到打印機(jī)進(jìn)行打印,這樣無論網(wǎng)絡(luò) 非法進(jìn)入 者怎么修改日志都不能清除***的痕跡。rsyslog日志服務(wù)是一個常被 破壞 的的顯著目標(biāo),破壞了它將管理員難以發(fā)現(xiàn) 非法進(jìn)入 及相關(guān)信息,因此要特別注意監(jiān)控其守護(hù)進(jìn)程及配置文件。
在wtmp、btmp、lastlog等日志文件中,保存了系統(tǒng)用戶登錄、退出等相關(guān)的時間消息。但是這些文件都是二進(jìn)制的數(shù)據(jù)文件,不能直接使用tail、less等文本查看工具進(jìn)行瀏覽,需要使用who、w、users、last和lastb等用戶查詢命令來獲取日志信息。
user命令只是簡單地輸出當(dāng)前登錄的用戶名稱,每個顯示的用戶名對應(yīng)一個登錄會話。如果一個用戶有不止一個登錄會話,那么他的用戶名將顯示與其相同的次數(shù)。操作如下:
[root@localhost ~]# users
(unknown) root root root
who命令用于報告當(dāng)前登錄到系統(tǒng)中的每個用戶的信息。使用該命令,系統(tǒng)管理員可以查看當(dāng)前系統(tǒng)存在哪些不合法的用戶,從而對其進(jìn)行審計和處理。who的默認(rèn)輸出包括用戶名、終端類型、登錄日期及遠(yuǎn)程主機(jī)。操作如下:
[root@localhost ~]# who
(unknown) :0 2019-09-10 00:01 (:0)
root tty2 2019-09-10 00:10
root pts/0 2019-09-09 16:25 (192.168.1.253)
root tty3 2019-09-09 16:42
w命令用于顯示當(dāng)前系統(tǒng)中的每個用戶及其運(yùn)行的進(jìn)程信息,比users、who命令的輸出內(nèi)容更豐富一些,操作如下:
[root@localhost ~]# w
16:49:29 up 48 min, 4 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCU WHAT
root tty2 00:10 ? 0.84s 0.84s -bash
root pts/0 192.168.1.253 16:25 1.00s 0.10s 0.06s w
root tty3 16:42 ? 0.08s 0.03s -bash
last命令用于查詢成功登錄到系統(tǒng)的用戶記錄,最近的登錄情況將顯示在最前面。
[root@localhost ~]# last
xiaoli tty3 Thu Sep 12 04:49 still logged in
root pts/0 192.168.1.253 Thu Sep 12 04:47 still logged in
root tty2 Thu Sep 12 04:46 still logged in
lastb命令用于查詢登錄失敗的用戶記錄,如登錄的用戶名錯誤,密碼不正確等情況都將記錄下來。
[root@localhost ~]# lastb
xiaowang tty3 Thu Sep 12 04:52 - 04:52 (00:00)
xiaoli tty3 Thu Sep 12 04:52 - 04:52 (00:00)
除了使用lastb命令以外,還可以查看安全日志/var/log/secure。查看日志文件可以使用webalizer、Awstats軟件可以通過圖形化查看日志,通俗易懂!
在Linux操作系統(tǒng)中,還有相當(dāng)一部分應(yīng)用程序沒有使用rsyslog服務(wù)來管理日志,而是由程序自己維護(hù)日志記錄。例如:http網(wǎng)站服務(wù)等。不同應(yīng)用程序i的日志記錄格式差別很大,且沒有嚴(yán)格使用統(tǒng)一的格式。
作為一名合格的系統(tǒng)管理人員,應(yīng)該提高警惕,隨時注意各種可疑狀況,定期并隨機(jī)檢查各種系統(tǒng)日志文件,包括一般信息日志、網(wǎng)絡(luò)連接日志、文件傳輸日志及用戶登錄日志記錄等。在檢查這些日志時,要注意是否有不和常理的時間或操作記錄。
出現(xiàn)以下情況之一,就需要多加注意:
- 用戶在非常規(guī)的時間登錄,或者用戶登錄系統(tǒng)的IP地址和往常的不一樣;
- 用戶登錄失敗的日志記錄,尤其是那些一再連續(xù)嘗試進(jìn)入系統(tǒng)失敗的日志記錄;
- 非法使用或不正當(dāng)使用超級用戶權(quán)限;
- 無故或者非法重新啟動各項網(wǎng)絡(luò)服務(wù)的記錄;
- 不正常的日志記錄,如日志殘缺不全,或者比如wtmp這樣的日志文件無故缺少了中間的記錄文件。
另外,需要管理人員注意的是,日志并不是完全可靠的,聰明的黑 客在進(jìn)入系統(tǒng)后經(jīng)過會打掃現(xiàn)場。所以管理人員需要綜合運(yùn)用以上的系統(tǒng)命令,全面、綜合地進(jìn)行審查和檢測。切記不要斷章取義,否則將會做出錯誤的判斷。
Linux操作系統(tǒng)的啟動過程涉及到MBR、GRUB啟動菜單、系統(tǒng)初始化配置文件等各方面,其中任何一個環(huán)節(jié)出現(xiàn)故障都可能導(dǎo)致系統(tǒng)啟動失常,因此一定要在注意好相關(guān)文件的備份工作。
MBR扇區(qū)包括三部分:
- 系統(tǒng)引導(dǎo)程序(GRUB引導(dǎo)菜單占用446字節(jié));
- 分區(qū)表(最多可以有四個主分區(qū),每個分區(qū)占用16字節(jié));
- 扇區(qū)的結(jié)束標(biāo)志占用2字節(jié);
MBR位于物理硬盤的第一個扇區(qū)(512字節(jié)),該扇區(qū)又稱為主引導(dǎo)扇區(qū)(MBR扇區(qū)),除了包含系統(tǒng)引導(dǎo)程序的部分?jǐn)?shù)據(jù)外部分?jǐn)?shù)據(jù)外,還包含整個硬盤的分區(qū)表記錄。當(dāng)主引導(dǎo)扇區(qū)發(fā)生故障時,將很有可能無法進(jìn)入引導(dǎo)才散,或者無法找到正確的分區(qū)位置而無法加載系統(tǒng),通過該硬盤引導(dǎo)主機(jī)時很可能進(jìn)入黑屏、死機(jī)狀態(tài)。
通過下面示例我們開始對MBR扇區(qū)進(jìn)行備份、模擬破壞、修復(fù)的過程:
由于MBR扇區(qū)中包含了整個硬盤的分區(qū)表記錄,因此該扇區(qū)的備份文件必須存放到其他的存儲設(shè)備中,否則在恢復(fù)時將無法讀取到備份文件。例如:
[root@localhost ~]# mkdir /backup
[root@localhost ~]# mount /dev/sdb1 /backup
[root@localhost ~]# dd if=/dev/sda of=/backup/sda.mbr.bak bs=512 count=1
//使用dd命令將第一塊硬盤中的MBR扇區(qū)數(shù)據(jù)備份到第二塊硬盤sdb1分區(qū)中
關(guān)于硬盤分區(qū)等詳細(xì)情況可以參考博文:Linux磁盤和文件系統(tǒng)管理(一)
[root@localhost ~]# dd if=/dev/zero of=/dev/sda bs=512 count=1
//使用/dev/zero(無限寫零)文件覆蓋原本的MBR扇區(qū)數(shù)據(jù)
系統(tǒng)重啟,將會出現(xiàn)“Operating system not found”的提示信息,表示無法找到可用的操作系統(tǒng),因此無法啟動主機(jī)。
由于MBR扇區(qū)被破壞以后,就無法再從硬盤啟動系統(tǒng)化,所以需要使用其他硬盤中的操作系統(tǒng)進(jìn)行引導(dǎo),或者使用Centos系統(tǒng)的安裝光盤進(jìn)行引導(dǎo),不管使用什么方式,目的都是相同的——獲得一個可以執(zhí)行命令的Shell環(huán)境,以便從備份文件中恢復(fù)MBR扇區(qū)中的數(shù)據(jù)。
我們使用系統(tǒng)盤引導(dǎo)為例,操作如圖:
完成以上操作后,就會出現(xiàn)一個帶“sh-4.2#”提示符的bash環(huán)境,如圖:
完成恢復(fù)操作以后,執(zhí)行“exit”命令退出當(dāng)前臨時shell環(huán)境,系統(tǒng)將會自動重啟!
GRUB是大多數(shù)Linux操作系統(tǒng)默認(rèn)使用的引導(dǎo)程序,可以通過啟動菜單的方式選擇進(jìn)入不同的操作系統(tǒng)(如果有別的系統(tǒng)),當(dāng)配置文件/boot/grub2/grub.cfg 丟失,或者關(guān)鍵配置出現(xiàn)錯誤,或者M(jìn)BR中的引導(dǎo)程序遭到破壞時,
提前備份grub配置文件:
[root@localhost ~]# vim /boot/grub2/grub.cfg
[root@localhost ~]# mv /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
//將原本的grub配置文件改名
重啟之后,Linux主機(jī)啟動后可能會出現(xiàn)“grub>”的提示符,無法完成進(jìn)一步的系統(tǒng)啟動過程。如圖:
解決方案:
進(jìn)入急救模式,如圖:
完成以上操作后,就會出現(xiàn)一個帶“sh-4.2#”提示符的bash環(huán)境,具體操作命令如圖:
當(dāng)選擇啟動方式為光盤啟動時,建議修改完成之后依然選擇硬盤啟動,也可以根據(jù)光盤啟動的提示信息手工選擇本地硬盤啟動,如圖:
完成以后操作后,系統(tǒng)就可正常啟動!
注意:CentOS7因為使用的是grub2,配置文件同grub有不少變化,一定要切記備份grub.cfg以便恢復(fù)。
遺忘root密碼可以參考博文:遺忘Linux系統(tǒng)root密碼所采取的必要措施
無論是MBR扇區(qū)故障、GRUB引導(dǎo)菜單還是遺忘root密碼相關(guān)操作,都可進(jìn)入急救模式進(jìn)行修復(fù)。
文件系統(tǒng)及磁盤中所存儲的數(shù)據(jù)的價值是無法估量的,管理員的工作職責(zé)之一就是必須確保數(shù)據(jù)的安全。由于磁盤屬于易損耗品,無法預(yù)估它什么時候會損壞,所以最好的辦法就是建立完整的備份機(jī)制。當(dāng)系統(tǒng)出現(xiàn)文件系統(tǒng)或磁盤故障時沒一定要慎重處理。
在Linux主機(jī)中,可能會因為非正常關(guān)機(jī)、突然斷電、設(shè)備數(shù)據(jù)讀寫異常等原因?qū)е挛募到y(tǒng)破壞。比較常見的是超級快損壞。超級快是文件系統(tǒng)的核心“檔案”,它記錄了該文件系統(tǒng)的類型、大小、空閑磁盤塊等信息。
當(dāng)文件系統(tǒng)的超級塊數(shù)據(jù)損壞是,Linux將無法識別該文件系統(tǒng),掛載時會出現(xiàn)錯誤提示以致不能正常使用。執(zhí)行下列操作可以破壞文件的超級塊數(shù)據(jù)庫。命令如下:
[root@localhost ~]# dd if=/dev/zero of=/dev/sdb1 bs=512 count=4
記錄了4+0 的讀入
記錄了4+0 的寫出
2048字節(jié)(2.0 kB)已復(fù)制,0.000868901 秒,2.4 MB/秒
[root@localhost ~]# mkdir /a
[root@localhost ~]# mount /dev/sdb1 /a
mount: /dev/sdb1 寫保護(hù),將以只讀方式掛載
mount: 未知的文件系統(tǒng)類型“(null)”
[root@localhost ~]# vim /etc/fstab
…………………… //省略部分內(nèi)容
/dev/sdb1 /a xfs defaults 0 1
//實現(xiàn)自動掛載
重啟系統(tǒng)后,會出現(xiàn)以下錯誤,如圖:
修復(fù)完畢?。?!
顯而易見,當(dāng)一個文件系統(tǒng)的磁盤空間耗盡以后,將無法繼續(xù)在該分區(qū)中創(chuàng)建新的文件數(shù)據(jù),從而導(dǎo)致故障的出現(xiàn)。
當(dāng)因為根分區(qū)磁盤空間不足,而無法啟動進(jìn)入Linux操作系統(tǒng)時,可以進(jìn)入急救模式,清理占用大量空間的文件??梢允褂妹睢癲d if=/dev/zer0 of=/a bs=1M count=999999”模擬故障。
除此之外,在每一個文件系統(tǒng)中,能夠使用的文件數(shù)量(對應(yīng)i結(jié)點的數(shù)量)也是有限的,當(dāng)一個文件系統(tǒng)被格式化后,其i結(jié)點數(shù)也就固定了,如果用戶故意消耗i結(jié)點數(shù)量,那么,及時該分區(qū)有大量的空間,也不可以創(chuàng)建文件。
通過示例了解一下:
[root@localhost ~]# mkdir /a
[root@localhost ~]# mount /dev/sdb1 /a
[root@localhost ~]# df -i /a
文件系統(tǒng) Inode 已用(I) 可用(I) 已用(I)% 掛載點
/dev/sdb1 10485248 3 10485245 1% /a
編寫一個小腳本,消耗i結(jié)點數(shù)量,腳本內(nèi)容如下:
[root@localhost ~]# vim a.sh
#!/bin/bash
i=1
while [ $i -le 310485245 ]
do
touch /a/file$i
let i++
done
[root@localhost ~]# sh a.sh &
[root@localhost ~]# df -i /a
文件系統(tǒng) Inode 已用(I) 可用(I) 已用(I)% 掛載點
/dev/sdb1 10485248 0 3 10485245 100% /a
[root@localhost ~]# touch /a/newfile
touch: 無法創(chuàng)建“/a/newfile” :設(shè)備上沒有空間
[root@localhost ~]# df -hT /a
文件系統(tǒng) 類型 容量 已用 可用 已用% 掛載點
/dev/mapper/cl-root xfs 17G 4.5G 13G 26% /
[root@localhost ~]# rm -rf /a/file*
磁盤壞道分為邏輯壞道和物理壞道來哪種,前者是由于軟件操作不當(dāng)造成,可以使用軟件修復(fù)工具進(jìn)行修復(fù),而后者是物理性損壞,只能通過更改磁盤分區(qū)或扇區(qū)的占用位置進(jìn)行進(jìn)行改善,從而排除包含壞塊的磁盤空間,若磁盤出現(xiàn)以下現(xiàn)象,則有可能是磁盤出現(xiàn)壞道,需要檢測和修復(fù)。
在Linux系統(tǒng)中,檢測磁盤的壞道情況可以使用badblocks命令進(jìn)行,結(jié)合“-s”用于顯示進(jìn)度信息;“-v”選項用于顯示詳情。
[root@localhost ~]# badblocks -sv /sdb/sdb
在長期使用計算機(jī)的過程中,文件系統(tǒng)和磁盤類的故障現(xiàn)象很難完全避免,對于此類故障的修復(fù)需要十分謹(jǐn)慎,如果操作不當(dāng)可能會加重數(shù)據(jù)破壞的程度。當(dāng)發(fā)現(xiàn)磁盤中存在壞道時,應(yīng)盡快停止系統(tǒng)中的應(yīng)用服務(wù)、備份相關(guān)數(shù)據(jù),必要時立即關(guān)閉系統(tǒng)一方磁盤壞道進(jìn)一步擴(kuò)散,避免導(dǎo)致更大的損失。對于存在壞道的硬盤設(shè)備,應(yīng)使用其他完好的硬盤進(jìn)行替換。
———————— 本文至此結(jié)束,感謝閱讀 ————————
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
標(biāo)題名稱:保證Linux系統(tǒng)安全之分析和排查系統(tǒng)故障-創(chuàng)新互聯(lián)
瀏覽路徑:http://aaarwkj.com/article4/hcioe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、移動網(wǎng)站建設(shè)、網(wǎng)站策劃、網(wǎng)頁設(shè)計公司、App設(shè)計、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容