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

news2024/11/16 7:33:52

一、运维工作中的事件

  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   Games
       7   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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1967114.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

KubeSphere 学习之路

云原生KubeSphere最佳实践&#xff1a; https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg4MzcyOTQ2NQ&actiongetalbum&album_id3022627663062056961&scene173&subscene&sessionidsvr_2156d508166&enterid1722492662&from_msgid2247484226&…

简约家居,探秘浦东TOP5装修公司的绿色魔法

在快节奏的现代生活中&#xff0c;家居装修不仅仅是为了美化居住空间&#xff0c;更是一种提升生活品质的方式。特别是对于追求环保和健康生活的业主来说&#xff0c;选择一家能够提供绿色装修服务的公司变得尤为重要。在浦东地区&#xff0c;有几家装修公司因其卓越的绿色装修…

【教程】Linux安装Redis步骤记录

下载地址 Index of /releases/ Downloads - Redis 安装redis-7.4.0.tar.gz 1.下载安装包 wget https://download.redis.io/releases/redis-7.4.0.tar.gz 2.解压 tar -zxvf redis-7.4.0.tar.gz 3.进入目录 cd redis-7.4.0/ 4.编译 make 5.安装 make install PREFIX/u…

从源码看 Redis:深入理解 redisDb 和 redisObject

Redis 是一个广泛使用的内存数据库&#xff0c;以其高性能和丰富的数据结构而闻名。不同于磁盘数据库&#xff0c;磁盘数据库将数据读取到文件中维护&#xff0c;而内存数据库将数据存储在内存中&#xff0c;意味着其想要维护数据&#xff0c;必须在代码中维护一个保存数据的结…

【eNSP模拟实验】STP生成树查询及根桥设置

STP协议的解释和作用 STP协议&#xff08;Spanning Tree Protocol&#xff09;&#xff1a;生成树协议。是一种工作在OSI网络模型中的第二层(数据链路层)的通信协议&#xff0c;基本应用是防止交换机冗余链路产生的环路。用于确保以太网中无环路的逻辑拓扑结构&#xff0c;从而…

【算法训练记录——Day45】

Day45——动态规划Ⅶ 1.leetcode19_打家劫舍2.leetcode213_打家劫舍Ⅱ3.leetcode337_打家劫舍Ⅲ 1.leetcode19_打家劫舍 思路&#xff1a;我的理解是不能出现连续两次偷窃&#xff0c;即 要么今晚不偷 dp[i] dp[i-1]; 要么今晚开干&#xff01; dp[i] dp[i-2] nums[i]; 怎么…

NVM 安装node报错 Could not retrieve https://nodejs.org/dist/latest/SHASUMS256.txt.

报错内容&#xff1a; Could not retrieve https://nodejs.org/dist/latest/SHASUMS256.txt. 解决这个办法需要修改nvm的淘宝镜像 在nvm的目录下编辑settings.txt 将下面内容&#xff1a; node_mirror:npm.taobao.org/mirrors/node/ npm_mirror:npm.taobao.org/mirrors/npm/…

酷柚易汛ERP再次迎来升级,八月重拳出击!

1、修复调拨单批量导入下载模版错误 2、修复添加门店选择地址详情报错 3、修复采购清单 关联其他支出单 跳转 之后审核 原采购清单 关联其他支出单消失问题 4、修复以销订购 填了了采购数量 仍然提示请填写本次采购数量问题 5、修复应付款/收款明细表 单据编号是 核销单/其他…

Linux第八节 - make / mikefile

一、补充与复习 Linux在运行可执行程序的时候&#xff0c;有两种运行方式&#xff1a; ./mytest &#xff08;表示当前路径下的可执行程序 - 用/分隔开&#xff09; /home/shy/108/lesson8/mytest &#xff08;也可以运行程序&#xff0c;但是是在绝对路径下&#xff01;&…

图观 | 嬴图GraphRAG在博物馆文物馆藏中的应用探讨

图数据库技术是AI走向强人工智能的必经之路和重器&#xff01;因为图数据库&#xff08;含知识图谱&#xff09;最大限度还原&#xff08;模拟&#xff09;了人的思维和思考方式。 —— 摘自孙宇熙《图数据库原理、架构与应用》 前言&#xff1a; 博物馆文物馆藏管理和观众服务…

