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 //查看與進程相關的統計數據