从新手小白到运维大咖,SysOM 多场景宕机实例解析 | 龙蜥技术

简介: 更自动化和智能的运维,再也不怕无法及时感知宕机和重复投入已知问题的情况。

1 (2).png

文/刘馨蔚,系统运维 SIG Contributor


“老板老板,今天业务又发生了抖动,具体原因暂时还不能快速查清,再给我点时间吧。”

“老板老板,这个问题我好像解过,但是也不太确定,我再重新分析一次吧。”

“老板老板......”


不知道你们或者身边的人是不是也遇到过这个问题:服务器无端重启,造成业务抖动,但是不知道具体发生了什么;明明分析过的问题但是又不能确定是否是同一个问题;无法感知集群的健康状况,无法及时主动地运维。这些问题不仅会影响业务,投入过多的运维人力,无法沉淀已有的运维经验。下文将会从多个场景来展示宕机中心的应用场景

场景 1:运维人员了解集群宕机状况

当发生业务中断、不相应等突发情况时,我们可以通过宕机中心查看当前机器是否存在宕机以及历史宕机,可以快速准确地与现有的业务异常进行关联,同时及时地进行主动运维,减少投入过多人力的排查和时间。宕机中心将会检测并实时收集宕机,及时上报展示到宕机中心首页便于运维人员发现、上报和解决问题。如下图所示,宕机中心的首页除了展示已发生的宕机列表外,还提供了集群的宕机指标和宕机列表信息,其中包括核心指标、总宕机列表和总览集群的宕机状况。使用者可以快速直观地观测到集群的宕机情况,快速了解集群内机器的健康情况。

1.png

场景 2:新手小白都能看懂的宕机详情与自动关联解决方案

从宕机列表中点击查看某次宕机的宕机详情,将会跳转至宕机详情页面。


宕机详情能为运维新手甚至小白提供能看懂的宕机信息,通过 SysOM 后台自动分析后,在页面展示与以往历史调用栈相同的宕机、宕机的时间、宕机的主机和主机关键信息、宕机的关键函数和运行的进程,硬件宕机还是软件宕机等信息。同时还提供可以在线分析 vmcore 的网页,方便直接快捷地分析问题。

2.png

3.png

值得一提的是,宕机中心提供了一整套解决方案的管理系统,即使不会分析宕机,也能够快速查看已经关联的解决方案。使用者可通过宕机详情页面的“录入解决方案”按钮来对方案的录入。使用者通过分析宕机后可以将相关的解决方案录入并与某个宕机关联,不仅方便日后查看而且可以记录沉淀这个解决方案,当相似宕机发生时后台会运行宕机相似匹配的算法,自动关联到相似宕机的解决方案。

场景 3:运维老手可通过调用栈查询历史的宕机

如果当整个集群的宕机变多后,如何除了利用一些主机名等关键信息来对宕机进行筛选呢?SysOM 宕机中心提供通过调用栈来反向搜索已发生的宕机,这种情况可能发生在查询一台不在 SysOM 管控集群机器的宕机调用栈是否也出现在管控集群的宕机中,或者可以是运维人员想要通过调用栈来直接查找历史宕机。

4.png

点击标题上的宕机分析->宕机匹配后跳转到宕机匹配的页面。宕机匹配主要提供了匹配相似宕机的功能,在相似调用栈的文本框中输入某次宕机的关键调用栈,将会和现有历史的宕机进行相似匹配。

如下输入了内核的宕机调用栈后将会在集群内已发生的宕机中搜索相似的宕机,并且给出相似度:

5.png

场景 4:快速匹配上游社区的问题

虽然 SyOM 提供了一整套解决方案的管理系统,并且相同宕机发生后会自动关联到之前已有宕机的解决方案,但是这套管理系统最开始是没有任何知识库的,需要运维人员分析后,录入知识库不断地积累知识库。为此 SysOM 特有地提供了一种快速匹配上有社区宕机解决方案的方法,在没有任何已知沉淀知识库的情况下也能快速匹配上游社区已知宕机问题的解决方案,同时可以讲匹配到的方案沉淀到自己的知识库中。

