Linux 分析和排查系统故障

1、主要日志文件

内核及系统日志:由系统服务rsyslo统一管理,主配置文件/etc/rsyslo.conf
用户日志:用于记录Linux系统用户登录及退出系统的相关信息,包括用户名,登录的终端,登录时间,来源主机,正在使用的进程操作等。
程序日志:有些应用程序会选择由自己独立管理一份日志文件(而不是交给rsyslog服务管理)
/var/log/messages //内核及公共消息日志
/var/log/cron //计划任务日志
/var/log/dmesg //系统引导日志
/var/log/mailog //邮件系统日志
/var/log/lastlog //用户最近登录事件
/var/log/secure //用户认证相关的安全事件信息
/var/log/wtmp //用户登录,注销及系统启动和停机事件
/var/run/btmp //失败,错误的登录尝试及验证事件

日志消息的级别
0 EMERG(紧急):会导致主机系统不可用的情况
1 ALERT(警告):必须马上采取措施解决的问题
2 CRIT(严重):比较严重的情况
3 ERR(错误):运行出现错误
4 WARNING(提醒):可能会影响系统功能的事件
5 NOTICE(注意):不会影响系统但值得注意
6 INFO(信息):一般信息
7 DEBUG(调试):程序或系统调试信息等
如:Jun 3 13:26:35 localhost vmusr[2439]: [critical] [GLib-GObject]
时间标签 主机名 子系统名 消息级别 消息字段(内容)

查询用户登录情况
users //简单的输出当前用户名称
who //输出包括用户名,终端类型,登录日期及远程主机
w //显示当前系统中的每个用户及其所运行的进程信息,比uses,who命令输出的内容更加丰富一些
last //查询成功登录到系统的用户记录
lastb //查询登录失败的用户记录

2、远程日志服务器配置

修改/etc/sysconfig/syslog 文件:
1、远程服务器的配置

vi /etc/sysconfig/syslog

将SYSLOGD_OPTIONS=”-m 0” 修改成:SYSLOGD_OPTIONS=”-r -m 0”

-r 表示启用记录远程主机的日志。

2、本机的配置

修改/etc/syslog.conf文件

vi /etc/syslog.conf

authpriv.* @192.168.0.1 表示将本机的登录日志记录到192.168.0.1这台服务器上。

要记录其它类型的日志类似

3、分别重启日志服务

/etc/init.d/syslog restart

3、排除系统启动类故障

①MBR扇区故障
1.备份MBR扇区数据
mkdir /backup
mount /dev/sdb1 /backup
dd if=/dev/sda of=/backup/sda.mbr bs=512 count=1
2.模拟MBR扇区故障
dd if=/dev/zero of=/dev/sda bs=512 count=1
3.从备份中恢复
插入系统光盘进入急救模式
mkdir /tmpdir
mount /dev/sdba /tmpdir //挂载带有备份文件的分区
dd if=/tmpdir/sda.mbr of=/dev/sda bs=512 count=1 //恢复备份数据
最后执行exit退出临时Shell环境,再执行reboot重启
②GRUB引导故障 (开机提示grub>)输入如下:
grub>root (hd0,0)
grub>kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/VolGroup-lv_ root rd_NO_LUKS rd_NO_MD rd_LVM_LV=VolGroup/lv_swap crashkernel=auto LANG=zh_CN. UTF-8 rd_LVM_LV=VolGroup/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
grub>initrd /initramfs-2.6.32-431.el6.x86_64.img
grub>boot
注:电脑或系统不同grub.conf文件内容略有不同,最好提前对/boot/grub/grub.conf文件做好备份

或重写grub.conf文件:
插入系统光盘,进入急救模式
chroot /mnt/sysimage //切换到待修复的Linux系统根环境
grub-install /dev/sda //重建grub.conf文件到/dev/sad分区
exit
reboot
grub.conf主要配置项含义如下:
title //指定在启动菜单中显示的操作系统名称
root //指定包含内核等引导文件的/boot分区所在的位置
kernel //指定内核文件所在的位置,内核加载时权限为只读“ro”,并通过“root=”指定根分区设备文件位置
initrd //指定启动内核所使用的临时系统镜像文件所在的位置
③修复文件系统(超级块)
fsck -y -t ext4 /dev/sdb1
④磁盘资源耗尽故障
1.模拟i节点耗尽故障
mkdir /data //新建目录
mount /dev/sdb7 /data //挂载磁盘
df -i /data //查看i节点使用情况
vi killinode.sh //新建测试程序killinode.sh内容如下:
#!/bin/bash
i=1
while [ $i -le 8600 ]
do
touch /data/file$i
let i++
done
wq
sh killinode.sh //运行该测试程序
df -i /data //确认i节点占用情况
touch /date/a.txt //创建文件,提示设备上没有可用空间
df -hT /date //确定磁盘空间占用情况
rm -rf /date/file* //删除/date目录下以file开头的所有文件
⑤修复硬盘坏道
badblocks -sv /dev/sda

-------------本文结束感谢您的阅读-------------