避免警报疲劳:每个 K8s 工程团队的 8 个技巧

监控 Kubernetes 集群并不容易,警报疲劳通常是一个问题。阅读这篇文章,了解减少警报疲劳的有用提示。

如果您是随叫随到团队的一员,您可能知道什么是警觉性疲劳以及它对您的健康有何影响。而当涉及到Kubernetes时,警报源的数量会迅速飙升。本文将反思一些引起警报疲劳的常见原因,并分享有助于减少它的技巧。

什么是警觉性疲劳?

简单来说,当您在一天内收到大量与工作相关的警报时,就会发生警报疲劳,即使它们是不可操作的。不合理的大量警报会降低您的工作效率,因为您会从工作中抽出太多时间来不时确认警报。

如果您在工作时间之外收到此类警报,它们将开始扰乱您的工作与生活平衡。为了建立一个高效和快乐的团队,关键是要减少不必要的警报,并专注于提供价值和可操作的内容。

如何减少警报疲劳

让我们讨论一些实用的技巧和技巧,以减少您和您的团队成员的警觉疲劳。

提示 #1:明确定义您的指标和阈值

解决任何问题的第一步是清楚地定义它。在我们的例子中,警报的原因是指标上的阈值;因此,为它们确定正确的指标和适当的阈值至关重要。对于基于 Kubernetes 的项目,您需要超越标准的指标集。您应该监控 Pod 的生命周期以及节点和集群的单个资源消耗,以保持对系统的控制。

当涉及到标准指标时,您应该设置额外的阈值和警报,以了解何时出现异常行为。例如,您可以设置多个磁盘使用警告警报并根据严重性对它们进行分类,以了解何时介入并检查您的系统是否存在问题。同样,您可以使用其他指标,例如CPU 消耗、内存消耗等。

提示 #2:根据严重性定义警报层次和优先级

从大量数据中获取有用信息的最佳方法之一是对其进行组织。同样,您应该将警报组织成类别并根据它们修改警报行为。

首先,您可以根据系统事件对服务正常运行时间的影响,将系统事件分为严重、警告和异常类别。然后,您可以将警报工具配置为仅针对关键事件发送警报。这样,您将减少团队收到的警报总数,并且每个警报都要求他们采取行动,而不是简单地予以确认。您还可以为每个事件类别分配不同的团队,以密切关注系统。

提示 #3:将类似的警报组合在一起

虽然对事件进行分类有助于组织警报,但它仍然不能解决一个主要问题:重复。您可能会收到系统中重复发生的事件的重复警报。或者,您可能会收到针对已解决问题的重复警报,因为您的警报工具不够智能。唯一的解决方案是切换到智能监控解决方案,在团队和成员之间可靠地同步警报。

对于源自重复事件的重复警报,您还可以考虑应用过滤器和规则将类似的警报组合在一起。您可以依靠事件提供的信息来确定它们是否重复发生。这样,您可以针对许多类似问题发出更少的警报,并且您的成员可以在需要时通过监控平台访问所有其他警报。

提示 #4:尽可能多地收集有关警报的上下文数据

要增强警报分类和聚合,您需要数据。因此,您应该集中精力收集有关系统中发生的事件的尽可能多的信息。此信息将帮助您区分重复事件,并帮助您确定外观相似的事件是否需要特别注意。除了提高警报策略的质量外,它还可以在以后解决问题时为您提供帮助。

提示 #5:在您的团队中定义明确的角色并相应地直接发出警报

只有当您对您的团队执行相同操作时,对警报进行分类才有效。每当您的基础设施遇到警告时,向整个团队发送警报是没有意义的。您需要设计一个事件管理层次结构,并使您的警报工具与其保持一致,以逻辑地升级问题。

如前所述,您可以将错误类别与团队进行匹配,或者根据错误源自的基础架构部分将错误与团队进行匹配。只有您才能确定哪种层次结构最适合您的特定用例。

