关于LINUX操作系统异常宕机重启的分析思路

一、先搞清楚现状

当收到系统宕机告警或者故障反馈时,需要先对情况进行核实。比如检查系统启动时间,是不是真实发生了重启?如果重启了,什么时间点发生的重启?重启了几次?重启之前有无变更操作?主机上运行的是哪一类应用?重启的主机是物理机还是虚拟机?等等情况,有助于对于故障的分析处理。

可以如下检查:

1、last查看机器最近重启时间,以及重启次数

2、确认重启后,查看主机是物理机还是虚拟机

dmidecode -t 1

3、检查看看是否有人为重启的动作,如果配置了命令审计,可以从message日志中看是否有人敲过reboot命令。或者用history命令也可以看到一些,但有时不一定会有记录下来。

主机命令审计配置和查看可参考这篇文章《LINUX加固之命令审计》

LINUX加固之命令审计-CSDN博客

4、检查看看主机上都跑了些啥?例如oracle、mysql、ha、vcs等高可用集群软件相关的 。

二、硬件故障排查

在第一步做了相关检查后,确认是发生重启了,并且还是物理机,可以考虑是否硬件故障导致(硬件类内存、cpu故障频率高)。系统内可以通过ipmitool工具检查如下:


--安装工具
yum install OpenIPMI ipmitool -y
modprobe ipmi_watchdog
modprobe ipmi_poweroff
modprobe ipmi_devintf
modprobe ipmi_si
modprobe ipmi_msghandler
--查看日志
ipmitool sel list

如果看到类似CPU或内存异常日志,同时时间点和机器重启时间对应上,那就是重启原因。

PS:硬件类问题机房值守人员可以现场查看和报修厂家检查,系统内ipmitool工具是个补充手段,方便远程轻松查看。如果ipmitool查看未有明显报错,也未必硬件一定都正常,建议还需要进行报修原厂,再进一步深度检查。

三、系统内dump日志检查

如果硬件类排查没什么问题或者是个虚拟机,可以进行系统内的日志分析,首先应该看看是否有产生dump日志。参考如下:

cd /var/crash目录下,看是否有生成crash日志目录产生,如下图有个127.0.0.1开头的目录

进到目录里就会有vmcore的dump日志,重启的原因就可以从dump日志找到蛛丝马迹。

crash日志分析可参考这篇《LINUX常用工具之kdump》

LINUX常用工具之kdump分析-CSDN博客

四、系统日志及性能检查

如果硬件日志和crash日志检查了都还没有收获,接下来要对系统日志及相关性能进行复盘检查,检查分析看看故障重启前,主机负载有没有突增,日志中有无异常类报错。可参照如下:

1、性能检查

这部分大部分系统应该都会接入到监控网管中心,可从监控中心去找下历史指标趋势,重点关注CPU、内存、磁盘IO、网络等指标是否有突增情况。

如果不具备监控中心的,或者故障前相关指标没采集到(监控采集有个时间差,瞬间的问题可能未必会捕捉到);可以从系统sar日志取查找相关信息

cd /var/log/sa,每天的系统监控会写到当天日期的sa文件中,例如11号的性能日志,可以查看sa11或者sar11文件。(注:sar文件可以直接读取,sa文件需要用sar命令加上-f参数指定具体sa文件读取内容)

关于sa文件的查看可以man 下sar去看看参数,例如

-A:所有报告的总和

-u:输出CPU使用情况的统计信息

-v:输出inode、文件和其他内核表的统计信息

-d:输出每一个块设备的活动信息

-r:输出内存和交换空间的统计信息

-b:显示I/O和传送速率的统计信息

-a:文件读写情况

-c:输出进程统计信息,每秒创建的进程数

-R:输出内存页面的统计信息

-y:终端设备活动情况

-w:输出系统交换活动信息

示例:查看11号当天故障某个时间点cpu情况,就可以用

sar -u -f sa11

 2、日志检查

/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一,其他软件日志有时也会打印输出到里面。
/var/log/secure 与安全相关的日志信息
/var/log/maillog 与邮件相关的日志信息
/var/log/cron 与定时任务相关的日志信息
/var/log/spooler 与UUCP和news设备相关的日志信息
/var/log/boot.log 守护进程启动和停止相关的日志消息
/var/log/wtmp 该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件

重点检查/var/log/message、dmesg日志、/var/log/secure等日志查看是否有error、fail、critical等关键报错信息。

五、ha等高可用集群相关软件日志检查

