系统故障汇总

物理服务器侧

ntp同步异常

# 服务器端、客户端放行规则
iptables -A INPUT -p udp --dport 123 -j ACCEPT
iptables -A OUTPUT -p udp --sport 123 -j ACCEPT
service iptables save
service iptables restart

# 设置物理服务器硬件时钟
hwclock --show
# 正确时间
date -s "2025-02-26 11:00:00"
hwclock --systohc

查看启动过程

# 操作启动后
dmesg

# 操作启动中
vim /etc/default/grub
# 改成""或"debug"
GRUB_CMDLINE_LINUX_DEFAULT=

update-grub
reboot

虚拟化平台侧

VM无法开关机

esxi主机上的某一台虚拟机频繁出现开关机故障,其他选项为不可操作的灰色,每次解决需要重启物理服务器。

处理

# ssh远程登录esxi
# 查看进程占用文件的world-id
esxcli vm process list
# 终止进程
esxcli vm process kill --type=hard --world-id=xxxx

#或者

#显示pid、父进程、服务
ps | grep vmx
kill -9 pid/父进程

进入对应datastore执行lsof xx.vmdk,发现磁盘文件依旧被占用,同时发现vmx.lck文件,使用rm -rf尝试删除该文件,提示:file or resource busy,其他几个文件.vmx、.vmx.lck、.vmdk也不可访问,同时存在大量vmware.log。于是先删除日志文件,再删vmx.lck,正常开机。

[root@localhost:/vmfs/volumes/5fb38966-95ddf6d8-0cd5-b8ca3af07740/x.x.x.249_appserver] ls
x.x.x.249_appserver-0b4786b5.hlog  x.x.x.249_appserver.vmx.lck        vmware-1.log
x.x.x.249_appserver-ctk.vmdk       x.x.x.249_appserver.vmxf           vmware-2.log
x.x.x.249_appserver-flat.vmdk      x.x.x.249_appserver.vmx~           vmware-3.log
x.x.x.249_appserver.nvram          x.x.x.249_appserver_1-ctk.vmdk     vmware-4.log
x.x.x.249_appserver.vmdk           x.x.x.249_appserver_1-flat.vmdk    vmware-5.log
x.x.x.249_appserver.vmsd           x.x.x.249_appserver_1.vmdk         vmware.log
x.x.x.249_appserver.vmx            vmware-0.log
[root@localhost:/vmfs/volumes/5fb38966-95ddf6d8-0cd5-b8ca3af07740/x.x.x.249_appserver] rm vmware-0.log vmware-1.log vmware-2.log vmware-3.log vmware-4.log vmware-5.log
[root@localhost:/vmfs/volumes/5fb38966-95ddf6d8-0cd5-b8ca3af07740/x.x.x.249_appserver] rm vmware.log
[root@localhost:/vmfs/volumes/5fb38966-95ddf6d8-0cd5-b8ca3af07740/x.x.x.249_appserver] ls
x.x.x.249_appserver-0b4786b5.hlog  x.x.x.249_appserver.vmsd           x.x.x.249_appserver_1-ctk.vmdk
x.x.x.249_appserver-ctk.vmdk       x.x.x.249_appserver.vmx            x.x.x.249_appserver_1-flat.vmdk
x.x.x.249_appserver-flat.vmdk      x.x.x.249_appserver.vmx.lck        x.x.x.249_appserver_1.vmdk
x.x.x.249_appserver.nvram          x.x.x.249_appserver.vmxf
x.x.x.249_appserver.vmdk           x.x.x.249_appserver.vmx~
[root@localhost:/vmfs/volumes/5fb38966-95ddf6d8-0cd5-b8ca3af07740/x.x.x.249_appserver] rm x.x.x.249_appserver.vmx.lck
[root@localhost:/vmfs/volumes/5fb38966-95ddf6d8-0cd5-b8ca3af07740/x.x.x.249_appserver] ls
x.x.x.249_appserver-0b4786b5.hlog  x.x.x.249_appserver.vmdk           x.x.x.249_appserver.vmx~
x.x.x.249_appserver-ctk.vmdk       x.x.x.249_appserver.vmsd           x.x.x.249_appserver_1-ctk.vmdk
x.x.x.249_appserver-flat.vmdk      x.x.x.249_appserver.vmx            x.x.x.249_appserver_1-flat.vmdk
x.x.x.249_appserver.nvram          x.x.x.249_appserver.vmxf           x.x.x.249_appserver_1.vmdk
[root@localhost:/vmfs/volumes/5fb38966-95ddf6d8-0cd5-b8ca3af07740/x.x.x.249_appserver]