提示 #6:断开与不相关的警报来源的连接

这适用于每个人,您的所有团队成员都应遵守。团队在多个项目上工作并且其中一些项目被转移到另一个团队或完全退役是很自然的。但是,这些项目的警报订阅可能没有及时更新,从而导致不时向您发送不相关的警报。确保尽快取消订阅,以减少警报噪音。

对于仍分配给您的项目,可能会将问题分配给其他团队成员,但会向整个团队发送警报。为了清理您的警报收件箱,最好也尽快取消订阅。

提示 #7:抑制非工作时间以外的非紧急警报

警报疲劳不仅仅发生在工作时间;它也会让你在他们之外感到沮丧。理想情况下,您的团队应该选择一种警报工具,该工具允许在设定的持续时间内抑制和推迟警报。如果该工具可以根据警报分类(发送关键警报并推迟其他警报)来做到这一点,那就更好了。这将帮助您在工作场所之外保持健康的心理生活方式。

如果抑制警报对您来说太过分了,您可以考虑将它们委派给在您离开时处于活动状态的另一个团队成员。大多数随叫随到的团队成员分散在世界各地,以保持 24x7 全天候监视系统运行状况。将警报转移给活跃成员有助于其他人在不工作时放松。

提示 #8:在重大中断时,取消所有警报以专注于恢复

如果您大部分事情都做对了,并且您的警报游戏是正确的,您可以考虑在努力从重大中断中恢复的同时抑制所有警报。在发生重大事件时,许多基础设施组件可能会出现故障并立即向您发送大量警报。一旦找到了中断的原因,就可以抑制其他一切并专注于修复它。

但是,您仍有可能错过中断期间发生的其他重要警报。因此,最好将您的警报转发给不与您一起进行修复的其他团队成员。

结论

警报疲劳是真实存在的,如果不及时检查,它会迅速影响您的健康和工作效率。因此,您应该始终选择一种工具,以减少不必要的警报噪音,同时让您了解应用程序的最新基本更新。将有效的工具与有效的警报策略相结合将提高您团队的输出,同时保持健康。

原文

避免警报疲劳:每个 K8s 工程团队的 8 个技巧的更多相关文章

  1. 从 Notion 分片 Postgres 中吸取的教训(Notion 工程团队)

    https://www.notion.so/blog/sharding-postgres-at-notion 今年(2021)早些时候,我们对 Notion 进行了五分钟的定期维护. 虽然我们的声明指 ...

  2. 研发效能|DevOps 已死平台工程永存带来的焦虑

    最近某位大神在推特上发了一个帖子,结果引来了国内众多卖课机构.培训机构的狂欢,开始贩卖焦虑,其实「平台工程」也不是什么特别高深莫测的东西.闲得无聊,把这位大神的几个帖子薅了下来,你看过之后就会觉得没啥 ...

  3. 团队第1次作业:Our Team TAH

     Team named TAH    不管一个人多么有才能,但是集体常常比他更聪明和更有力. --奥斯特洛夫斯基     *introduce team and teamate 先说说TAH的含义,是 ...

  4. k8s operator

    https://coreos.com/blog/introducing-operators.html Site Reliability Engineer(SRE)是通过编写软件来运行应用程序的人员. ...

  5. 专访知乎张伟:RFC技术评审机制如何助力知乎实现工程文化落地

    2017年5月20-21日,MPD工作坊·上海站将于上海徐汇区光大会展中心举办,本届MPD工作坊请到了知乎工程高级总监张伟进行主题为<工程师文化落地6项指南>的3小时深度分享.在工作坊举办 ...

  6. 从工程文化和运维理念理解Netflix

    http://www.infoq.com/cn/news/2018/01/netflix-engineering-culture 在技术圈儿,Netflix 是一家非常有特色的互联网公司.他们信奉“自 ...

  7. [转]资深CTO:关于技术团队打造与管理的10问10答

    一.你如何衡量软件工程师个人的工作表现?如何衡量整个工程师团队的工作表现? 主要从两方面: 这个员工做的工作是不是他同意做的或者应该做的?(What) 他们是如何完成自己的工作的?(How) 任何绩效 ...

  8. 没有CTO的Netflix有哪些值得我们学习的工程文化?

    作者介绍: 杨波,拍拍贷基础框架研发总监.具有超过 10 年的互联网分布式系统研发和架构经验,曾先后就职于:eBay 中国研发中心(eBay CDC),任资深研发工程师,参与亿贝开放 API 平台研发 ...

  9. 基于 K8S 构建数据中心操作系统

    在 12 月 22 日 ECUG 的下午场 ,七牛云容器计算部技术总监袁晓沛为大家带来了主题为<基于 K8S 的 DCOS 之路>的精彩分享,向大家介绍了七牛容器云目前 K8S 的状况和产 ...