如果以上步骤都排查了一通,还是没找到重启的原因,那么从ha高可用的方向去查查看,如果有部署相关的软件,则去排查这些集群的日志,因为高可用集群通常会有一些驱逐、脑裂、重启节点等异常机制,也会触发机器发生重启。这块遇到了可以反馈让集群专业同事去协助排查,或者你也可以试着自己动手去检查相关日志,从不会到会,就是从每一次动手开始,后面也会去分享一些集群软件故障触发的主机重启案例。

六、其他排查方向及建议

1、如果是虚拟机故障,也建议虚拟化平台层去看看底层服务是否有异常。

2、各类日志不光是检查里面有没有异常内容,还需要关注是否日志在之前有正常输出,比如kdump是否做了配置,配置是否生效,如果不生效crash日志不会生成。其他日志也是一样。

3、操作系统一次重启可能涉及多多方面,不妨多去请教和咨询,有时是需要各专业同事共同诊断,才能把问题彻底搞清楚。

   

 There are many things that can not be broken!

 如果觉得本文对你有帮助,欢迎点赞、收藏、评论!

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

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

相关文章

PyTorch|构建自己的卷积神经网络——nn.Sequential()

之前在构建神经网络时,我们一般是采用这种方式,就像这样: class Network1(nn.Module): def __init__(self): super(Network1,self).__init__() self.conv1 nn.Conv2d(in_channels3, out_channels6, kernel_size5) …

【控制篇 / 策略】(7.4) ❀ 03. 地理地址对象在路由中的应用 ❀ FortiGate 防火墙

【简介】如何做到访问国内走Wan1,访问国际走Wan2 ?当企业有多条宽带,特别是有国际专线的时候,这个需求就很普遍了。通过地理地址对象可以快速的解决这些问题。 策略路由 当我们有多条宽带的时候,我们有两种方法分流&am…

C++的虚基类

前言 本文介绍C的虚基类 先看一个问题 先看一段代码 #include <iostream> class A { public:int a 1; };class B1:public A { public:int b1 2; };class B2 :public A { public:int b2 3; };class C1:public B1,public B2 { public:int c1 4; };int main(int arg…

每日汇评:黄金多头能否在美国CPI数据发布后占有主动权?

黄金价格再次在2020美元附近找到支撑&#xff0c;因为所有人都在关注美国的通胀数据&#xff1b; 尽管最近美国国债收益率有所上升&#xff0c;但美元仍进一步下跌&#xff1b; 金价保持在21日移动均线和50日移动均线之间&#xff0c;等待区间突破&#xff1b; 在周四早盘的亚洲…

SIT1050ISO具有隔离功能,1Mbps,高速 CAN 总线收发器

➢ 完全兼容“ ISO 11898 ”标准&#xff1b; ➢ 内置过温保护&#xff1b; ➢ 100kV/s 瞬态抗扰度&#xff1b; ➢ 显性超时功能&#xff1b; ➢ -40V 至 40V 的总线故障保护&#xff1b; ➢ I/O 电压范围支持 3.3V 和 5V MCU &#xff1b; ➢ 低环路延迟…

解决原生微信小程序获取关联公众号的code(不是wx.login的code)来获取公众号的openId

解决步骤 以下是使用 web-view 并配配合微信公众号提供的 网页授权 来实现 1、在小程序中做一个web-view页面&#xff0c;页面中只需要写微信 网页授权的链接就行了&#xff0c;注意appid请自行替换&#xff08;公众号的&#xff09;。 onLoad() {this.setData({src: https://o…

Android SDK环境搭建[图解]; 解决问题Done. Nothing was installed.

安装SDK Android SDK环境搭建 依赖java环境,需要自备Java环境 (100%实操成功) 目录 1. 解压&#xff1a;解压到非中文无特殊字符的目录 2. 双击&#xff1a;SDK Manager.exe&#xff0c;不要选全部!不要选全部!不要选全部!(会下很久) 3. 然后勾选组件​ 4. 设置环境变量 …

UM2003A 一款200 ~ 960MHz ASK/OOK +18dBm 发射功率的单发射芯片

UM2003A 是一款工作于 200 ~ 960MHz 频段的单片集成、高性能、可独立运行的 OOK 发射器。内部集成的 OTP 方便用户对各种射频参数以及特色功能进行编程。该芯片以其高集成度和低功耗的设计&#xff0c;特别适用于低成本&#xff0c;低功耗&#xff0c;电池驱动的无线发射应用。…

【TypeScript】入门基础知识

目前在做项目的技术栈是 reacttypescript&#xff0c;之前只知道 ts 是 js 的扩展&#xff0c;增加了类型检查&#xff0c;但是没有仔细的学过&#xff0c;纯纯看别人代码上手 anyscript&#xff08;这很难评...&#xff09;。趁着最近空闲&#xff0c;就学习一下 ts 的基础知识…