解释

磁盘锁文件。因为.vmdk虚拟磁盘文件有一个保护机制。为了防止多台虚拟机同时访问一个.vmdk虚拟磁盘文件带来的数据丢失和性能下降。每次启动虚拟机时通过.vmx.lck的磁盘锁文件对.vmdk虚拟磁盘文件进行锁定保护。当虚拟机正常关闭,.vmx.lck磁盘锁文件自动删除。

VM侧

修复suse操作系统

由于安全渗透扫描,导致存储故障,等待其恢复后,发现suse操作系统异常,包括但不限于network、zyppear在内的基础命令不可用,提示:xxx service failed when loaded shared lib . error ibgobject.so.2.0:no such file or directory.

处理

版本:suse linux enterprise desktop 10,下载suse linux enterprise server 12的iso镜像,通过第一启动项引导,按照如下方式直接升级解决。

在这里插入图片描述
在这里插入图片描述### 补充-zypper源

zypper addrepo -f http://mirrors.aliyun.com/opensuse/distribution/openSUSE-stable/repo/oss/ openSUSE-openSUSE-stable-Oss
zypper addrepo -f http://mirrors.aliyun.com/opensuse/distribution/openSUSE-stable/repo/non-oss/ openSUSE-openSUSE-stable-Non-Oss
zypper addrepo -f http://mirrors.aliyun.com/opensuse/update/openSUSE-stable/ openSUSE-openSUSE-stable-Update-Oss
zypper addrepo -f http://mirrors.aliyun.com/opensuse/update/openSUSE-stable-non-oss/ openSUSE-openSUSE-stable-Update-Non-Oss

windows server频繁断网

win2012r2虚拟机频繁发生网络中断,登录系统内部排查,无法ping通网关、同网段地址。由于该虚拟机是win2008迭代升级而来的,先前网卡类型是E1000,win2012开始不支持该类型。

处理

新增网卡类型VMXNET 3,删除旧网卡类型E1000。(热更换需要提前安装vmwaretools)
在这里插入图片描述

文件系统实际使用率与监控数值差距大

监控系统上报文件系统占用率96%,登录节点后,执行:
1、df -lh查看只有17%;
2、对同一个目录分别使用df -h、du -xh,一个显示80G,一个显示29G;
3、lsof |grep deleted卡顿,长时间没有回显。

处理

# 统计根目录磁盘使用情况
# -x:只统计与指定目录在同一文件系统内的磁盘使用量。这意味着如果有其他文件系统挂载在某个子目录中,du 不会递归进入并计算那个子目录中的磁盘使用情况;
# -c:最后显示total;
du -xch /

