天天看点

运维工作中的事件、故障排查处理思路

一、运维工作中的事件

  ​​https://www.51cto.com/article/687753.html​​

二、运维故障排查

  一)故障排查步骤

  

运维工作中的事件、故障排查处理思路

  1、明确故障

  • 故障现象的直接表现
  • 故障发生的时间、频率
  • 故障发生影响哪些系统
  • 故障发生是否有明确的触发条件
   故障举例:无法通过ssh登录系统

  影响因素

  • ssh(用户态应用)登录不到服务器用户态也会报一些信息
  • 网络软件和硬件
  • 操作系统:CPU、内存、磁盘IO等

  2、信息收集

  • 故障发生前后所有与之直接相关的信息,包括但不限于配置、日志、屏显
  • 故障发生前后与之间相关的子模块的信息
  • 尽量区分信息的重要程度,以免信息过载造成对故障产生负面作用
  重要日志项
  • /var/log/messages ---- 多数的系统日志和内核日志
  • /var/log/secure ---- 安全相关日志,如sshd,login,pam
  • /var/log/dmesg ---- 内核日志
  • /var/log/boot.log ---- 启动屏显
  • /var/log/cron ---- 计划任务日志
  • /var/log/btmp ---- last 日志
  • /var/log/sa/ ---- sar 历史性能能日志
  • 应用层日志

  红帽操作系统特有的

#安装sos软件包
yum install sos

#运行sosreport --batch
#全面的系统信息tar包位置
 rhel6:/tmp/sosreport-*
 rhel7:/var/tmp/sosreport-*      

  3、提出假设和推断

  • 基于对系统的深刻理解,对信息的综合分析,结合症状提出合理的、具体的假设
  • 分解排除
  • 分层模型,自下而上
  • 模快化
  • 发散思维
  • 对比

  4、验证假设

  • 一次验证只考虑一种故障因素的组合
  • 记录验证结果,可能产生新的线索
  • 反复验证所有可能的因素组合

  二)故障解决

  • 故障归档:
  • 故障现象
  • 故障环境
  • 根本原因
  • 解决办法等
  • 改进方法:避免再发生

  三)故障排查需要的能力

  • 对系统和架构的深入理解
  • 善用工具
  • 严密的逻辑思维
  • 对信息的筛选
  • 发散思维
  • 运气

  四)寻求帮助

  1、以RedHat操作系统为例

  • ​​https://access.redhat.com/​​ 受限
  • 800远程支持:电话交流或提交case,附带sosreport
  • GPS红帽服务和咨询团队
  • Google查询解决办法(有辨别度)

  man命令介绍

# 安装man包
yum install man-pages

# man man
# man -k <关键字>

# man文档类型
       1   Executable programs or shell commands 可执行工具的使用文档
       2   System calls (functions provided by the kernel)  系统调用接口文档
       3   Library calls (functions within program libraries) libc接口文档
       4   Special files (usually found in /dev) 特殊文件说明文档
       5   File formats and conventions, e.g. /etc/passwd 配置文件格式说明
       6   Games
       7   Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)
       8   System administration commands (usually only for root)
       9      

  五)举例一:硬件故障排查

  1、硬件故障现象举例

  • 磁盘掉盘或者大量IO error
  • 网卡灯不亮,或网卡丢包严重影响到应用层面
  • 硬件日志报警

  2、识别硬件

读取bios信息
dmidecode

    识别CPU
lscpu
/proc/cpuinfo

    识别内存
dmidecode -t memory
free
/proc/meminfo

    识别pci设备
lspci

    识别scsi设备
lsscsi

    识别block设备
lsblk      

  3、驱动程序

列出所有加载模块
lsmod

    查看模块信息
modinfo

    模块加载/卸载
modprobe

    模块日志
dmesg      

  4、排查手段

  • 排查硬件日志,硬件状态,检查bios信息
  • RAS(reliablity(可靠性)、availability(可用性)、serviceability(安全性))特性
  • 需要硬件厂商支持,硬件和驱动
  • rasdaemon(rhel7/8)
  • 日志输出到/var/log/messages
  • 检查/var/log/messages和dmesg
  • 检查驱动
  • 硬件厂商提供的驱动
  • 操作系统kernel中提供的驱动

  5、常见硬件故障的日志形态

  • HBA卡链路故障
  • 日志样例如图:
  • 运维工作中的事件、故障排查处理思路
  • 磁盘IO故障
  • 日志样例如图:
  • 运维工作中的事件、故障排查处理思路
  • MCE故障
  • 日志样例如图:
  • 运维工作中的事件、故障排查处理思路

  六)举例二:启动故障排查

  1、启动故障举例(清楚系统启动的细节(顺序))

  • 找不到启动盘
  • 在grub菜单过后 kernel panic
  • 文件系统挂载失败
  • 服务启动阶段长时间卡住

  2、启动流程

  • BIOS POST开机自检
  • BIOS扫描启动盘(直通、阵列卡、网卡、光纤卡、CD)
  • 感知到MBR( 主引导记录(MBR,Master Boot Record)),以及bootable分区
  • stage 1(MBR) > stage 1.5(boot文件系统驱动) > stage 2 (grub boot loader启动读取grub.conf)
  • 载入vmlinuz和initramfs
  • 载入硬件驱动,初始化磁盘,lvm和根文件系统
  • sysV/systemd启动管理器开始运行,挂载文件系统,初始化网络,继续进行服务启动

  3、排查手段

  • 单用户模式
  • 适合排查初始引导过后的sytemd启动阶段故障
  • 救援模式
  • 适合排查引导盘存储故障
  • rd.break模式
  • 适合排查初始化引导阶段故障
  • 云环境,将主机的系统盘挂载到其他云主机上,修改文件内容

  4、常见的启动故障的日志形态

  • 根盘LVM故障
  • 运维工作中的事件、故障排查处理思路
  • boot image故障
  • 运维工作中的事件、故障排查处理思路
  • fstab故障
  • 运维工作中的事件、故障排查处理思路

  七)举例三:文件系统故障

  1、文件系统故障

  • 文件系统满
  • 文件系统只读
  • 文件系统空间未释放
  • lsof | grep -i deleted
  • 若是误删的情况,可以通过cp /proc/$pid/fd/删除内容到指定目录下
  • 文件系统脏

  2、关于空间未释放问题

  • 文件的open与close
  • df vs du
  • 释放空间的小技巧
  • echo > /path/to/file
  • true > /path/to/file
  • 误删文件后恢复的小技巧
  • 文件仍被open状态,文件会保存到/proc/$pid/fd

  3、常见文件系统故障的日志形态

  xfs元数据故障

  

运维工作中的事件、故障排查处理思路