带你读《云上自动化运维宝典》——提升云上资源稳定性的两大利器:事件驱动体系构建&自诊断工具(2)

简介: 带你读《云上自动化运维宝典》——提升云上资源稳定性的两大利器:事件驱动体系构建&自诊断工具(2)

更多精彩内容,欢迎观看:

带你读《云上自动化运维宝典》——提升云上资源稳定性的两大利器:事件驱动体系构建&自诊断工具(1):https://developer.aliyun.com/article/1405332

4. 总结

最后针对今天所讲的内容进行一个总结,先给大家演示一下刚才讲的内容,首先在阿里云的官方文档可以看到,关于 ECS 事件的一个详细介绍,这里列出了不同的事件类型,同时在事件介绍里面包括事件的说明以及事件的影响,同时还会给针对这个事件给到用户的一些处理建议。

 

第二是关于 open API ECS open API 的官方文档中有一个模块式系统事件,大家可以在系统事件这部分查看关于事件的 open API。比如 describe instance  history events 是查询我们事例下所产生的历史的事件,这里会有关于 API 的详细说明。

 

同时我们还可以对这个 open API 进行调试,可以查看自己实例下有哪些事件。其次看一下 ECS 事件的控制台。在 ECS 事件控制台。我们可以查看到实例下所产生的事件,以本地盘受损事件为例,可以看到出现了一个坏盘事件,那针对这个坏盘事件可以看到当前这个事件的处理进度,以及我们还有后续的可以做的一些操作:比如修复磁盘,重新部署。

 

了解一下云监控,它可以去查看事件订阅事件。在云监控的系统监控部分可以查看事件。

 

我们可以查看以实例状态变化实验为例,我们可以看到当前这个实例所产生的实例状态变化事件。同时我们还可以基于事件创建我们对应的报警规则。比如我们可以定义自己的报警名称,选择产品类型,这里我们选择 ECS,可以选择事件的类型,比如异常类的实例还是状态通知类的事件;可以选择事件的等级,这里选择严重;选择事件的名称;那可以选择实例状态变化;同时我们还可以根据关键词去过滤事件。因为可能不是所有的事件我们都关注,最后可以选择我们通知的方式,可以选择报警通知,那就会发送对应的短信邮件,同时我们可以还发到对应的钉钉之类的。这里还提供消息队列、函数计算、U2 回调。

 

下面介绍一下 EVENT BRIDGE,我们可以查看发生的事件,还是以刚才的实例状态变化为例,那我们可以看到产生了很多的实例状态变化事件,同时我们还可以像云监控一样创建对应的规则去订阅事件,把事件投递到我们的目标端,这里创建一个进行演示。

 

比如输入规则名称,叫 test。事件源选择 ECS 事件源,事件类型选择实例状态变换,下一步选择投递的目标端,这里支持丰富的一些目标端,有钉钉、函数计算等,这里投递目标会比云监控更多。

 

大家可以根据自己的需求选择。展示一下在事件产生之后,可以在云监控和 EVENT bridge 去查看的一个过程,选择一个实例。比如重启这个实例,重启之后,我们就能会收到一个实例状态变化的事件,看一下是否查看到,从事件查看查询该事例下所产生的事件,修改一下这个时间选择,大家可以看到产生了一个实例状态变化事件,同时,在 EVENT bridge 里面也是同理。在事件的详情里面可以查看具体的一些事件的属性。

image.png

 

ECS 提供了丰富的事件。我们可以从多维度去衡量资源的稳定性主要呢,是有非预期的事件。计划内运维事件,安全费用类事件,资源状态变化事件。同时基于这些事件,我们可以构建可观测的体系。

 

第一我们可以基于事件配置短信,邮件报警,第二,我们可以在控制台和 open API 查询事件,第三我们可以配置自定义的监控,可以选择监控的渠道,同时基于ECS 事件还可以进行自动化的运维。第一我们可以通过控制台去响应事件,实现对资源的运维,第二可以通过 open API 去查询事件执行对应的运维动作,第三我们可以通过 EVENT bridge 云监控集成事件,进行系统化运维。

5. 使用 ECS 遇到故障时的痛点

大家好,我是来自阿里云弹性计算的樊超,今天主要介绍的是 ECS 自诊断工具,今天主要讲的是分为四个部分内容。

 

第一部分使用 ECS 遇到故障时的痛点,简单介绍使用 ECS 时的典型问题以及针对这些问题如何选择自主解决工具。第二部分一眼排障 ECS 健康状态,主要是帮大家介绍一个能够快速知道 ECS 当前是否有问题的工具。第三部分,一键定位 ECS 健康诊断,ECS 健康诊断能够详细的定位 ECS 当前的故障,并且根据当前的故障给出一定的修复建议,第四部分进行总结。

 

image.png

 

我们在使用 ECS 的过程中会遇到各种各样的问题,这里罗列了一些我们收集到的典型问题,

 

