分析和排查系统故障
日志文件分析
主要日志文件
日志的功能:
- 用于记录系统、程序运行中发生的各种事件
- 通过阅读日志,有助于诊断和解决系统故障
日志分类
-
内核及系统日志:
- 由系统服务rsyslog统一管理,日志格式基本相似
-
用户日志
- 记录系统用户登录及退出系统相关信息
-
程序日志
- 由各种应用程序独立管理的日志文件,记录格式不统一
日志保存位置:
日志保存位置:
默认位于:/var/log目录下
主要日志文件介绍:
内核及公共消息日志 | /var/log/messages |
---|---|
计划任务日志 | /var/log/cron |
系统引导日志 | /var/log/dmesg |
邮件系统日志 | /var/log/maillog |
用户登录日志 | /var/log/lastlog /var/log/secure /var/log/wtmp /var/run/btmp |
日志文件分析
由系统服务rsyslogd统一管理
软件包;rsyslog-8.24.0-16.el7.x86_64
主要程序:/sbin/rsyslogd
配置文件: /etc/rsyslog.comf
日志消息的级别 | ||
---|---|---|
0 EMERG(紧急): | 会导致主机系统不可用的情况 | |
1 ALERT(警告): | 必须马上采取措施解决的问题 | |
2 CRIT(严重): | 比较严重的情况 | |
3 ERR(错误): | 运行出现错误 | |
4 WAGRNIN(提醒): | 可能会影响系统功能的事件 | |
5 NOTICE(注意): | 不会影响系统但值得注意 | |
6 INFO(信息): | 一般信息 | |
7 DEBUG(调试): | 程序或系统调试信息等 |
日志记录的一般格式
用户日志分析
保存了用户登录、退出等系统相关信息
var/log/lastlog: | 最近的用户登录事件 |
---|---|
/var/log/wtmp: | 用户登录、注销及系统开、关机事件 |
/var/run/utmp: | 当前登录的每个用户的详细信息 |
/var/log/secure: | 与用户验证相关的安全性事件 |
分析工具:
#users //输出当前登录的用户名称
#who //登录到系统的用户信息,包括终端类型、登录日期以及远程主机
#w //比who显示的信息更加详细,主机运行时间、登录用户数量、平均负载等
last:用户最近登录情况
lastb:登陆失败的用户记录
程序日志分析
由相应的应用程序独立进行管理
-
web服务:/var/log/httpd/
- access_log、error_log
-
代理服务:/var/log/squid/
- access.log、cache.log
-
FTP服务; /var/log/xferlog
分析工具
- 文本查看、grep过滤检索、Webmin管理套件查看
- awk、sed等文本过滤、格式化编辑工具
- webalizer、awstats等专用日志分析工具
日志并不是完全可靠的,高明的黑客在入侵系统后,经常会打扫现场
***日志异地备份
日志管理此策略/搭建日志服务器
- 及时做好备份和归档
- 延长日志保存期限
- 控制日志访问权限
- 日志中可能会包含各类敏感信息,如账户、口令等
- 集中管理日志
- 将服务器的日志文件发到统一的日志文件服务器
- 便于日志信息的统一收集、整理和分析
- 杜绝日志信息的意外丢失、恶意篡改或删除
系统启动类故障排除
MBR扇区故障
故障原因
- 病毒、木马等造成的破坏
- 不正确的分区操作、磁盘读写等误操作
故障现象
- 找不到硬盘,启动中断
- 无法加载操作系统,开机后黑屏
解决思路
- 应提前做好“异地”备份文件
- 以centos7安装光盘引导进入急救模式
- 从备份文件中恢复
示例
1.模拟MBR扇区故障
关机添加新磁盘 //存放MBR备份数据
fdisk /dev/sdb //新磁盘分区
mkfs -t xfs /dev/sdb1 //格式化新磁盘
mkdir /backup
mount /dev/sdb1 /backup/ //挂载到目录
dd if=/dev/sda of=/backup/sda.mbr bs=512 count=1 //备份mbr到其他目录
dd if=/dev/zero of=/dev/sda bs=512 count=1 //模拟mbr文件故障
operating system not found...
单用户模式:基于现有系统的系统文件,类似windows安全模式
急救模式:基于光盘镜像文件,windows 安全模式
使用光盘进入急救模式,
#mkdir /123
#mount /dev/sdb1 /123
#dd if=/123/sda.mbr of=/dev/sda
#reboot
GRUB引导故障
故障原因
- MBR中的GRUB引导程序遭到破坏
- grub.conf文件丢失、引导配置有误
故障现象
- 系统引导停滞,显示“grub>”提示符
解决思路
- 尝试手动输入引导命令
- 进入急救模式,重写或者从备份中恢复grub.conf
- 向MBR扇区中重建grub程序
示例
2.GRUB引导故障
cd /boot/grub2/
mv grub.cfg grub.cfg.back
cd /boot/grub/ //centos 6为该命令
mv grub.conf grub.conf.back //centos 6为该命令
reboot
重启后出现grub> 说明grub引导文件损坏
重启进入bios 调整光驱为第一启动项,进入第三行进行急救模式
#chroot /mnt/sysimage (切换根)
此时所处的位置并不是磁盘上的根,真正的根位于/mnt/sysimage下
#cd /boot/grub2
#cp grub.cfg.back grub.cfg
#grub2-install /dev/sda //安装grub引导文件到sda中
#exit
#关机。调整bios为硬盘启动,成功启动系统
#cd /boot/grub //centos 6为该命令
#cp grub.conf.back grub.conf //centos 6为该命令
#grub-install /dev/sda //CentOS 6为该命令
遗忘root用户的密码
故障原因
遗忘root账户密码
故障现象
无法进行需要root权限的管理操作
若没有其他账户,进不了系统
解决思路
进入单用户,重设密码
方法
方法1:单用户模式:
开机读秒时选择第一行按"e"
在linux16这一行,将之前的"ro",改为"rw init=sysroot/bin/sh",然后按ctrl+x、
输入:chroot /sysroot
输入:passwd root //输入新密码
exit
reboot //重启系统即可输入新密码登录
方法2:
通过光盘进入急救模式
输入:chroot /mnt/sysimage
passwd root //修改密码后重启即可
#exit
#reboot
文件系统类故障排除
修复文件系统
故障原因
非正常关机、突然断电、设备读写失误等
文件系统的超级块信息被破坏
故障现象
无法向分区中读取或写入数据
启动后提示“Give root password for maintenance”
解决思路
根据提示输入root口令,进入修复状态
使用xfs_repair命令进行修复
磁盘资源耗尽故障
故障原因
磁盘空间已被大量的数据占满,空间耗尽
虽然还有可用空间,但文件数i节点耗尽
故障现象
无法写入新的文件,提示“…:设备上没有空间”
部分程序无
法运行,甚至系统无法启动
解决思路
- 清理磁盘空间,删除无用、冗余的文件
- 转移或删除占用大量 i 节点的琐碎文件
- 进入急救模式进行修复
- 为用户设置磁盘配额
检测硬盘坏道
故障原因
磁盘设备中存在坏道(逻辑或者物理的)
逻辑坏道 主要由于软件操作不当造成 可以用软件修复
物理坏道 只能通过更改磁盘分区或扇区的占用位置来进行改善 排除掉包含有坏道的磁盘空间
故障现象
读取磁盘中的数据时,磁盘设备发出异常声响
访问磁盘中的某个文件时,反复读取且出错,提示文件损坏
对于新建的分区无法完成格式化
系统使用该磁盘时频繁死机
解决思路
检测硬盘是否存在坏道
修复硬盘,或者更换新的硬盘
检测磁盘坏道情况:
badblocks -sv /dev/sdb