随机推荐

  1. java框架面试高频问题(SpringMVC)

    1.SpringMVC是什么? 请说出你对它的理解? SpringMVC是Spring将Web层基于MVC封装后的框架. 在没有SpringMVC之前,Web层的Servlet负责的事情很多,很杂.  ...

  2. 【JVM】JVM 概述、内存结构、溢出、调优(基础结构+StringTable+Unsafe+ByteBuffer)

    什么是 JVM ? 定义 Java Virtual Machine - java 程序的运行环境(java 二进制字节码的运行环境) 好处 一次编写,到处运行 自动内存管理,垃圾回收功能 数组下标越界 ...

  3. Typora常用操作

    Typora常用操作 目录 Typora常用操作 1. 标题 2.子标题 3. 区块 4.代码 5. 表格 6. 超链接 7.单选框 8.数学公式 9.流程图 10.生成目录 11.字体设置 12. ...

  4. [cf1392H]ZS Shuffles Cards

    考虑统计每一轮(以抽到小丑为一轮)的贡献,不难发现答案即期望轮数*每轮期望次数 关于期望轮数,当前牌堆里已经在$S$中的卡实际上没有意义,不妨将这一类卡从牌堆中删除 此时,定义$f_{i}$表示$S$ ...

  5. C#动态创建接口的实现实例对象

    本文简单介绍如何动态创建接口interface的实现实例对象,包含两个知识点: 1.如何获取接口interface的所有实现实例对象? 2.如何判断实例对象的构造函数是否有参数? 准备工作 首先新建一 ...

  6. springboot静态工具类bean的注入

    工具类中调用数据.但是由于工具类方法一般都写成static,所以直接注入就存在问题. 所以写成了这样: package com.rm.framework.core; import org.spring ...

  7. Codeforces 575A - Fibonotci

    题面传送门 题意: 给出 \(s_0,s_1,s_2,\dots,s_{n-1}\),对于 \(i\geq n\),有 \(m\) 个 \(s_i\) 满足 \(s_i\neq s_{i\bmod n ...

  8. Neville 插值方法

    简介 wikipedia: Neville's method 在数学上,Neville 算法是一种计算插值多项式方法,由数学家Eric Harold Neville提出.由给定的n+1个节点,存在一个 ...

  9. 解决Gitlab的The remote end hung up unexpectedly错误,解决RPC failed; HTTP 413 curl 22 The requested URL returned error: 413 Request Entity Too Large问题

    解决Gitlab的The remote end hung up unexpectedly错误 解决RPC failed; HTTP 413 curl 22 The requested URL retu ...

  10. 【GS文献】基因组选择在植物分子育种应用的最新综述(2020)

    目录 1. 简介 2. BLUP类模型 3. Bayesian类模型 4. 机器学习 5. GWAS辅助的GS 6. 杂交育种 7. 多性状 8. 长期选择 9. 预测准确性评估 10. GS到植物育 ...