比如实例无法连接这些问题,可能是由实例配置异常,实例状态异常,实例网络不通或者运营商黑洞等各种各样的问题导致的,例如实例性的问题, CPU 负载高,磁盘 iops 高,网络丢包率高,实例性能受损等问题,实例操作问题,比如实例启动失败,实例登录失败,实例升降配失败以及实例续费失败等各种各样的操作问题。比如实例配额不足,我们会遇到各种各样因为配额达到上限而导致的配额操作问题。

 

当遇到这些问题时,我们脑海中自然而然的会有三个问题。

 

image.png

 

第一 ECS 是否有问题,还是当前我业务故障。第二,ECS 有什么样的问题到底发生了什么事情。第三, ECS 如何处理,如何处理这些已经定位的故障来恢复 ECS,从而恢复我的业务。

 

所以在遇到 ECS 故障时,我们可以选择不同的自主排查工具。

 

image.png

 

ECS 是否有问题,我们可以使用实例健康状态一眼能够看出来当前ECS 是否故障。当我们想知道 ECS 有什么问题,以及ECS 当前的问题该如何处理时,我们可以选择实例健康诊断来对 ECS 进行定位,从而得到具体的恢复建议和修复办法。

 

相比较于传统的走工单的流程去解决问题。自主排查能够更快解决 ECS 的问题。

 

image.png

 

在传统工单流程中,流程步骤多,周期长,享用慢,无法自主解决。只能等被动的等工单回复。而采用自主排查工具周期短,响应快,能够自主解决问题。通过使用自主排查工具,能够快速的获得当前 ECS 实例问题的详细报告以及根据报告快速的恢复 ECS。因此,我们强烈建议用户能够使用自主排查工具,对 ECS 进行故障定位和问题的修复。

6. 一眼排障 ECS 健康状态

第二部分一眼排障 ECS 健康状态,使用健康状态功能能够一眼确定当前 e cs 的是否有故障。

 

实例健康状态表示的是实例。操作系统的运行状态。通过实例健康状态可以快速确定 ECS 实例是否真正可用。用实例健康状态能够直接看到 e cs 当前的真正情况是什么。它是否故障以及是否真正在运行这里我们举了两个控制台的例子。在图一,我们可以明确的看到实例健康状态一栏三个实例都是正常的,代表当前 ECS 没有任何故障。

 

图二可以看到在状态这一栏里两个实例都出现了性能下降或实例受损。通过黄色的窗口可以明确的可以看出。第三个实例,因为已经停止,所以健康状态已经不适用。

 

通过这两个图,我们可以一眼确定当前 6 个实例的是什么样子。它当前是否有故障,运行状态是否 ok

 

image.png

 

健康状态呢是一种定义。它包括 5 个值。在这里我们先简单的介绍这 5 个值的含义是什么以及用在什么样的场景下。

 

image.png

 

Initializing 初始化中实例状态,初始化中代表实例正处在初始化阶段。也就是实例在管控状态中已经运行中。但是在真正的情况下,它的操作系统还没有启动,也就是它还没有进入用户态,像挂盘 SS 是登录等操作都会失败,Impaired 性能受损或性能降级,这代表实例已经受到了损伤,它的健康已经受损。

 

当前的实例因为底层故障或该 SOS 问题已经不再正常。所以当用户遇到业务问题时,可以看看当前实例是不是处在impaired 的状态。如果当前处在 impaired 状态,说明 ECS 已经故障。

 

OK 正常,代表实例也完全正常,实例的操作系统正常运行没有任何问题。Insufficient data,数据不足,当实例处在停止中或者已经停止,健康状态已经没有意义。Not applicable,不适用代表当前实例已经被删除。一般情况下,用户不会看到该状态。健康状态是在 5 个状态值之前不断轮询的状态机。

image.png

 

 

我们从创建到删除实例分别介绍这 5 种之间的转化情况。实例在初步建设中处在 creating,说明实例正在创建中。创建完之后实例会处在 stop 的状态,那么此时健康状态是红色的。InSufficent Data 代表当前不适用。当实例开始运行,同时健康状态会进入到 Initializing。初始化中,代表当前实例正在运行,但是它的操作系统还在自检中,还没有进入用户态。

 

当操作系统进入用户状态,该 SOS 完全启动成功后,它会处在 OK 状态。也就是说,当前实例完全正常。当一个处在 OK 正常的实例遇到了各种各样的问题时,它会转变到 impaired 的状态。代表当前实例已经受损或性能下降。当这些故障和问题已经结束,实例恢复正常时,它会转回 OK 状态,最终这个实例会被停止,然后它会恢复到以 InSufficent Data 状态,最终又被删除。那么就会变成 Not applicable,实例已经完全结束了它的生命周期。用户可以在多种入口查看ECS 健康状态。除了 open API 接口,我们在控制台的两个入口处也可以看到 ECS 控制台的实例列表。

 

在这个列表页,我们可以清楚的看到,处在运行中的实例,它是正常还是受损中。然后下面图是我们在 ECS 控制台的实例详情页的右上角。

正常,实例健康状态是一个红色对号的图标。初始化中是一个实例正在刷新的图标。性能受损或性能降级状态,实例是一个红色的叉。数据不足,也就是实例处在 stop stopping 状态时,它是一个黄色的叹号。

 

image.png


更多精彩内容,欢迎观看:

