首页 > 其他分享 >解锁混沌工程: 用指标监控实现系统自愈与智能告警

解锁混沌工程: 用指标监控实现系统自愈与智能告警

时间:2024-10-30 10:48:50浏览次数:3  
标签:工程 解锁 混沌 系统 故障 自愈 实验 告警

#作者:西门吹雪

西门吹雪,为你细细道来

解锁混沌工程: 用指标监控实现系统自愈与智能告警

在2014年,Netflix创建了一种新的角色,叫作混沌工程师(Chaos Enigneer),并开始向工程社区推广,任何一个系统在上线之前,都不能说,或者不能保住百分百的稳定性和健壮性,那么如何保证一个系统的稳定性和健壮性,这就是需要开发工程师去考虑的问题。随之产生了混沌工程。

随着混沌工程的应运而生,混沌工程开始出现通过应用一些经验探索的原则,来学习观察系统是如何反应的。这就跟科学家做实验去学习物理定律一样,混沌工程师通过做实验去了解系统。在系统中应用混沌工程能提升整个系统的弹性。通过设计并且进行混沌实验,我们可以了解到系统脆弱的一面,在还没出现对用户造成伤害之前,我们就能主动发现这些问题。

混沌工程与传统测试的区别

混沌工程可能给人的第一个感觉就是测试,但是它们是有区别的。虽然混沌工程跟传统测试通常都会共用很多测试工具的,例如都是使用错误注入工具,但混沌工程是通过实践对系统有更新的认知,而传统测试则是使用特定方式对某一块进行特定测试。

譬如在传统测试里面,我们可以写一个测试案例,我们给定特定的条件,产生一个特定的输出,如果不满足断言条件,测试就出错了,这个其实是具有很明确的特性。

但混沌工程是试验,而试验会有怎样的新信息生成,我们是不确定的。譬如我们可以进行下面的这些试验:

  1. 模拟整个IDC(Internet Data Center)即互联网数据中心的断开
  2. 选择一些网络连接的特定时间延迟或者卡顿
  3. 随机生成IO的错误
  4. 让服务器Cpu耗尽
  5. 模拟内存使用压力过大
  6. 网络中突然的数据丢包

以上这些原因,最后会有什么样的结果,有些是我们可以预料,但有些可能我们就不会预先知道,只有服务最后出问题了,或者影响了线上业务,我们复盘的过程中才会恍然大明白,原来如此啊。

在现代技术中,所有的最不可预测的,可能就是网络了,因为这里面包含很多原因,可能和网络运营商有关系,也可能和当地网络线路,或者说与路由器原因,也可能是调制解调器,也可能是网卡性能等等原因,这些原因叠加在一起就是组合成了网络不稳定的原因,但是在这种复杂的条件下,我们系统就是需要混沌工程来消除未知的因素带来对线上部署服务的影响。

任何的混沌平台,都是一种在故障发生之前发现故障的技术。

目前的阿里开源混沌工程工具 ChaosBlade应该是一个简单易用,而且功能强大的混沌实验实施工具了。

ChaosBlade 是阿里巴巴开源的一款遵循混沌工程原理和混沌实验模型的实验注入工具,帮助企业提升分布式系统的容错能力,并且在企业上云或往云原生系统迁移过程中业务连续性保障。

chaosblade 目前可以针对基础资源,docker容器,云原生平台等进行实验演练,这是目前大家所知道的优点和特性。但是我们如何通过混沌平台演练实施场景,去观察到对应的容器执行的cpu或者内存等指标,实现对应的告警通知呢,这是我们需要思考的问题,也是我们需要去解决的问题。

因为在混沌工程中,我们不仅需要知道能制造什么样的故障,而且还需要知道故障是在什么时候恢复的,通过对故障的执行过程的指标观察,然后通知负责人,进行快速响应和恢复,这应该是SRE最关心的问题。总结来说就是知道什么故障,哪里故障,什么时候恢复故障了。

混沌实验可观测示例

这里我们需要一个可观测性指标的平台,目前通用的大家可能是使用各类时序库,比如 Prometheus、VictoriaMetrics、Thanos,直接作为数据源对接进来即可。

这里我们使用了夜莺系统,这套系统的图表结合配置告警。

目前系统支持的告警比较全面,包括钉钉,企业微信,飞书,mm,telegram,email,电话等等。

在这里插入图片描述

混沌工程与可观测性平台

当我们进行混沌平台演练cpu服务的时候如:

在这里插入图片描述
这样我们就可以通过观察服务器演练的实际情况:

在这里插入图片描述

告警与恢复机制

我们可以清晰看到在这个演练实验情况下服务器内的cpu,以及其他的系统指标,通过不同的系统指标我们可以设置不同的阈值告警。

这里我们可以采集设置cpu的阈值超过60%时候我们可以实现告警通知服务器目前cpu使用率过高,来实现钉钉告警。

在这里插入图片描述

这里我们通过查看钉钉告警可以查看到我们的服务器出现了cpu告警:
在这里插入图片描述

当服务器性能恢复的时候我们又可以看到整个服务出现了恢复:

在这里插入图片描述

通过我们在服务上演练实验对象,采集实验数据,显示在实验dashboard,达到告警阈值,实现告警,小于告警阈值,服务恢复稳定。

混沌工程的未来发展

