Linux系统故障排查(笔记)
2022-03-02 本文已影响0人
任总
-
以下内容仅当本人学习备忘之用,如有侵权,请联系删除。
故障排查步骤
for i in `rpm -qa`; do rpm -V $i &> /dev/null || echo $i; done
查询RPM版本信息,防止病毒修改
明确故障找到故障现象直接表现,基本上能找到故障问题。
故障举例:无法通过ssh登录系统?
ssh他是一个用户态的应用程序,来回的传送指令,同时它会用到网络、tcp连接、存储方面的,他自身还有一些认证机制。
查看它发生时间和频率,是不固定的发生,还是固定那个时间段发生,分析是不是业务使用高负载时间段,明确这个故障,源端、客户端有没有其他方法登录ssh。
信息收集
1.ssh -v查看客户端debug信息
2.采集信息分析,有没有可能高负载时候,ssh无法连接
重要日志项
rceslogd服务分拣和转发日志 ,/var/log/secure只存储着sshd服务端的信息,没有客户端日志。
/var/log/dmesg里面存储的是上次启动
sos软件包
sosreport --batch 自动输出的tar包,包含收集来的日志信息
收集的日志分类收集了有启动、块设备、内核、pci等等的相关日志。
以sos执行的命令,为文件名
这些是sosreport执行的命令,来搜集相关的日志信息。
使用各种方法,提出各自问题接近问题的原因。
验证假设
熟悉内部逻辑,开辟新的方向,验证可能的因素。
故障解决
故障排查需要的能力
寻求帮助
案例网站:https://access.redhat.com
man命令
man命令介绍main文档
查看系统调用类别 系统调用类别main文档
硬件故障
识别硬件命令模块程序查看
modprobe是加载和卸载内核模块,-r参数是卸载相关联的模块。
dmesg是从启动到当前,系统内核模块存储到缓冲buff内核日志。
排查手段
常见硬件故障的日志形态
启动故障的排查
启动故障举例启动流程
排查手段
进入单用户模式
红帽7进入单用户模式确认根目录可读写
进入救援模式
使用镜像启动救援模式,注意镜像版本不得小于当前系统版本
救援模式
修复挂载方式
选择3手动挂载根目录进行修复
挂载启动目录 重新生成initfs
常见启动故障的日志形态
查看启动时候根目录在哪,分别启动那些
查看启动时候lv
文件系统故障
文件系统故障EXT文件系统结构
XFS文件系统结构
文件系统常用工具
- /proc/mounts 查询文件变成只读
- tune2fs 查看超级块信息
- dumpe2efs 查看数据块信息
-
e2fsck 检查ext2、ext3、ext4等文件系统的正确性
fsck注意
文件系统只读
inode问题
空间未释放 -
利用空间未释放的问题,可以恢复误删除文件,先找到文件进程pid,然后在/proc/[pid]/fd/下找到文件,拷贝出来。
文件系统日志故障 -
注意:修复必须先umount
存储故障
vg内部记录
-
status正常时候有三个,有问题会提示
pv丢失,一般按照这个流程删除,否则会报错PV丢失
多路径软件
scsi debug日志等级收集调试,FFFFFF代表收集所有日志
数据操作,需要谨慎操作
常见的存储系统故障的日志形态 - 一个报错DID都是硬件故障
网络故障
网络故障举例网络的分层模型
网络不通使用的命令
BROADCACST支持广播、 MULTICAST支持多播、up代表协议开启、 LOWER_UP物理链路已开启
-
tcpdump参数 -i 指定网卡 -s 指定数据包 -w 抓包结果以二进制形式存储到文件 -r 解析抓包的文件内容 -nn以数字形式显示结果,尽量使用二进制方式抓包信息比较完整,使用wireshark查看二进制文件。
找出丢包点
网络延迟高判断
常见网络故障日志形态
应用故障
应用故障举例应用运行的环境
- 查询应用的依赖库是否缺失,应用的依赖库和系统的库发生冲突或者名称重复,需要隔离,解决是不同用户运行不通的应用和容器化,yum源尽量使用一个不能用不同版本。
- strace命令追踪使用https://www.cnblogs.com/machangwei-8/p/10388883.html
strace命令
应用debug方法
kdupmp
kdupmp配置,高配置的服务器不建议使用auto,512M适用大多场景
触发事件
kdump测试,soft lookup内核锁触发
panic开关配合开启
可以临时打开,重启后失效