带你读《云上自动化运维宝典》——提升云上资源稳定性的两大利器:事件驱动体系构建&自诊断工具(3):https://developer.aliyun.com/article/1405328

相关实践学习
基于云监控实现的监控系统
通过阿里云云监控功能给非阿里云主机安装监控插件,从而实现对非阿里云主机的各项指标进行监控和管理,在配置报警规则和报警人的情况下,能对特定的场景做出报警反应通知到报警人的手机上。
相关文章
|
19天前
|
Java 测试技术 数据安全/隐私保护
软件测试中的自动化策略与工具应用
在软件开发的快速迭代中,自动化测试以其高效、稳定的特点成为了质量保证的重要手段。本文将深入探讨自动化测试的核心概念、常见工具的应用,以及如何设计有效的自动化测试策略,旨在为读者提供一套完整的自动化测试解决方案,帮助团队提升测试效率和软件质量。
|
1月前
|
监控 jenkins 测试技术
自动化测试框架的构建与实践
【10月更文挑战第40天】在软件开发周期中,测试环节扮演着至关重要的角色。本文将引导你了解如何构建一个高效的自动化测试框架,并深入探讨其设计原则、实现方法及维护策略。通过实际代码示例和清晰的步骤说明,我们将一起探索如何确保软件质量,同时提升开发效率。
43 1
|
1月前
|
测试技术 开发者 Python
自动化测试之美:从零构建你的软件质量防线
【10月更文挑战第34天】在数字化时代的浪潮中,软件成为我们生活和工作不可或缺的一部分。然而,随着软件复杂性的增加,如何保证其质量和稳定性成为开发者面临的一大挑战。自动化测试,作为现代软件开发过程中的关键实践,不仅提高了测试效率,还确保了软件产品的质量。本文将深入浅出地介绍自动化测试的概念、重要性以及实施步骤,带领读者从零基础开始,一步步构建起属于自己的软件质量防线。通过具体实例,我们将探索如何有效地设计和执行自动化测试脚本,最终实现软件开发流程的优化和产品质量的提升。无论你是软件开发新手,还是希望提高项目质量的资深开发者,这篇文章都将为你提供宝贵的指导和启示。
|
12天前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
92 17
Selenium:强大的 Web 自动化测试工具
|
18天前
|
人工智能 自然语言处理 JavaScript
Agent-E:基于 AutoGen 代理框架构建的 AI 浏览器自动化系统
Agent-E 是一个基于 AutoGen 代理框架构建的智能自动化系统,专注于浏览器内的自动化操作。它能够执行多种复杂任务,如填写表单、搜索和排序电商产品、定位网页内容等,从而提高在线效率,减少重复劳动。本文将详细介绍 Agent-E 的功能、技术原理以及如何运行该系统。
66 5
Agent-E:基于 AutoGen 代理框架构建的 AI 浏览器自动化系统
|
4天前
|
Serverless 决策智能 UED
构建全天候自动化智能导购助手:从部署者的视角审视Multi-Agent架构解决方案
在构建基于多代理系统(Multi-Agent System, MAS)的智能导购助手过程中,作为部署者,我体验到了从初步接触到深入理解再到实际应用的一系列步骤。整个部署过程得到了充分的引导和支持,文档详尽全面,使得部署顺利完成,未遇到明显的报错或异常情况。尽管初次尝试时对某些复杂配置环节需反复确认,但整体流程顺畅。
|
8天前
|
缓存 监控 安全
公司电脑监控软件的 Gradle 构建自动化优势
在数字化办公环境中,公司电脑监控软件面临代码更新频繁、依赖管理和构建复杂等挑战。Gradle 构建自动化工具以其强大的依赖管理、灵活的构建脚本定制及高效的构建缓存与增量构建特性,显著提升了软件开发效率和质量,支持软件的持续更新与优化,满足企业对员工电脑使用情况的监控与管理需求。
24 3
|
20天前
|
数据库 Docker 容器
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。Dockerfile定义了构建镜像所需的所有指令,包括基础镜像选择、软件安装、文件复制等,极大提高了开发和部署的灵活性与一致性。掌握Dockerfile的编写,对于提升软件开发效率和环境管理具有重要意义。
42 9
|
19天前
|
运维 jenkins Java
Jenkins 自动化局域网管控软件构建与部署流程
在企业局域网管理中,Jenkins 作为自动化工具,通过配置源码管理、构建及部署步骤,实现了高效、稳定的软件开发与部署流程,显著提升局域网管控软件的开发与运维效率。
37 5
|
18天前
|
运维 Kubernetes Devops
自动化运维:从脚本到工具的演进之旅
在数字化浪潮中,自动化运维成为提升效率、保障系统稳定的关键。本文将探索自动化运维的发展脉络,从基础的Shell脚本编写到复杂的自动化工具应用,揭示这一技术变革如何重塑IT运维领域。我们将通过实际案例,展示自动化运维在简化工作流程、提高响应速度和降低人为错误中的重要作用。无论你是初学者还是资深专家,这篇文章都将为你提供宝贵的洞见和实用的技巧。
下一篇
DataWorks