避免警报疲劳:每个 K8s 工程团队的 8 个技巧
避免警报疲劳:每个 K8s 工程团队的 8 个技巧
监控 Kubernetes 集群并不容易,警报疲劳通常是一个问题。阅读这篇文章,了解减少警报疲劳的有用提示。
如果您是随叫随到团队的一员,您可能知道什么是警觉性疲劳以及它对您的健康有何影响。而当涉及到Kubernetes时,警报源的数量会迅速飙升。本文将反思一些引起警报疲劳的常见原因,并分享有助于减少它的技巧。
什么是警觉性疲劳?
简单来说,当您在一天内收到大量与工作相关的警报时,就会发生警报疲劳,即使它们是不可操作的。不合理的大量警报会降低您的工作效率,因为您会从工作中抽出太多时间来不时确认警报。
如果您在工作时间之外收到此类警报,它们将开始扰乱您的工作与生活平衡。为了建立一个高效和快乐的团队,关键是要减少不必要的警报,并专注于提供价值和可操作的内容。
如何减少警报疲劳
让我们讨论一些实用的技巧和技巧,以减少您和您的团队成员的警觉疲劳。
提示 #1:明确定义您的指标和阈值
解决任何问题的第一步是清楚地定义它。在我们的例子中,警报的原因是指标上的阈值;因此,为它们确定正确的指标和适当的阈值至关重要。对于基于 Kubernetes 的项目,您需要超越标准的指标集。您应该监控 Pod 的生命周期以及节点和集群的单个资源消耗,以保持对系统的控制。
当涉及到标准指标时,您应该设置额外的阈值和警报,以了解何时出现异常行为。例如,您可以设置多个磁盘使用警告警报并根据严重性对它们进行分类,以了解何时介入并检查您的系统是否存在问题。同样,您可以使用其他指标,例如CPU 消耗、内存消耗等。
提示 #2:根据严重性定义警报层次和优先级
从大量数据中获取有用信息的最佳方法之一是对其进行组织。同样,您应该将警报组织成类别并根据它们修改警报行为。
首先,您可以根据系统事件对服务正常运行时间的影响,将系统事件分为严重、警告和异常类别。然后,您可以将警报工具配置为仅针对关键事件发送警报。这样,您将减少团队收到的警报总数,并且每个警报都要求他们采取行动,而不是简单地予以确认。您还可以为每个事件类别分配不同的团队,以密切关注系统。
提示 #3:将类似的警报组合在一起
虽然对事件进行分类有助于组织警报,但它仍然不能解决一个主要问题:重复。您可能会收到系统中重复发生的事件的重复警报。或者,您可能会收到针对已解决问题的重复警报,因为您的警报工具不够智能。唯一的解决方案是切换到智能监控解决方案,在团队和成员之间可靠地同步警报。
对于源自重复事件的重复警报,您还可以考虑应用过滤器和规则将类似的警报组合在一起。您可以依靠事件提供的信息来确定它们是否重复发生。这样,您可以针对许多类似问题发出更少的警报,并且您的成员可以在需要时通过监控平台访问所有其他警报。
提示 #4:尽可能多地收集有关警报的上下文数据
要增强警报分类和聚合,您需要数据。因此,您应该集中精力收集有关系统中发生的事件的尽可能多的信息。此信息将帮助您区分重复事件,并帮助您确定外观相似的事件是否需要特别注意。除了提高警报策略的质量外,它还可以在以后解决问题时为您提供帮助。
提示 #5:在您的团队中定义明确的角色并相应地直接发出警报
只有当您对您的团队执行相同操作时,对警报进行分类才有效。每当您的基础设施遇到警告时,向整个团队发送警报是没有意义的。您需要设计一个事件管理层次结构,并使您的警报工具与其保持一致,以逻辑地升级问题。
如前所述,您可以将错误类别与团队进行匹配,或者根据错误源自的基础架构部分将错误与团队进行匹配。只有您才能确定哪种层次结构最适合您的特定用例。
提示 #6:断开与不相关的警报来源的连接
这适用于每个人,您的所有团队成员都应遵守。团队在多个项目上工作并且其中一些项目被转移到另一个团队或完全退役是很自然的。但是,这些项目的警报订阅可能没有及时更新,从而导致不时向您发送不相关的警报。确保尽快取消订阅,以减少警报噪音。
对于仍分配给您的项目,可能会将问题分配给其他团队成员,但会向整个团队发送警报。为了清理您的警报收件箱,最好也尽快取消订阅。
提示 #7:抑制非工作时间以外的非紧急警报
警报疲劳不仅仅发生在工作时间;它也会让你在他们之外感到沮丧。理想情况下,您的团队应该选择一种警报工具,该工具允许在设定的持续时间内抑制和推迟警报。如果该工具可以根据警报分类(发送关键警报并推迟其他警报)来做到这一点,那就更好了。这将帮助您在工作场所之外保持健康的心理生活方式。
如果抑制警报对您来说太过分了,您可以考虑将它们委派给在您离开时处于活动状态的另一个团队成员。大多数随叫随到的团队成员分散在世界各地,以保持 24x7 全天候监视系统运行状况。将警报转移给活跃成员有助于其他人在不工作时放松。
提示 #8:在重大中断时,取消所有警报以专注于恢复
如果您大部分事情都做对了,并且您的警报游戏是正确的,您可以考虑在努力从重大中断中恢复的同时抑制所有警报。在发生重大事件时,许多基础设施组件可能会出现故障并立即向您发送大量警报。一旦找到了中断的原因,就可以抑制其他一切并专注于修复它。
但是,您仍有可能错过中断期间发生的其他重要警报。因此,最好将您的警报转发给不与您一起进行修复的其他团队成员。
结论
警报疲劳是真实存在的,如果不及时检查,它会迅速影响您的健康和工作效率。因此,您应该始终选择一种工具,以减少不必要的警报噪音,同时让您了解应用程序的最新基本更新。将有效的工具与有效的警报策略相结合将提高您团队的输出,同时保持健康。
避免警报疲劳:每个 K8s 工程团队的 8 个技巧的更多相关文章
- 从 Notion 分片 Postgres 中吸取的教训(Notion 工程团队)
https://www.notion.so/blog/sharding-postgres-at-notion 今年(2021)早些时候,我们对 Notion 进行了五分钟的定期维护. 虽然我们的声明指 ...
- 研发效能|DevOps 已死平台工程永存带来的焦虑
最近某位大神在推特上发了一个帖子,结果引来了国内众多卖课机构.培训机构的狂欢,开始贩卖焦虑,其实「平台工程」也不是什么特别高深莫测的东西.闲得无聊,把这位大神的几个帖子薅了下来,你看过之后就会觉得没啥 ...
- 团队第1次作业:Our Team TAH
Team named TAH 不管一个人多么有才能,但是集体常常比他更聪明和更有力. --奥斯特洛夫斯基 *introduce team and teamate 先说说TAH的含义,是 ...
- k8s operator
https://coreos.com/blog/introducing-operators.html Site Reliability Engineer(SRE)是通过编写软件来运行应用程序的人员. ...
- 专访知乎张伟:RFC技术评审机制如何助力知乎实现工程文化落地
2017年5月20-21日,MPD工作坊·上海站将于上海徐汇区光大会展中心举办,本届MPD工作坊请到了知乎工程高级总监张伟进行主题为<工程师文化落地6项指南>的3小时深度分享.在工作坊举办 ...
- 从工程文化和运维理念理解Netflix
http://www.infoq.com/cn/news/2018/01/netflix-engineering-culture 在技术圈儿,Netflix 是一家非常有特色的互联网公司.他们信奉“自 ...
- [转]资深CTO:关于技术团队打造与管理的10问10答
一.你如何衡量软件工程师个人的工作表现?如何衡量整个工程师团队的工作表现? 主要从两方面: 这个员工做的工作是不是他同意做的或者应该做的?(What) 他们是如何完成自己的工作的?(How) 任何绩效 ...
- 没有CTO的Netflix有哪些值得我们学习的工程文化?
作者介绍: 杨波,拍拍贷基础框架研发总监.具有超过 10 年的互联网分布式系统研发和架构经验,曾先后就职于:eBay 中国研发中心(eBay CDC),任资深研发工程师,参与亿贝开放 API 平台研发 ...
- 基于 K8S 构建数据中心操作系统
在 12 月 22 日 ECUG 的下午场 ,七牛云容器计算部技术总监袁晓沛为大家带来了主题为<基于 K8S 的 DCOS 之路>的精彩分享,向大家介绍了七牛容器云目前 K8S 的状况和产 ...
随机推荐
- Go语言核心36讲(Go语言实战与应用四)--学习笔记
26 | sync.Mutex与sync.RWMutex 从本篇文章开始,我们将一起探讨 Go 语言自带标准库中一些比较核心的代码包.这会涉及这些代码包的标准用法.使用禁忌.背后原理以及周边的知识. ...
- Mac下查看 Java 安装目录位置和安装数量
/usr/libexec/java_home -V 第一个红框是安装数量, 第二个红框是目前正在使用的 JDK 版本位置
- 『学了就忘』Linux软件包管理 — 42、对RPM软件包的查询操作
目录 1.查询RPM软件包是否安装 2.查询系统中所有已安装的RPM软件包 3.查询RPM软件包的详细信息 4.查询RPM软件包中的文件列表 5.查询系统文件属于哪个RPM包 6.查询RPM软件包所依 ...
- Json数据使用及学习方法
以前对json的了解并不是很清楚,因为使用很少,所以也没有特意的研究.只知道json是轻量级的数据交换格式,可以被多种语言方便的处理,也是大型门户站接口使用的主要数据格式. 而最近做了个项目,涉及到j ...
- 生产者消费者模型及Golang简单实现
简介:介绍生产者消费者模型,及go简单实现的demo. 一.生产者消费者模型 生产者消费者模型:某个模块(函数等〉负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类.函数.协程 ...
- 单元测试NUnit,mock组件NSubstitute,信号量SemaphoreSlim,异步lock等例子
public class LockTest { private IDatabase _database; private readonly Random _random = new Random(); ...
- [bzoj1052]覆盖问题
先二分答案,容易发现一定有一个正方形覆盖在角上(即有两条边在最X的地方),否则4个最X的点一定无法覆盖,然后暴力确定即可 1 #include<bits/stdc++.h> 2 using ...
- freeswitch APR库哈希表
概述 freeswitch的核心源代码是基于apr库开发的,在不同的系统上有很好的移植性. 哈希表在开发中应用的非常广泛,主要场景是对查询效率要求较高的逻辑,是典型的空间换时间的数据结构实现. 大多数 ...
- Mysql-单个left join 计算逻辑(一对多问题)
BUG背景: 我们有一个订单表 和 一个 物流表 它们通过 订单ID 进行一对一的关系绑定.但是由于物流表在保存订单信息的时候没有做判断该订单是否已经有物流信息,这就变成同一个订单id在物流表中存在多 ...
- hadoop基础题
转自:http://blog.csdn.net/pelick/article/details/8299482 //Hadoop基础 Doug Cutting所创立的项目的名称都受到其家人的启发,以下项 ...