运维工作中的事件、故障排查处理思路
一、运维工作中的事件
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操作系统为例
- Red Hat Customer Portal - Access to 24x7 support and knowledge 受限
- 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 Games7 Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)8 System administration commands (usually only for root)9 Kernel routines [Non standard]
五)举例一:硬件故障排查
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元数据故障

八)举例四:网络性能分析
1、网络性能分析项
- 主机侧
- 网络配置查看
- 监控
- 网络链路
- 包转发时延
- 吞吐量
- 带宽
- 等指标
2、性能分析工具
-
ping:测试网络连通性
-
ifconfig:接口配置
-
ip:网络接口统计信息
-
netsat:多种网络栈和接口统计信息
-
ifstat:接口网络流量监控工具
-
netcat (nc):快速构建网络连接
-
tcpdump:抓包工具
- Wireshark:网络封包分析工具
-
sar:统计信息历史
-
traceroute:测试网络路由
-
pathchar:确定网络路径特征
- trace:跟踪进程执行时的系统调用和所接收的信号 linux trace命令详解-CSDN博客
-
dtrace:TCP/IP 栈跟踪
-
iperf / netperf / netserver:网络性能测试工具
-
perf 性能分析神器
详见:Linux中如何进行网络性能分析 - 系统运维 - 亿速云
九)举例五:应用debug的方法
1、shell
bash -x 断点
2、python
pdb
3、Java
Jvm heap dump Thread dump
4、C/C++
操作系统的核心
gdb
十)举例六:操作系统崩溃分析
1、kexec vs kdump
- kexec是一种热启动机制,能够跳过耗时较长的BIOS启动阶段,直接启动新的内核,这个新的内核叫capture kernel
- kdump是利用了kexec的特性,通过在内存预留区域放置了capture kernel的image,在特定条件下触发启动capture kerne,并把crash的诶村镜像抽取保存
- 不是所有的crash都触发kdump,需要在内核执行路径上执行panic()
2、kdump配置
- grub.cfg中指明内存预留空间
- “crashkernel=xxM”:让crashkernel运行起来(机器越大,硬件(外设)越多,使用的内存越多,建议值256/512M)
- “crashkernel=auto”:虚拟机设置设置此值没问题
- 指定dump文件的存放位置,默认在/var/crash,支持nfs,ssh或外部存储
- dump文件并非把整个内存都收集,而是必须必要数据,剔除多余数据,并运行适当压缩
3、kdump测试
利用kernel的sysrq特性产生kernel dump
- 配置:sysctl.conf 中 kernel.sysrq=1
- 测试方法:
- echo c > /proc/sysrq-trigger #机器立即宕机(c是crash)
-
- 键盘可操作:Alt+prtsc+c
- 硬件bmc触发dump(硬件厂商:硬件安装bmc的驱动程序)
4、kdump触发事件
什么情况下会触发kdump?
sysctl -a|grep panic
- oom:内存溢出,将机器干掉
- Hung process:进程120s hang住
- Nmi:硬件不可信(不可屏蔽故障)
- Soft lookup:死锁的环境
- other oops
相关文章:
运维工作中的事件、故障排查处理思路
一、运维工作中的事件 https://www.51cto.com/article/687753.html 二、运维故障排查 一)故障排查步骤 1、明确故障 故障现象的直接表现故障发生的时间、频率故障发生影响哪些系统故障发生是否有明确的触发条件 故障举例:无法通过ssh登录系统 影响…...
深入源码P3C-PMD:使用流程(1)
PMD开源组件启动流程介绍 在软件开发领域,代码质量是项目成功的关键因素之一。为了提升代码质量,开发者们常常借助各种工具进行代码分析和检查。PMD作为一款开源的静态代码分析工具,在Java、JavaScript、PLSQL等语言项目中得到了广泛应用。本…...
java~反射
反射 使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件(字节码) 原理图 加载完类后,在堆中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对…...
【Linux】(26) 详解磁盘与文件系统:从物理结构到inode机制
目录 1.认识磁盘、 1.1 理论 1.2 磁盘的物理结构 CHS 寻址 1.3 磁盘的逻辑抽象结构 2. inode 结构 1.Boot Block 启动块 2.Super Block(超级块) 3.Group Descriptor Block(块组描述符) 4.Data Blocks (数据块) 5.Inode…...
8.1 字符串中等 43 Multiply Strings 38 Count and Say
43 Multiply Strings【默写】 那个难点我就没想先解决,原本想法是先想其他思路,但也没想出。本来只想chat一下使用longlong数据类型直接stoi()得不得行,然后就看到了答案,直接一个默写的大动作。但这道题确实考察的是还原乘法&…...
upload-labs靶场:1—10通关教程
目录 Pass-01(JS 验证) Pass-02(MIME) Pass-03(黑名单绕过) Pass-04(.htaccess 绕过) Pass-05(大小写绕过) Pass-06(空格绕过) …...
Hive3:一键启动、停止、查看Hive的metastore和hiveserver2两个服务的脚本(好用)
脚本内容 #!/bin/bash # 一键启动、停止、查看Hive的metastore和hiveserver2两个服务的脚本 function start_metastore {# 启动Hive metastore服务hive --service metastore >/dev/null 2>&1 &for i in {1..30}; doif is_metastore_running; thenecho "Hiv…...
遗传算法与深度学习实战——生命模拟及其应用
遗传算法与深度学习实战——生命模拟及其应用 0. 前言1. 康威生命游戏1.1 康威生命游戏的规则1.2 实现康威生命游戏1.3 空间生命和智能体模拟 2. 实现生命模拟3. 生命模拟应用小结系列链接 0. 前言 生命模拟是进化计算的一个特定子集,模拟了自然界中所观察到的自然…...
大数据|使用Apache Spark 删除指定表中的指定分区数据
文章目录 概述方法 1: 使用 Spark SQL 语句方法 2: 使用 DataFrame API方法 3: 使用 Hadoop 文件系统 API方法 4: 使用 Delta Lake使用注意事项常见相关问题及处理结论 概述 Apache Spark 是一个强大的分布式数据处理引擎,支持多种数据处理模式。在处理大型数据集时…...
OSPF动态路由协议实验
首先地址划分 一个骨干网段分成三个,r1,r2,r5三个环回网段 ,总共要四个网段 192.168.1.0/24 192.168.1.0/26---骨干网段 192.168.1.0/28 192.168.1.16/28 192.168.1.32/28 备用 192.168.1.64/28 192.168.1.64/26---r1环回 192.1…...
tcp中accept()的理解
源码 参数理解 NAMEaccept, accept4 - accept a connection on a socketSYNOPSIS#include <sys/types.h> /* See NOTES */#include <sys/socket.h>int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);#define _GNU_SOURCE …...
让我们逐行重现 GPT-2:第 1 部分
欢迎来到雲闪世界。Andrej Karpathy 是人工智能 (AI) 领域的顶尖研究人员之一。他是 OpenAI 的创始成员之一,曾领导特斯拉的 AI 部门,目前仍处于 AI 社区的前沿。 在第一部分中,我们重点介绍如何实现 GPT-2 的架构。虽然 GPT-2 于 2018 年由 …...
第十九天内容
上午 1、构建vue发行版本 2、java环境配置 jdk软件包路径: https://download.oracle.com/java/22/latest/jdk-22_linux-x64_bin.tar.gz 下午 1、安装tomcat软件 tomcat软件包路径: https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.26/bin/apache-to…...
Hive之扩展函数(UDF)
Hive之扩展函数(UDF) 1、概念讲解 当所提供的函数无法解决遇到的问题时,我们通常会进行自定义函数,即:扩展函数。Hive的扩展函数可分为三种:UDF,UDTF,UDAF。 UDF:一进一出 UDTF:一进多出 UDAF:…...
jdk1.8中HashMap为什么不直接用红黑树
最开始使用链表的时候,空间占用比较少,而且由于链表短,所以查询时间也没有太大的问题。可是当链表越来越长,需要用红黑树的形式来保证查询的效率。 参考资料: https://blog.51cto.com/u_13294304/3075723...
消息推送只会用websocket、轮询?试试SSE,轻松高效。
SSE介绍 HTTP Server-Sent Events (SSE) 是一种基于 HTTP 的服务器推送技术,它允许服务器向客户端推送数据,而无需客户端发起请求。以下是 HTTP SSE 的主要特点: 单向通信: SSE 是一种单向通信协议,服务器可以主动向客户端推送数据,而客户端只能被动接收数据。 持久连接: SS…...
Spring-Retry 框架实战经典重试场景
Spring-Retry框架是Spring自带的功能,具备间隔重试、包含异常、排除异常、控制重试频率等特点,是项目开发中很实用的一种框架。 1、引入依赖 坑点:需要引入AOP,否则会抛异常。 xml <!-- Spring-Retry --> <dependency&…...
人工智能在医疗领域的应用与挑战
随着人工智能技术的不断发展,其在医疗领域的应用也越来越广泛。从辅助诊断到治疗决策,人工智能正在逐步改变着传统的医疗模式。然而,人工智能在医疗领域的应用也面临着诸多挑战,如数据隐私、伦理道德等问题。本文将探讨人工智能在…...
Windows下nmap命令及Zenmap工具的使用方法
一、Nmap简介 nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评…...
深入了解-什么是CUDA编程模型
CUDA(Compute Unified Device Architecture,统一计算架构)是NVIDIA推出的一种面向GPU的并行计算平台和编程模型。它允许开发者利用NVIDIA的GPU进行通用目的的并行计算,从而加速应用程序的运行速度。CUDA编程模型为开发者提供了强大…...
在 Java 并发编程和高性能数据处理中,HashMap 和 ConcurrentHashMap 是两大核心容器。它们在 JDK 8+ 中的演进(链表转红黑树、锁机制优化)直接解决了特定业务场景下的性
在 Java 并发编程和高性能数据处理中,HashMap 和 ConcurrentHashMap 是两大核心容器。它们在 JDK 8 中的演进(链表转红黑树、锁机制优化)直接解决了特定业务场景下的性能瓶颈。 以下结合具体业务场景,深度解析它们的内部机制及设计…...
电动汽车工程师视角:碳化硅模块在电驱系统中的应用实战(含热管理设计)
碳化硅功率模块在电动汽车电驱系统中的工程实践 当一辆搭载碳化硅逆变器的电动汽车从静止加速到100km/h时,功率模块内部的温度变化可能超过100℃。这种极端工况正是第三代半导体材料大显身手的舞台。作为参与过多个量产项目的电驱系统工程师,我想分享一些…...
Windows 内网 Web 服务穿透方案推荐
Windows 内网 Web 服务穿透方案推荐 面向场景:内网机器为 Windows,需从公网或外网访问内网 HTTP/HTTPS Web 服务;优先选择相对不易被误报、来源清晰、可审计的方案。 关于「报毒」的说明 穿透类软件常被启发式引擎标为「风险/可疑」…...
CGAL-6.0.1在Win11与VS2019环境下的高效编译与配置指南
1. 环境准备:搭建Win11VS2019开发环境 在开始编译CGAL-6.0.1之前,我们需要确保开发环境配置正确。我实测发现,Win11系统与VS2019的组合存在一些特殊配置需求,这里分享几个关键检查点: 首先确认VS2019的安装组件。打开V…...
Harness Engineering:Agent 时代,工程师的新战场
关注 AI 的同学大概率对这两个词已经不陌生了:提示词工程(Prompt Engineering)和上下文工程(Context Engineering)。前者教你怎么跟模型说话,后者教你往模型的上下文窗口里塞什么内容。但从 2026 年初开始&…...
医疗文本处理实战:用jieba分词器搞定妇科专业术语分词(附完整词典配置)
医疗文本处理实战:用jieba分词器精准解析妇科专业术语 在医疗信息化和自然语言处理领域,专业术语的准确识别一直是技术难点。特别是妇科临床文本中,"妇科凝胶"、"宫颈刮片"等复合型专业词汇的切割问题,直接影…...
Python制作简易PDF查看工具——PDFViewerV1.0
PDFViewer PDF浏览工具,是使用Python语言(使用PyQt5开发界面,PDF解析使用PyMuPDF开源模块)开发的PDF查看工具,已经实现基本翻页浏览、OCR文字识别(基于开源主流文字识别模型实现)、内容查找高亮…...
立知-lychee-rerank-mm效果展示:汽车配置单与实拍图一致性验证
立知-lychee-rerank-mm效果展示:汽车配置单与实拍图一致性验证 1. 引言:多模态重排序的实用价值 在日常工作和生活中,我们经常遇到这样的场景:看到一份产品配置单,但不确定实际产品是否真的符合描述;或者…...
从‘距离’理解生成对抗:Wasserstein距离如何拯救你的GAN项目?通俗图解+代码验证
从Wasserstein距离到实战:如何用数学直觉拯救你的GAN训练? 想象你正在训练一个生成对抗网络(GAN),却发现生成器要么完全崩溃,要么反复输出几乎相同的图像——这就是典型的模式坍塌(Mode Collaps…...
三相不平衡电压下H桥五电平并网逆变器并网控制探究
三相不平衡电压下级连H桥五电平并网逆变器并网控制,SPWM调制,正负序分离控制 1.采用正负序分离锁相环以及正序PI控制,负序PI控制 2.采用中点电位平衡控制-零序电压注入法 3.提供参考文献 提供仿真源文件,电流环参数设计࿰…...