例如发生了一个宕机后出现了如下的宕机日志:

[70918341.089708] BUG: unable to handle kernel NULL pointer dereference at           (null) [70918341.098547] IP: [<ffffffffxxxxxxxx>] ovl_cleanup+0x2x/0xd0 [overlay] ... [70918341.372226] Call Trace: [70918341.375674]  [<ffffffffxxxxxxxx>] ovl_cleanup_whiteouts+0x7x/0xd0 [overlay] [70918341.383698]  [<ffffffffxxxxxxxx>] ovl_clear_empty+0x2x/0x2e0 [overlay] [70918341.391336]  [<ffffffffxxxxxxxx>] ovl_check_empty_and_clear+0x7x/0x90 [overlay] [70918341.399666]  [<ffffffffxxxxxxxx>] ovl_do_remove+0x1x/0x470 [overlay] [70918341.414296]  [<ffffffffxxxxxxxx>] ovl_rmdir+0x1x/0x20 [overlay] [70918341.421250]  [<ffffffffxxxxxxxx>] vfs_rmdir+0xax/0x100 [70918341.427445]  [<ffffffffxxxxxxxx>] do_rmdir+0x1ax/0x200 [70918341.447782]  [<ffffffffxxxxxxxx>] SyS_unlinkat+0x2x/0x40

[70918341.454124]  [<ffffffffxxxxxxxx>] system_call_fastpath+0x1x/0x1b


通过 SysOM 的 Upstream 匹配,可以直接通过宕机日志匹配到上游解决次宕机的方案:

疑似上游社区解决案:

1.https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=84889d49335627bc770b32787c1ef9ebad1da232 

2.https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=ab79efab0a0ba01a74df782eb7fa44b044dae8b5

3.https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=9f4ec904dbd4eb1a2db10d5e7dc16eae386fe64d

通过分析后得出第一个上有社区解决方案为本宕机的解决方案。这个上有社区解决方案的匹配搜索方法即将开源到 SysOM 中,欢迎关注与指导。

总结

SysOM 的宕机中心是一个集宕机收集、宕机展示和问题匹配的功能平台。宕机中心在提供便捷、用户友好的管理界面同时,也为使用者提供问题积累沉淀、问题智能匹配的功能,实现了更自动化和智能的运维,再也不怕无法及时感知宕机和重复投入已知问题的情况。目前宕机中心的代码已开源到 SysOM 中,欢迎大家点赞批评。


系统运维 SIG 主页:

https://openanolis.cn/sig/sysom


可能需要的预备知识:

1、宕机:指操作系统无法从一个严重系统错误中恢复过来,或系统硬件层面出问题,以致系统长时间无响应,而不得不重新启动计算机的现象。

2、宕机信息:主机通过 kdump 等手段,可转储宕机时主机的日志信息和操作系统的 core dump 信息(vmcore),以此来分析宕机的原因。

3、调试 vmcore:类似于 gdb 调试,调试 vmcore 通过 crash 软件来对宕机保存下来的 core 文件进行分析,可分析宕机的宕机函数、调用栈和内存信息等。

4、调用栈:本文中的调用栈都是指宕机时发生异常的 CPU 上的函数调用链,调用栈从下至上的展示了当前的函数调用关系。

—— 完 ——

加入龙蜥社群

加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;加入钉钉群:扫描下方钉钉群二维码。

系统运维.PNG

相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
9天前
|
安全 Android开发 iOS开发
安卓与iOS的较量:技术特性与用户体验的深度解析
在移动操作系统的战场上,安卓和iOS一直占据着主导地位。本文将深入探讨这两大平台的核心技术特性,以及它们如何影响用户的体验。我们将从系统架构、应用生态、安全性能和创新功能四个方面进行比较,帮助读者更好地理解这两个系统的异同。
40 3
|
4天前
|
机器学习/深度学习 人工智能 编解码
深入探索AI文生语音技术的奥秘:从文本输入到逼真语音输出的全链条语音合成过程解析
【9月更文挑战第2天】深入探索AI文生语音技术的奥秘:从文本输入到逼真语音输出的全链条语音合成过程解析
 深入探索AI文生语音技术的奥秘:从文本输入到逼真语音输出的全链条语音合成过程解析