章鱼网络 2023 年全回顾|暨12月进展报告

2023年&#xff0c;章鱼网络轻装上阵&#xff0c;身处加密行业的低谷中砥砺前行。 12月17日&#xff0c;经过整整1年时间的开发和打磨&#xff0c;章鱼网络在重磅上线 Octopus 2.0&#xff0c;即 $NEAR Restaking 和 NEAR-IBC&#xff0c;获得了社区和市场的一致认可&#xff…

Java中多线程二

抢占调度模型 概述&#xff1a;优先让优先级高的线程使用 CPU &#xff0c;如果线程的优先级相同&#xff0c;那么随机会选择一个&#xff0c;优先级高的线程获取的 CPU 时间片相对多一些 Thread 类中一些关于线程的方法 方法简述public final int getPriority()返回此线程的优…

自动化控制面板-1Panel

一、1Panel自动化控制面板 官网地址 1Panel 可以实现&#xff1a; 快速建站、高效管理、安全可靠、一键备份、应用商店 快速建站&#xff1a;深度集成 Wordpress 和 Halo&#xff0c;域名绑定、SSL 证书配置等一键搞定&#xff1b;高效管理&#xff1a;通过 Web 端轻松管理 …

Docker启动报错:No chain/target/match by that name 处理

一、问题描述 某次OS升级重启后&#xff0c;发现docker redis实例无法启动&#xff0c;报错如下&#xff1a; Error response from daemon: driver failed programming external connectivity on endpoint vpm.redis.2 (f4b70fef65000bcacb574ee59e65d9b7a25f2abfa5dec0be9b74…

阿里云实时计算企业级状态存储引擎 Gemini 技术解读

本文整理自阿里云 Flink 存储引擎团队李晋忠&#xff0c;兰兆千&#xff0c;梅源关于阿里云实时计算企业级状态存储引擎 Gemini 的研究&#xff0c;内容主要分为以下五部分&#xff1a; 流计算状态访问的痛点企业级状态存储引擎GeminiGemini 性能评测&线上表现结语参考 一、…

2024年最新ChemiCloud优惠75%折扣WordPress外贸主机

ChemiCloud怎么样&#xff1f;ChemiCloud好不好&#xff1f;ChemiCloud是一家成立于2016年的云虚拟主机提供商&#xff0c;他们在全球范围内拥有多个机房&#xff0c;并以其出色的性价比而备受赞誉。他们整合了许多先进技术&#xff0c;包括Digital Ocean SSD云服务器、LiteSpe…

云计算任务调度仿真03

前面陆续分享了基于policy gradient和DQN实现的深度强化学习任务调度仿真&#xff0c;上次的DQN没有实现fix-qtarget和experience replay&#xff0c;这次再分享实现了这两个方法的DQN任务调度仿真。 经验重放&#xff0c;定义存储和存放次序&#xff0c;这里也可以自行修改 de…

提升测试效率,轻松并行运行测试——探秘Pytest插件pytest-xdist

在软件开发中&#xff0c;测试是确保代码质量的重要一环。然而&#xff0c;随着项目规模的增大&#xff0c;测试用例的数量也随之增多&#xff0c;测试的执行时间可能成为一个瓶颈。为了解决这个问题&#xff0c;Pytest提供了丰富的插件生态系统&#xff0c;其中 pytest-xdist …

[C#]调用tesseact-ocr的traineddata模型进行ocr文字识别

【框架地址】 https://github.com/charlesw/tesseract 【算法介绍】 Tesseract OCR是一个开源的光学字符识别引擎&#xff0c;它可以将图像中的文字转换成可编辑和可搜索的文本格式。Tesseract由惠普实验室于1985年开始开发&#xff0c;并在2005年被Google收购后成为了开源项…

api网关-kong

选型 api网关相关功能 服务的路由 动态路由负载均衡 服务发现 限流 熔断、降级 流量管理 黑白名单反爬策略 控制台&#xff1a;通过清晰的UI界面对网关集群进行各项配置。 集群管理&#xff1a;Goku网关节点是无状态的&#xff0c;配置信息自动同步&#xff0c;支持节点水…

7.云原生之jenkins集成SonarQube

1. 私有云实战之基础环境搭建 2. 云原生实战之kubesphere搭建 3.云原生之kubesphere运维 4. 云原生之kubesphere基础服务搭建 5.云原生安全之kubesphere应用网关配置域名TLS证书 6.云原生之DevOps和CICD 7.云原生之jenkins集成SonarQube 8.云原生存储之Ceph集群 文章目录 搭建 …