# 输出当前所有打开文件以及相关信息,查找包含deleted的行,显示文件路径
lsof | awk ‘/deleted/ {print $9}# 查找虚拟文件系统/proc下所有进程的文件描述符;
# 查找以deleted结尾的符号链接;
# 忽略标准错误输出;
find /proc/*/fd -lname '*(deleted)' 2>/dev/null

# 杀进程
kill -9 进程号

VM内存逐日增长直至100%

经监控按日期统计,运行多站点备份的节点,每经过24小时,内存使用率增长2.7%~3.3%,直至100%。前几次采取重启,目前要细化监控,抓取证据反馈。

处理

#!/bin/bash

# 输出目录
OUTPUT_DIR="/var/log/sys_monitor"
mkdir -p "$OUTPUT_DIR"

# 时间戳
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")

# 输出文件
OUTPUT_FILE="$OUTPUT_DIR/sys_monitor_$TIMESTAMP.log"

# 获取进程信息
echo "=== 进程信息 ===" > $OUTPUT_FILE
ps -eo comm | sort | uniq -c | sort -nr >> $OUTPUT_FILE

# 获取 CPU 使用情况
echo -e "\n=== CPU负载 ===" >> $OUTPUT_FILE
mpstat 1 1 | tail -n 2 >> $OUTPUT_FILE

# 获取内存和 Swap 使用情况
echo -e "\n=== 内存与交换空间使用情况 ===" >> $OUTPUT_FILE
free -h >> $OUTPUT_FILE

# 获取 I/O 情况
echo -e "\n=== IO统计 ===" >> $OUTPUT_FILE
iostat -x 1 2 | tail -n +4 >> $OUTPUT_FILE

# 获取网卡吞吐量
echo -e "\n=== 网络流量 ===" >> $OUTPUT_FILE
sar -n DEV 1 1 | grep -E "Average|eth|enp|ens" >> $OUTPUT_FILE


echo "已保存至$OUTPUT_FILE"

普通用户切换root失败

在普通账户boco下,使用su - root并输入正确密码,无法切换,提示“su: Authentication failure”。

处理

# 查看是否存在
grep "boco" /etc/passwd 
grep "boco" /etc/shadow

# 查看是否在wheel组
groups boco

# 限制非wheel组用户使用su
cat /etc/pam.d/su
# 可注释
# 不注释就将用户添加到wheel组:usermod -aG wheel boco
auth required pam_wheel.so use_uid

# 权限
ls -l /bin/su
# 发现权限不对:-rwxr-xr-x
# 所属组不对:boco boco

# 改成-rwsr-xr-x和root root
chmod u+s /bin/su
chmod root:root /bin/su

# su - root成功切换

普通用户无法登录

使用ps -ef查看进程4000以上。

处理

# 查看该用户下的进程数限制nproc,可以适当增加资源;
ulimit -a
vim   /etc/security/limits.conf
账户 soft nproc 8192
账户 hard nproc 16384


# 批量终止xw5用户进程脚本:

#!/bin/bash

# 获取xw5用户的所有进程ID
pids=$(pgrep -u xw5)


for pid in $pids; do
    
	# 进程的使用文件
    files=$(lsof -p $pid 2>/dev/null | awk '{print $9}' | grep -v '^$')

    # 进程名称
    proc_name=$(ps -p $pid -o comm=)

    # 输出进程信息
    echo "进程名称: $proc_name"
    echo "进程ID: $pid"
    echo "进程使用文件:"
    echo "$files"


    # 杀死进程,已注释
    # kill -9 $pid
done

开机grub>修复

处理结果。
在这里插入图片描述

# 根分区所在的硬盘分区
set root=(hd0,msdos3)
# 查找vmlinuz、盘符,比如:
# linux /vmlinuz-{uname -r} root=/dev/mapper/bel-root ro
# linux /boot/vmlinuz-5{uname -r} root=/dev/sda3 ro

# 查找initramfs镜像,比如:
# initrd /initramfs-{uname -r}.img
# initrd /boot/initramfs-{uname -r}.img
boot

网络抓包分析

# 手动抓取60秒
timeout 60 tcpdump -i eth1 -nn -vv -w /tmp/result.pcap
tcpdump -nn -vv -r /tmp/result.pcap >> /tmp/result.txt
# 查看带宽
nload -m -uh eth1
#!/bin/bash
# 脚本抓取,60秒1个文件
timestamp=$(date +"%Y%m%d_%H%M%S")
tcpdump -i any port 1972 -w /root/td_$timestamp.pcap -G 60 -W 1

io统计

后台运行io统计,并添加时间戳

# 仅显示磁盘,速度为MB/s,扩展性能指标;
# print strftime("%Y-%m-%d %H:%M:%S"), $0:在每行内容前在,添加格式化的时间戳;
# fflush():强制刷新输出缓冲区,立即输出;
iostat -dmx 60 /dev/vdb | awk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0; fflush(); }' >> iostat_output.log &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值