一、系统日志分析:快速定位故障根源
系统日志是故障排查的“指南针”,CentOS通过journalctl和/var/log目录提供全面的日志记录。
journalctl -xe可查看近期关键错误(如服务崩溃、内核 panic),journalctl -u 服务名(如journalctl -u sshd)能过滤特定服务的日志,journalctl --since "2025-10-10 10:00"可限定时间范围查询。/var/log/messages记录系统通用信息(如内核、服务启动),/var/log/secure记录安全事件(如登录失败、sudo使用),/var/log/httpd/error_log(Apache)、/var/log/mysql/error.log(MySQL)记录应用层错误,通过grep "ERROR" /var/log/httpd/error_log可快速定位应用故障。二、网络连接故障:排查连通性与配置问题
网络问题是虚拟机最常见的故障之一,需逐步验证各环节:
ping 目标IP(如ping 8.8.8.8)检查网络是否可达,若超时报错,需排查物理主机网络(如网线、路由器)或虚拟机网络模式(NAT/桥接/Host-only)。ip addr查看网卡是否启用(state UP),IP地址、子网掩码、网关是否正确(如NAT模式下网关通常为虚拟网关,如192.168.122.1);用nslookup 域名或dig 域名检查DNS解析是否正常(如能解析到正确IP)。systemctl status firewalld查看防火墙是否开启,若开启需放行端口(如firewall-cmd --add-port=22/tcp --permanent后firewall-cmd --reload);用systemctl status sshd(或其他服务)确认服务是否运行,未运行则启动(systemctl start sshd)。三、系统资源监控:解决性能瓶颈
资源不足(CPU、内存、磁盘)会导致系统缓慢或服务崩溃,需用以下命令监控:
top(按1查看每个核心的使用率,按M按内存排序)或vmstat 1(查看CPU空闲率、进程等待队列),若CPU长期>80%,需优化进程或增加CPU资源。free -m查看内存总量、已用、剩余(available列表示可用内存),若剩余内存<100MB,需关闭不必要的进程(kill -9 PID)或增加内存。df -h查看各分区使用率(重点关注/根分区),若使用率>90%,需清理无用文件(如/var/log下的旧日志,用logrotate轮转)或扩容虚拟磁盘。iostat -x 1查看磁盘读写延迟(await,单位ms),若await>100ms,说明磁盘性能瓶颈(如虚拟磁盘类型为IDE,需改为VirtIO或SCSI)。四、启动故障:进入救援模式修复
若虚拟机无法启动,需通过以下步骤修复:
journalctl -b(-b表示本次启动)查看启动错误(如内核加载失败、服务启动失败),或查看/var/log/boot.log获取详细启动信息。e键编辑内核参数,找到linux16或linuxefi开头的行,将ro改为rw(读写模式),行末添加init=/bin/bash,按Ctrl+X启动;CentOS 6则在GRUB菜单选择内核后按e,在kernel行末添加single,按Ctrl+X进入单用户模式。rm -rf /var/log/*.gz(删除压缩的旧日志)释放空间;若为内核故障,用rpm -q kernel查看已安装内核,用grub2-set-default 0(设置默认启动内核)或grub2-mkconfig -o /boot/grub2/grub.cfg(重新生成GRUB配置)。五、虚拟机配置检查:排除环境问题
虚拟机本身的配置错误也会导致故障,需逐一验证:
.vmx(VMware)或.vbox(VirtualBox)文件,确认CPU、内存、网络适配器设置正确(如内存不为0,网络适配器未断开)。192.168.122.1)和DHCP设置(如IP范围192.168.122.100-200);若使用桥接模式,需选择正确的物理网卡(如宿主机使用的WiFi或以太网卡)。六、软件包与依赖修复:解决软件冲突
软件包损坏或依赖缺失会导致服务无法运行,需用以下命令修复:
yum clean all(清理本地缓存),yum makecache(重建缓存),解决YUM安装/更新错误。yum check(检查依赖问题),yum distro-sync(同步系统软件包版本),yum update(更新所有软件包到最新版本,修复已知bug)。yum reinstall 软件包名(如yum reinstall httpd)恢复,默认配置文件不会被覆盖(除非添加--overwrite参数)。