系統故障分析和排查

1、日誌分析及管理

1)類型

內核及系統日誌:由系統服務syslog管理,主配置文件"/etc/syslog.conf"

用戶日誌:記錄用戶登錄及退出等信息

程序日誌:日誌格式可能會存在極大差異

注:日誌文件默認路徑/var/log/

2)日誌文件分析

普通日誌文件使用tail、more、less、cat等查看,而二進制格式的日誌文件需使用命令

①內核及系統日誌:配置文件"/etc/syslog.conf",通過syslog服務進行控制

格式:時間標籤、主機名、應用程序名、消息

②用戶日誌:使用who、w、users、last、lastb等命令查看

③程序日誌:由程序自己維護,如httpd:access_log和error_log

3)日誌管理策略,建立集中管理的日誌服務器

①配置日誌服務器

vi /etc/sysconfig/syslog

SYSLOGD_OPTIONS="-r -x -m 0"

service syslog restart

②配置客戶機

vi /etc/syslog.conf

cron.*                         @173.17.17.3

service syslog restart

注:在/etc/syslog.conf中第1列表示哪此日誌需要記錄,第2列表示日誌存儲位置

2、系統啓動類故障排除

1)MBR扇區故障

主引導扇區第一個扇區(512字節),主要包括系統引導程序(446字節)及硬盤分區表(64字節)

備份MBR扇區數據

mkdir /backup

mount /dev/sdb1 /backup

dd if=/dev/sda of=/backup/sda.mbr.bak bs=512 count=1

模擬MBR扇區故障

dd if=/dev/zero of=/dev/sda bs=512 count=1

恢復MBR扇區數據

輸入linux rescue進行急救模式

mkdir /tmpdir

mount /dev/sdb1 /tmpdir

dd if=/tmpdir/sda.mbr.bak of=/dev/sda bs=512 count=1

注:如果沒有備份MBR,比較難恢復,可使用“諾頓磁盤醫生”之類能夠按分區位置查找修復的磁盤工具

    實際上MBR主要由三部分組成:主引導程序446Byte、硬盤分區64Byte、硬盤有效標誌2Byte

2)grub引導故障

配置文件"/boot/grub/grub.conf

①模擬故障dd if=/dev/zero of=/dev/sda bs=446 count=1

②進入救援模式

chroot /mnt/sysimage

grub-install /dev/sda

exit

exit

注:①在急救模式下會自動將硬盤中的分區掛載到/mnt/sysimage目錄

②在急救模式下會提示是否初始化磁盤的警告,一定要選擇NO,否則硬盤數據會全部丟失

③(hd0,0) 對應爲 /dev/sda1

④GRand Unified Bootloader極好的統一引導器,是大多數Linux系統默認使用的引導程序

3)/etc/inittab文件丟失

①模擬故障,將/etc/inittab文件刪除

②進入救援模式

mount /dev/hdc  /media

cd /media/Server

rpm  -ivh  --replacepkgs  initscripts-8.45.14.EL.i386.rpm

4)/etc/fstab文件丟失

5)遺忘root用戶的密碼

①通過單用戶模式重設密碼

②通過急救模式重設密碼

進入急救模式,切換到待修復Linux系統的根目錄環境,執行passwd root重設root密碼;或者修改 "/etc/shadow"文件,將root用戶的密碼字段清空

3、軟件包類故障排除

1)rpm數據庫損壞

echo “something” >> /var/lib/rpm/__db.001

rm -rf /var/lib/rpm/__db.00*

rpm --rebuilddb或--initdb

2)缺少*.so類文件

vi /etc/ld.so.conf

/usr/local/mysql/lib/mysql

ldconfig

注:etc/ld.so.conf文件記錄動態鏈接庫的默認搜索路徑

4、文件系統和磁盤類故障排除

1)修復文件系統

  超級塊(super-block)是文件系統的核心,記錄文件系統的類型、大小、空閒磁盤塊等信息

dd if=/dev/zero of=/dev/sdb1 bs=512 count=4

mount /dev/sdb1 /data

fsck -y -t ext3 /dev/sdb1

mount /dev/sdb1 /data

2)磁盤資源耗盡故障

mkdir /data

mount /dev/sdb1 /data

df -i /data

vi killinode.sh

df -i /data

rm -rf /data/file*

注:①i節點作爲文件的索引節點,決定了該磁盤中文件數據的存儲位置和存儲數量

    ②當創建文件系統後,分區中的i節點數,即文件數量也就固定了

    ③當根分區/的磁盤空間耗盡時,可能導致程序無法運行,甚至系統無法啓動,因爲無法建立臨時文件

3)無法卸載已掛載的設備

fuser –mv 正在使用的文件或目錄

-m指定相應的文件或目錄

-v可以顯示詳細信息

-k強制關閉正在使用的進程,需要指定掛載點,如fuser –k /mnt/iso

4)檢測硬盤壞道badblocks

-s顯示進度信息

-v顯示詳情

注:①檢查壞道之前,應儘量先卸載該分區,退出正在訪問設備的其他程序

5、查看系統性能狀況

1)查看CPU

uptime:當前系統時間、主機運行時間、登錄的用戶數、最近1、5、15分鐘內CPU平均負載

cat /proc/loadavg

cat /proc/cpuinfo

2)查看內存

vmstat:vmstat是一個查看虛擬內存(Virtual Memory)使用狀況的工具

free -m:顯示系統中空閒的、已用的物理內存及swap內存,及被內核使用的buffer

3)查看磁盤

rpm -ivh /mnt/iso/Server/sysstat-7.0.2-1.el5.i386.rpm

iostat  //查看磁盤I/O性能統計信息

iostat 2 10   //每2秒抓一個包,總共抓10個包

mpstat   //查看與進程相關的統計數據


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章