天天看點

【Linux運維】第九章(1):分析日志檔案與故障排查

第九章:分析日志檔案與故障排查
一、日志檔案的概述;
二、分析日志檔案;
三、常見linux啟動故障;

一、日志檔案的概述;
1.概念:記錄系統和應用程式的運作資訊,用于排查和診斷系統的故障;
2.linux系統中日志記錄的範圍:加載核心、init程序啟動、啟動/etc/rc.d/rc3.d/S開頭的服務、使用者登入、系統程式運作;
3.日志分類:
  核心及系統日志:通常由rsyslog進行管理;
  使用者日志:記錄使用者的行為;
  程式日志:通常獨立管理,不交給rsyslog;
二、分析日志檔案;
1.常見的日志檔案:
  /var/log/messages:啟動過程日志檔案,通常有硬體加載資訊,也稱為公共日志;
  /var/log/dmesg:啟動過程日志檔案,通常有硬體加載資訊,對解決硬體故障有幫助;
  /var/log/secure:使用者登入認證日志檔案;
2.rsyslog服務:管理核心、系統、使用者的日志
  vi /etc/rsyslog.conf		##編寫日志的規則(rules)
    文法:裝置.優先級 日志存放位置
    裝置(程式):auth(認證,與security相同)、cron(計劃任務)、kern(核心)、mail(郵件)、user(使用者)、local1-local17		(使用者自定義存放位置)
    優先級:嚴重級别從低到高,1.debug調試 2.info資訊 3.notice提醒 4.warn注意 5.error錯誤 6.crit嚴重 7.alert警告 		 8.emerg緊急,等于panic恐慌
    特殊符号:*代表所有的裝置或優先級,;表示隔開多個區域
3.檢視/var/log/messages檔案;
  tail /var/log/messages	##檢視尾部的檔案内容
  日志格式 時間 主機名 程式(或裝置) 日志内容
4.使用者日志分析:
  查詢目前系統的登陸狀況: users		##每個使用者對應一個終端
  查詢登陸系統的詳細資訊: who		##包括使用者、終端、日期
  查詢目前系統中的每個使用者和其所運作的程序: w		##包括使用者、終端、程序
  查詢最近成功登陸系統的使用者: last
  查詢最近登陸失敗的使用者:lastb
5.程式日志檔案分析:
  并無使用rsyslog服務來管理程式日志,由程式自己維護日志;
三、linux系統常見啟動故障:
1.MBR扇區故障:
  MBR扇區概述:位于實體硬碟的第一個扇區(512B),又稱為主引導扇區,前446個位元組是主引導記錄(GRUB引導),	後64個位元組包含了整個硬碟的分區表,還有2個位元組大小的分區标志;
  故障原因:病毒木馬等的破壞,不正确分區,磁盤讀寫誤操作等;
  故障現象:找不到引導,啟動中斷,無法加載作業系統,開機後黑屏;
  解決思路:應先做好sda中的備份,然後使用系統CD光牒進救援模式進行恢複;
	a.備份:因為MBR扇區存放了整塊硬碟的分區資訊,是以必須新添加一塊硬碟進行挂載,然後dd MBR中的資料到挂			載點(dd if=/dev/sda of=/benet/sda.bat bs=512 count=1);
	b.若出現此故障,則開機螢幕會顯示Operating system not found,在測試環境中可以模拟故障(dd if=/dev/zero of=/dev/sda 		bs=512 count=1);
	c.需使用系統CD光牒,調整bois啟動,進入急救模式後(注:在急救模式中,使用的是CD光牒的linux目錄結構),是以找	  不到MBR扇區所在磁盤的任何分區資訊,需要在CD光牒下建立挂載點,然後将備份資料所在的硬碟挂載到挂載點,在	  進行資料恢複(dd 挂載點下備份内容到MBR所在位置);
2.grub引導故障:
  GRUB引導概述:GRUB大多為linux預設的引導程式,主配置檔案/boot/grub/grub.conf;
  故障原因:主配置檔案grub.conf檔案丢失;
  故障現象:引導停滞,無法啟動系統,出現grub>字段;
  解決思路: 
	a.備份:将grub引導程式的主配置檔案/boot/grub/grub.conf備份到别的存儲位置;
	b.模拟故障:将主機的/boot/grub/grub.conf檔案删除,重新開機主機;
	c.修複1:手動在grub>字段後輸入grub資訊 ,進入系統後進行修補grub.conf檔案;
	d.修複2:進入CD光牒救援模式;
		chroot /mnt/sysimage		##CD光牒模式預設是CD光牒的目錄結構,由于系統的分區表沒有損壞,那麼救援模式将linux				主機的目錄架構挂載到了/mnt/sysimage下,需要使用此指令切換到待修複的linux系統;
		cp grub.conf備份檔案位置 /boot/grub/	##将備份的grub.conf檔案恢複到/boot目錄下
		exit		##退出待修複的系統模式
		reboot		##重新開機驗證是否修複成功
	e.若通過以上步驟無法修複grub引導問題,那麼需要進入CD光牒救援模式,重新安裝grub引導程式,若grub.conf配置檔案内部字段被損壞,可以執行重新安裝引導,若此檔案丢失則無法安裝123;
		 chroot /mnt/sysimage
		 grub-install /dev/sda		##重新安裝grub引導程式到sda分區中
		 exit			##退出待修複的系統模式
		 reboot    