目前混沌工程和可观测性是两个在构建稳定且高效系统时密切相关的概念。它们可以相互支持,以提高系统的可靠性和性能,这样就可以把混沌和可观测性结合在一起:

  1. 实时监控与度量: 可观测性旨在实时监控系统的各个方面,例如性能、资源利用率、错误率等。混沌工程可以在运行时引入故障并监视系统的反应。将混沌实验的结果与实时监控数据结合,可以更好地了解系统在面对异常情况时的行为。

  2. 告警和警报: 可观测性解决方案常常涉及告警和警报,以便在系统出现异常时及时采取措施。通过在混沌实验中引入故障并监测系统的警报响应,团队可以评估警报系统的有效性,并确保在系统受到冲击时能够迅速做出反应。

  3. 追踪与日志:在混沌工程实验中,通过追踪定位和日志记录可以帮助分析故障的影响范围和传播路径。

  4. 异常检测与分析: 可观测性技术可以帮助识别系统中的异常行为和性能问题。将混沌实验引入到系统中,可以模拟各种异常情况,从而加速异常检测和分析过程,帮助团队更好地理解系统的行为。

  5. 自动化响应: 结合可观测性和混沌工程,团队可以实现自动化响应机制。基于实时监控数据和混沌实验结果,系统可以自动触发响应操作,以最小化故障对系统的影响。

通过将混沌工程和可观测性相结合,团队可以更好地了解系统在不同情况下的行为,提高对系统健康状况的洞察力,并采取相应的措施来确保系统的可用性和稳定性。这种综合方法有助于在不断变化的环境中构建出弹性和可靠的系统。

随着混沌工程应用和场景演练的覆盖范围更广,模拟场景实施更多,混沌工程和可观测性技术还将持续地发展与演进。

标签:工程,解锁,混沌,系统,故障,自愈,实验,告警
From: https://blog.csdn.net/qq_40477248/article/details/143357517

相关文章

  • 海外学子如何玩转反向代购,解锁财富密码!
    在当今全球化的浪潮中,中国留学生的足迹遍布世界的每一个角落,他们不仅是文化的传播者,也逐渐成为连接中外经济与文化的桥梁。其中,反向代购这一新兴商业模式,正为众多海外留学生提供了一个展现智慧与能力的舞台,让他们能够在异国他乡发挥独特优势,实现个人价值与社会贡献的双重飞跃。......
  • 手把手教你部署Apache DolphinScheduler —— 钉钉告警
    在之前的文章中,我们已经介绍了ApacheDolphinScheduler海豚调度的基本概念和工作流程,以及Shell任务和SQL任务的实践。感兴趣的朋友可以下滑到最下面,点击感兴趣的文章阅读!今天,让我们来学习ApacheDolphinScheduler中的另一个重要功能:钉钉告警。钉钉群添加机器人在钉钉群添加机器......
  • 《钢之崛起》三十项风灵月影修改器全面教程:解锁高难度通关技巧
    《钢之崛起》(Steelrising)是一款动作角色扮演游戏,设定在法国大革命的替代历史中。如果你希望使用风灵月影版修改器来解锁高难度通关技巧或增强游戏体验,下面是一份全面的教程。请注意,使用修改器可能会影响游戏的乐趣和挑战性,并且在多人模式下使用可能会违反服务条款。风灵月影......
  • 运维监控丨16条常用的Kafka看板监控配置与告警规则
    本期我们针对企业运维监控的场景,介绍一些监控配置和告警规则。可以根据Kafka集群和业务的具体要求,灵活调整和扩展这些监控配置及告警规则。在实际应用场景中,需要综合运用多种监控工具(例如Prometheus、Grafana、Zabbix等)和告警机制,以保障Kafka集群的稳定性和可靠性。此外,定期审核并......
  • Python 的魔法搜索:如何用代码解锁淘宝商品关键字的神秘力量
    在淘宝这个充满奇迹的电商王国里,每一个商品关键字都像是一把古老的钥匙,能够解锁隐藏在茫茫商品海洋中的宝藏。今天,我们要讲述的是如何成为一名Python魔法师,用你的代码魔杖,施展搜索魔法,按关键字精准搜索商品,并获取它们的API数据。准备你的魔法工具箱:Python开发环境在这场......
  • 《 C++ 修炼全景指南:十七 》彻底攻克图论!轻松解锁最短路径、生成树与高效图算法
    摘要1、引言1.1、什么是图?图(Graph)是计算机科学和离散数学中一种重要的数据结构,用来表示一组对象之间的关系。一个图由顶点(也称为节点,Vertex)和边(Edge)组成。顶点表示实体,而边则表示实体之间的关联或连接关系。根据边的性质,图可以分为无向图和有向图。在无向图中,边没有方向......
  • C++ 模板编程:解锁高效编程的神秘密码
     快来参与讨论......
  • MT管理器永久解锁版 不需要登录/安装即可使用
    [应用名称]应用名称:MT管理器[应用版本]应用版本:2.145[应用大小]应用大小:22.5m[适用平台]适用平台:安卓[应用简介]MT管理器是一款功能全面、操作渐变、用户体验优秀的文件管理和apk逆向修改工具。[应用截图] [免费下载链接]下载链接https://download.csdn.net/do......
  • 解锁未来:RFID技术在BD数字化装备车场的运用
        原始的车库管理系统依赖于人工操作,导致效率极低,尤其在执行任务的高峰时段或其他紧急状况下,车库内外常常出现交通拥堵问题。进入2023年,我国陆续颁布了《交通强国建设纲要》和《数字中国建设整体布局规划》等重要文件,大数据、云计算和物联网技术的迅猛发展为BD车库的......
  • 解锁NLP新境界:免费语料库资源大揭秘!
     欢迎关注我......