|
6天前
|
API 云计算 开发者
使用宜搭平台带来的便利:技术解析与实践
【9月更文第8天】随着企业信息化建设的不断深入,业务流程自动化的需求日益增长。宜搭平台作为一种高效的应用构建工具,为企业提供了快速搭建各类业务系统的可能。本文将探讨使用宜搭平台给企业和开发者带来的便利,并通过具体的代码示例展示其优势。
37 11
|
8天前
|
监控 网络协议 API
.NET WebSocket 技术深入解析,你学会了吗?
【9月更文挑战第4天】WebSocket 作为一种全双工协议,凭借低延迟和高性能特点,成为实时应用的首选技术。.NET 框架提供了强大的 WebSocket 支持,使实时通信变得简单。本文介绍 WebSocket 的基本概念、.NET 中的使用方法及编程模型,并探讨其在实时聊天、监控、在线游戏和协同编辑等场景的应用,同时分享最佳实践,帮助开发者构建高效实时应用。
48 12
|
1天前
|
存储 负载均衡 Java
Jetty技术深度解析及其在Java中的实战应用
【9月更文挑战第3天】Jetty,作为一款开源的、轻量级、高性能的Java Web服务器和Servlet容器,自1995年问世以来,凭借其卓越的性能、灵活的配置和丰富的扩展功能,在Java Web应用开发中占据了举足轻重的地位。本文将详细介绍Jetty的背景、核心功能点以及在Java中的实战应用,帮助开发者更好地理解和利用Jetty构建高效、可靠的Web服务。
11 2
|
6天前
|
定位技术 网络虚拟化 数据中心
VLAN与VXLAN技术解析:仅一字之差的深远区别
通过深入了解VLAN与VXLAN的技术细节和应用场景,网络工程师可以根据具体需求选择最合适的技术来优化网络架构。对于现代网络环境,尤其是大规模和多变的网络结构,理解并合理运用这些技术是提高网络效率和安全性的关键。
25 1
|
14天前
|
开发者 图形学 Java
揭秘Unity物理引擎核心技术:从刚体动力学到关节连接,全方位教你如何在虚拟世界中重现真实物理现象——含实战代码示例与详细解析
【8月更文挑战第31天】Unity物理引擎对于游戏开发至关重要,它能够模拟真实的物理效果,如刚体运动、碰撞检测及关节连接等。通过Rigidbody和Collider组件,开发者可以轻松实现物体间的互动与碰撞。本文通过具体代码示例介绍了如何使用Unity物理引擎实现物体运动、施加力、使用关节连接以及模拟弹簧效果等功能,帮助开发者提升游戏的真实感与沉浸感。
30 1
|
1天前
|
SQL 关系型数据库 MySQL
MySQL技术安装配置、数据库与表的设计、数据操作解析
MySQL,作为最流行的关系型数据库管理系统之一,在WEB应用领域中占据着举足轻重的地位。本文将从MySQL的基本概念、安装配置、数据库与表的设计、数据操作解析,并通过具体的代码示例展示如何在实际项目中应用MySQL。
6 0
|
7天前
|
负载均衡 网络协议 安全
DNS解析中的Anycast技术:原理与优势
【9月更文挑战第7天】在互联网体系中,域名系统(DNS)将域名转换为IP地址,但网络规模的扩张使DNS解析面临高效、稳定与安全挑战。Anycast技术应运而生,通过将同一IP地址分配给多个地理分布的服务器,并依据网络状况自动选择最近且负载低的服务器响应查询请求,提升了DNS解析速度与效率,实现负载均衡,缓解DDoS攻击,增强系统高可用性。此技术利用动态路由协议如BGP实现,未来在网络发展中将扮演重要角色。
31 0
|
13天前
|
5G 网络架构
深入解析Wi-Fi中的MIMO技术及其优势
【8月更文挑战第31天】
52 0

热门文章

最新文章

推荐镜像

更多