更多精彩内容,欢迎观看:
带你读《云上自动化运维宝典》——提升云上资源稳定性的两大利器:事件驱动体系构建&自诊断工具(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 里面也是同理。在事件的详情里面可以查看具体的一些事件的属性。
ECS 提供了丰富的事件。我们可以从多维度去衡量资源的稳定性主要呢,是有非预期的事件。计划内运维事件,安全费用类事件,资源状态变化事件。同时基于这些事件,我们可以构建可观测的体系。
第一我们可以基于事件配置短信,邮件报警,第二,我们可以在控制台和 open API 查询事件,第三我们可以配置自定义的监控,可以选择监控的渠道,同时基于ECS 事件还可以进行自动化的运维。第一我们可以通过控制台去响应事件,实现对资源的运维,第二可以通过 open API 去查询事件执行对应的运维动作,第三我们可以通过 EVENT bridge 云监控集成事件,进行系统化运维。
5. 使用 ECS 遇到故障时的痛点
大家好,我是来自阿里云弹性计算的樊超,今天主要介绍的是 ECS 自诊断工具,今天主要讲的是分为四个部分内容。
第一部分使用 ECS 遇到故障时的痛点,简单介绍使用 ECS 时的典型问题以及针对这些问题如何选择自主解决工具。第二部分一眼排障 ECS 健康状态,主要是帮大家介绍一个能够快速知道 ECS 当前是否有问题的工具。第三部分,一键定位 ECS 健康诊断,ECS 健康诊断能够详细的定位 ECS 当前的故障,并且根据当前的故障给出一定的修复建议,第四部分进行总结。
我们在使用 ECS 的过程中会遇到各种各样的问题,这里罗列了一些我们收集到的典型问题,
比如实例无法连接这些问题,可能是由实例配置异常,实例状态异常,实例网络不通或者运营商黑洞等各种各样的问题导致的,例如实例性的问题, CPU 负载高,磁盘 iops 高,网络丢包率高,实例性能受损等问题,实例操作问题,比如实例启动失败,实例登录失败,实例升降配失败以及实例续费失败等各种各样的操作问题。比如实例配额不足,我们会遇到各种各样因为配额达到上限而导致的配额操作问题。
当遇到这些问题时,我们脑海中自然而然的会有三个问题。
第一 ECS 是否有问题,还是当前我业务故障。第二,ECS 有什么样的问题到底发生了什么事情。第三, ECS 如何处理,如何处理这些已经定位的故障来恢复 ECS,从而恢复我的业务。
所以在遇到 ECS 故障时,我们可以选择不同的自主排查工具。
ECS 是否有问题,我们可以使用实例健康状态一眼能够看出来当前ECS 是否故障。当我们想知道 ECS 有什么问题,以及ECS 当前的问题该如何处理时,我们可以选择实例健康诊断来对 ECS 进行定位,从而得到具体的恢复建议和修复办法。
相比较于传统的走工单的流程去解决问题。自主排查能够更快解决 ECS 的问题。
在传统工单流程中,流程步骤多,周期长,享用慢,无法自主解决。只能等被动的等工单回复。而采用自主排查工具周期短,响应快,能够自主解决问题。通过使用自主排查工具,能够快速的获得当前 ECS 实例问题的详细报告以及根据报告快速的恢复 ECS。因此,我们强烈建议用户能够使用自主排查工具,对 ECS 进行故障定位和问题的修复。
6. 一眼排障 ECS 健康状态
第二部分一眼排障 ECS 健康状态,使用健康状态功能能够一眼确定当前 e cs 的是否有故障。
实例健康状态表示的是实例。操作系统的运行状态。通过实例健康状态可以快速确定 ECS 实例是否真正可用。用实例健康状态能够直接看到 e cs 当前的真正情况是什么。它是否故障以及是否真正在运行这里我们举了两个控制台的例子。在图一,我们可以明确的看到实例健康状态一栏三个实例都是正常的,代表当前 ECS 没有任何故障。
图二可以看到在状态这一栏里两个实例都出现了性能下降或实例受损。通过黄色的窗口可以明确的可以看出。第三个实例,因为已经停止,所以健康状态已经不适用。
通过这两个图,我们可以一眼确定当前 6 个实例的是什么样子。它当前是否有故障,运行状态是否 ok。
健康状态呢是一种定义。它包括 5 个值。在这里我们先简单的介绍这 5 个值的含义是什么以及用在什么样的场景下。
Initializing 初始化中实例状态,初始化中代表实例正处在初始化阶段。也就是实例在管控状态中已经运行中。但是在真正的情况下,它的操作系统还没有启动,也就是它还没有进入用户态,像挂盘 SS 是登录等操作都会失败,Impaired 性能受损或性能降级,这代表实例已经受到了损伤,它的健康已经受损。
当前的实例因为底层故障或该 SOS 问题已经不再正常。所以当用户遇到业务问题时,可以看看当前实例是不是处在impaired 的状态。如果当前处在 impaired 状态,说明 ECS 已经故障。
OK 正常,代表实例也完全正常,实例的操作系统正常运行没有任何问题。Insufficient data,数据不足,当实例处在停止中或者已经停止,健康状态已经没有意义。Not applicable,不适用代表当前实例已经被删除。一般情况下,用户不会看到该状态。健康状态是在 5 个状态值之前不断轮询的状态机。
我们从创建到删除实例分别介绍这 5 种之间的转化情况。实例在初步建设中处在 creating,说明实例正在创建中。创建完之后实例会处在 stop 的状态,那么此时健康状态是红色的。InSufficent Data 代表当前不适用。当实例开始运行,同时健康状态会进入到 Initializing。初始化中,代表当前实例正在运行,但是它的操作系统还在自检中,还没有进入用户态。
当操作系统进入用户状态,该 SOS 完全启动成功后,它会处在 OK 状态。也就是说,当前实例完全正常。当一个处在 OK 正常的实例遇到了各种各样的问题时,它会转变到 impaired 的状态。代表当前实例已经受损或性能下降。当这些故障和问题已经结束,实例恢复正常时,它会转回 OK 状态,最终这个实例会被停止,然后它会恢复到以 InSufficent Data 状态,最终又被删除。那么就会变成 Not applicable,实例已经完全结束了它的生命周期。用户可以在多种入口查看ECS 健康状态。除了 open API 接口,我们在控制台的两个入口处也可以看到 ECS 控制台的实例列表。
在这个列表页,我们可以清楚的看到,处在运行中的实例,它是正常还是受损中。然后下面图是我们在 ECS 控制台的实例详情页的右上角。
正常,实例健康状态是一个红色对号的图标。初始化中是一个实例正在刷新的图标。性能受损或性能降级状态,实例是一个红色的叉。数据不足,也就是实例处在 stop 或 stopping 状态时,它是一个黄色的叹号。
更多精彩内容,欢迎观看:
带你读《云上自动化运维宝典》——提升云上资源稳定性的两大利器:事件驱动体系构建&自诊断工具(3):https://developer.aliyun.com/article/1405328