3.遺忘root的密碼:
  解決思路:兩種方案
	a.進入單使用者模式進行修改root密碼:開機到秒數時按下鍵--選擇grub行按e鍵--将光标移動到kernel行按e鍵--輸入			空格1然後回車--将光标移動到kernel行按b鍵--進入單使用者模式;passwd 更改root的密碼;
 	b.進入CD光牒救援模式進行修改root密碼:
		chroot /mnt/sysimage		##切換到待修複linux系統的的模式下;
		passwd		##更改root的密碼
		exit			##退出待修複linux系統的模式
		reboot		##重新開機主機,登陸驗證
4.檔案系統故障:
  故障原因:非正常關機、突然斷電、裝置讀寫失誤等(檔案系統的超級塊super-block資訊被損壞);
  故障現象:無法向分區中讀取或寫入資料,啟動後顯示Give root password for maintenance;
  解決思路:
	a.模拟故障:dd if=/dev/zero of=/dev/sdb1 bs=512b count=4		##将sdb1分區的檔案系統破壞掉
	b.測試挂載:出現mount: you must specify the filesystem type;
	c.修複檔案系統:fsck -y -t ext4 /dev/sdb1		##修複檔案系統
	d.再次測試挂載:mount /dev/sdb1 /benet
5.磁盤資源耗盡故障:
  故障原因:磁盤空間已被大量的資料占滿,空間耗盡,有可用空間,但檔案數i節點(磁盤中的檔案的指針,當Linux系	統要查找某個檔案時,它會先搜尋inode table找到這個檔案的屬性及資料存放地點,然後再查找資料存放的Block進	而将資料取出)耗盡;
  故障現象:無法寫入新的檔案,提示裝置上沒有空間,部分程式無法運作,甚至系統無法啟動;
  解決思路:
	a.清理磁盤空間、删除無用的占用i節點的小檔案;
	b.為使用者設定磁盤限額;
  注:df -i		##檢視磁盤分區的i節點使用情況
6.磁盤壞道的檢測:
  故障原因:磁盤裝置中存在邏輯的或者實體的壞道情況
  故障現象:讀取磁盤中的資料時,磁盤裝置發出聲響、通路磁盤中的檔案時,反複讀取且出錯,提示檔案損壞、建立立的	分區無法格式化;
  解決思路:
	a.檢測磁盤時候存在壞道情況(badblocks -sv /dev/sdb);
	b.修複硬碟或者更換新的硬碟;
四、擴充:為grub引導菜單設定密碼;
  grub-md5-crypt		##生成MD5加密的字元串
  将密碼加密串寫入配置檔案/boot/grub/grub.conf 配置檔案
  在hiddenmenu  和  title之間增加加密資訊,如下
  password --md5 加密字元串			##設定密文密碼
  password=123123					##設定明文密碼
           
課堂練習
一、MBR扇區故障:
1.關機添加一塊硬碟,開機之後進行分區,分區完成挂載到/benet目錄下;
2.dd if=/dev/sda of=/benet/sda.bat bs=512 count=1		##備份sda磁盤中的MBR扇區到新添加的硬碟中
3.dd if=/dev/zero of=/dev/sda bs=512 count=1	##模拟MBR扇區故障
4.重新開機主機發現Operating system not found報錯資訊,
5.重新開機主機調bios到CD光牒啟動,進入急救模式;
6.fdisk -l ##檢視主機磁盤資訊,可以檢視到sdb磁盤的資訊,但是無sda磁盤的資訊,因為MBR扇區包含的分區表已經被損壞
7.mkdir benet	##在CD光牒環境中建立一個挂載點
8.mount /dev/sdb1 /benet		##将備份的MBR扇區所在的磁盤分區挂載到挂載點中
9.dd if=/benet/sda.bat of=/dev/sda bs=512 count=1		##進行恢複備份的MBR扇區檔案到磁盤中
10.reboot		##恢複完成後重新開機主機
調整bios為硬碟啟動
11.主機成功啟動,MBR扇區恢複成功;

二、GRUB引導故障:
1.cp /boot/grub/grub.conf /tmp/		##複制系統中的grub.conf啟動檔案做備份;
2.rm -rf /boot/grub/grub.conf		##删除系統中的啟動檔案模拟故障;
3.重新開機主機,發現故障;
4.放入CD光牒,重新開機主機,調bios到CD光牒啟動,進入CD光牒救援模式;
5.chroot /mnt/sysimage		##CD光牒模式預設是CD光牒的目錄結構,由于系統的分區表沒有損壞,那麼救援模式将linux主機的目錄架構挂載到了/mnt/sysimage下,需要使用此指令切換到待修複的linux系統;
6.cp /tmp/grub.conf /boot/grub/	##将備份的grub.conf檔案恢複到/boot目錄下
7.exit		##退出待修複的系統模式
8.reboot		##重新開機驗證是否修複成功
9.調整bios,為硬碟啟動,測試啟動是否成功;

三、修改root密碼:
reboot-->按下鍵-->e-->下鍵選擇kernel-->e-->輸入空格1-->回車-->b-->進入單使用者模式:passwd  root修改密碼-->init 3
           

繼續閱讀