当前位置: 首页 > news >正文

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

一、运维工作中的事件

  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 二、运维故障排查 一&#xff09;故障排查步骤 1、明确故障 故障现象的直接表现故障发生的时间、频率故障发生影响哪些系统故障发生是否有明确的触发条件   故障举例&#xff1a;无法通过ssh登录系统 影响…...

深入源码P3C-PMD:使用流程(1)

PMD开源组件启动流程介绍 在软件开发领域&#xff0c;代码质量是项目成功的关键因素之一。为了提升代码质量&#xff0c;开发者们常常借助各种工具进行代码分析和检查。PMD作为一款开源的静态代码分析工具&#xff0c;在Java、JavaScript、PLSQL等语言项目中得到了广泛应用。本…...

java~反射

反射 使用的前提条件&#xff1a;必须先得到代表的字节码的Class&#xff0c;Class类用于表示.class文件&#xff08;字节码&#xff09; 原理图 加载完类后&#xff0c;在堆中就产生了一个Class类型的对象&#xff08;一个类只有一个Class对象&#xff09;&#xff0c;这个对…...

【Linux】(26) 详解磁盘与文件系统:从物理结构到inode机制

目录 1.认识磁盘、 1.1 理论 1.2 磁盘的物理结构 CHS 寻址 1.3 磁盘的逻辑抽象结构 2. inode 结构 1.Boot Block 启动块 2.Super Block&#xff08;超级块&#xff09; 3.Group Descriptor Block&#xff08;块组描述符&#xff09; 4.Data Blocks (数据块) 5.Inode…...

8.1 字符串中等 43 Multiply Strings 38 Count and Say

43 Multiply Strings【默写】 那个难点我就没想先解决&#xff0c;原本想法是先想其他思路&#xff0c;但也没想出。本来只想chat一下使用longlong数据类型直接stoi()得不得行&#xff0c;然后就看到了答案&#xff0c;直接一个默写的大动作。但这道题确实考察的是还原乘法&…...

upload-labs靶场:1—10通关教程

目录 Pass-01&#xff08;JS 验证&#xff09; Pass-02&#xff08;MIME&#xff09; Pass-03&#xff08;黑名单绕过&#xff09; Pass-04&#xff08;.htaccess 绕过&#xff09; Pass-05&#xff08;大小写绕过&#xff09; Pass-06&#xff08;空格绕过&#xff09; …...

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. 前言 生命模拟是进化计算的一个特定子集&#xff0c;模拟了自然界中所观察到的自然…...

大数据|使用Apache Spark 删除指定表中的指定分区数据

文章目录 概述方法 1: 使用 Spark SQL 语句方法 2: 使用 DataFrame API方法 3: 使用 Hadoop 文件系统 API方法 4: 使用 Delta Lake使用注意事项常见相关问题及处理结论 概述 Apache Spark 是一个强大的分布式数据处理引擎&#xff0c;支持多种数据处理模式。在处理大型数据集时…...

OSPF动态路由协议实验

首先地址划分 一个骨干网段分成三个&#xff0c;r1&#xff0c;r2&#xff0c;r5三个环回网段 &#xff0c;总共要四个网段 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 的创始成员之一&#xff0c;曾领导特斯拉的 AI 部门&#xff0c;目前仍处于 AI 社区的前沿。 在第一部分中&#xff0c;我们重点介绍如何实现 GPT-2 的架构。虽然 GPT-2 于 2018 年由 …...

第十九天内容

上午 1、构建vue发行版本 2、java环境配置 jdk软件包路径&#xff1a; https://download.oracle.com/java/22/latest/jdk-22_linux-x64_bin.tar.gz 下午 1、安装tomcat软件 tomcat软件包路径&#xff1a; https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.26/bin/apache-to…...

Hive之扩展函数(UDF)

Hive之扩展函数(UDF) 1、概念讲解 当所提供的函数无法解决遇到的问题时&#xff0c;我们通常会进行自定义函数&#xff0c;即&#xff1a;扩展函数。Hive的扩展函数可分为三种&#xff1a;UDF,UDTF,UDAF。 UDF&#xff1a;一进一出 UDTF&#xff1a;一进多出 UDAF&#xff1a…...

jdk1.8中HashMap为什么不直接用红黑树

最开始使用链表的时候&#xff0c;空间占用比较少&#xff0c;而且由于链表短&#xff0c;所以查询时间也没有太大的问题。可是当链表越来越长&#xff0c;需要用红黑树的形式来保证查询的效率。 参考资料&#xff1a; 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自带的功能&#xff0c;具备间隔重试、包含异常、排除异常、控制重试频率等特点&#xff0c;是项目开发中很实用的一种框架。 1、引入依赖 坑点&#xff1a;需要引入AOP&#xff0c;否则会抛异常。 xml <!-- Spring-Retry --> <dependency&…...

人工智能在医疗领域的应用与挑战

随着人工智能技术的不断发展&#xff0c;其在医疗领域的应用也越来越广泛。从辅助诊断到治疗决策&#xff0c;人工智能正在逐步改变着传统的医疗模式。然而&#xff0c;人工智能在医疗领域的应用也面临着诸多挑战&#xff0c;如数据隐私、伦理道德等问题。本文将探讨人工智能在…...

Windows下nmap命令及Zenmap工具的使用方法

一、Nmap简介 nmap是一个网络连接端扫描软件&#xff0c;用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端&#xff0c;并且推断计算机运行哪个操作系统&#xff08;这是亦称 fingerprinting&#xff09;。它是网络管理员必用的软件之一&#xff0c;以及用以评…...

深入了解-什么是CUDA编程模型

CUDA&#xff08;Compute Unified Device Architecture&#xff0c;统一计算架构&#xff09;是NVIDIA推出的一种面向GPU的并行计算平台和编程模型。它允许开发者利用NVIDIA的GPU进行通用目的的并行计算&#xff0c;从而加速应用程序的运行速度。CUDA编程模型为开发者提供了强大…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接&#xff0c;私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP&#xff08;Interior Gateway Protocol&#xff0c;内部网关协议&#xff09; 是一种用于在一个自治系统&#xff08;AS&#xff09;内部传递路由信息的路由协议&#xff0c;主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

ESP32读取DHT11温湿度数据

芯片&#xff1a;ESP32 环境&#xff1a;Arduino 一、安装DHT11传感器库 红框的库&#xff0c;别安装错了 二、代码 注意&#xff0c;DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...

2023赣州旅游投资集团

单选题 1.“不登高山&#xff0c;不知天之高也&#xff1b;不临深溪&#xff0c;不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...