基于内地城市生活垃圾收运场景的路线规划算法

基于混合遗传算法和模拟退火算法的优化垃圾收集路线规划 摘要 本论文提出了一种基于混合遗传算法&#xff08;GA&#xff09;和模拟退火算法&#xff08;SA&#xff09;的创新路线规划方法&#xff0c;旨在优化内地城市的生活垃圾收集效率。算法结合了遗传算法的全局搜索能力…

中证500etf期权合约一手多少钱?

中证500etf期权合约一手需要的资金取决于多个因素&#xff0c;比如做一手需要几十块钱到几百块钱不等&#xff0c;不过买卖中证500etf期权合约一手多少钱&#xff0c;也是包括期权的执行价格、权利金、保证金要求等。下文为大家介绍中证500etf期权合约一手多少钱&#xff1f;本…

.\venv\Scripts\activate : 无法加载文件 E:\,因为在此系统上禁止运行脚本。

问题描述&#xff1a; 问题原因&#xff1a; Windows PowerShell 的执行策略用于控制脚本的运行权限和安全性。 以下是几种常见的执行策略及其特点&#xff1a; AllSigned&#xff1a;只允许运行经过数字签名的脚本。这意味着无论是本地创建的还是从网络获取的脚本&#xff0…

如何设计一个高性能的分布式系统?

本文讨论的主题是高性能&#xff0c;主要思路是围绕快展开&#xff0c;这么设计为什么会快&#xff1f; 文章目录 架构设计&#xff1a;微服务架构负载均衡数据一致性方案选择容错处理&#xff1a;双机互备消息队列缓存总结 架构设计&#xff1a;微服务架构 第一个设计是应用…

“再来一单“业务功能开发

文章目录 概要整体架构流程技术细节小结 概要 再来一单”功能常见于餐饮、零售、外卖等行业&#xff0c;主要目的是为了简化用户的重复购买流程&#xff0c;提高用户体验和效率。 需求分析以及接口设计 再来一单就是将原订单中的商品重新加入到购物车中,所以本质上是"增…

人工智能助力芯片半导体发展,开拓芯片设计技术新趋势

微型硅片上可以容纳多少个晶体管&#xff1f;这些晶体管是构成世界各地技术的集成电路&#xff08;IC&#xff09;的基础。1971年&#xff0c;第一款微处理器集成有2,300个晶体管&#xff0c;而如今的硅片上却超过了1000亿个晶体管。在摩尔定律失效之前&#xff0c;每两年晶体管…

10、billu-b0x2

难度 中 目标 root权限 首先确定靶机ip地址 netdiscover -i eth0 -r 192.168.189.0/24 kali 192.168.189.58 靶机 192.168.189.184 信息收集端口扫描 看到一个80和8080&#xff0c;先重点摸一下网站的内容 然后看到信息里有个robots.txt 首先就去访问一下 看到有许多不允许…

高频JMeter软件测试面试题

近期&#xff0c;有很多粉丝在催更关于Jmeter的面试题&#xff0c;索性抽空整理了一波&#xff0c;以下是一些高频JMeter面试题&#xff0c;拿走不谢~ 一、JMeter的工作原理 JMeter就像一群将请求发送到目标服务器的用户一样&#xff0c;它收集来自目标服务器的响应以及其他统计…

传统产品经理VS现在AI产品经理,你要学习的太多了,超详细收藏我这一篇就够了

传统产品经理想要转行成为AI产品经理&#xff0c;需要经历一系列的学习和实践过程。下面是一份详细的学习路线图&#xff0c;旨在帮助你顺利转型。 学习路线图 了解AI基础知识 AI概览&#xff1a;阅读《人工智能&#xff1a;一种现代的方法》这样的书籍&#xff0c;以获得对AI…

初谈Linux多线程--线程控制

文章目录 线程的概述理解线程Linux中的线程重新理解的进程Windows的线程线程的优点线程的缺点理解线程调度成本低 进程VS线程 线程控制创建线程等待线程线程函数传参线程的返回值新线程的返回值新线程返回值错误返回值为类对象 创建多线程线程的终止线程的分离pthread_detach 线…