运维监控领域你不得不知道的黑话-下篇

作者:Tshb

引言

书接上回:《运维监控领域你不得不知道的黑话-中篇》。

在上一讲中,我们对监控系统中的四种指标类型进行了详细的阐述。不同类型的指标可以提供不同维度的系统信息,通过对比不同类型的指标,可以让我们更清晰地了解系统的整体健康状况和性能趋势,从而实现更精确的系统监控。

除了监控指标的收集、分析及展示外,监控系统还有另一个关键部分,那就是异常告警

今天就让我们一起探讨告警部分相关的一些关键概念,如告警收敛、告警静默、告警闭环以及告警自愈等。同样,为了便于大家理解,在讨论这些监控概念时,我会以 Mapmost Alpha(空间场景轻应用创作平台)为例,介绍各个概念在实际应用中的表现形式。

告警收敛

在复杂的系统中,一个单一的基础设施层面的故障,就可能导致成百上千的告警。比如出现基础网络问题时,系统可能会产生主机节点不可达告警、服务或应用程序连接超时告警等一系列告警事件,形成告警风暴。

这样不仅会导致接收告警的媒介拥塞,比如手机不停接收到短信和电话呼入,没办法使用,还会导致运维团队可能会被大量的告警淹没,难以快速识别问题的核心,拖慢故障修复的速度。

这个时候,我们就要想办法让告警事件变少,用的方法就是告警收敛。告警收敛的典型手段一个是告警聚合,另一个是告警抑制。

告警聚合

告警聚合是指将短时间触发的多个相似或有一定关联的告警聚合成一个单一的告警发送。聚合可以采用不同的维度,比如时间维度、策略维度、监控对象维度等等。

下面我们来举一个 Mapmost Alpha 平台中告警聚合的实例。

在虚拟化平台进行数据备份活动时通常需要进行大量的磁盘 I/O 操作,占用磁盘带宽,导致其上运行的 Mapmost Alpha 虚拟主机节点同时出现 I/O 读写延迟增大的现象,进而产生大量的 IO 相关告警。此时就可以以告警事件类型为维度,配置告警聚合,减少告警事件:

Mapmost Alpha 平台告警聚合示例,来源:@Tshb

可见配置了告警聚合后,不同主机的告警事件聚合为了单一告警,由此实现了告警收敛。

告警抑制

告警抑制指根据某些预定义的规则暂时隐藏或不显示告警。

我们来看一下 Alertmanager 中默认告警抑制规则配置:

inhibit_rules:- source_match:severity: 'critical'target_match:severity: 'warning'equal: ['alertname', 'dev', 'instance']

上述配置表示,同时存在 criticalwarning 级别的告警,且两个告警的 alertnamedevinstance 标签均相等时,warning 级别的告警会被抑制,不会触发告警通知。

如将主机宕机定义为 critical 级别,将服务不可达定义为 warning,此时若主机宕机,则只会触发宕机告警,不再触发服务不可达告警,从而实现告警收敛。

告警静默

在上述 Mapmost Alpha 平台的实际应用示例中,虽然我们通过告警聚合的手段,有效减少了告警通知的数量,但我们仍然会收到少量告警通知。而这些告警事件实际上是不需要我们去处理的,所以这些告警通知并没有意义。这时就引入了告警静默的方法。

告警静默指通过预定义静默窗口,在这段时间内,系统的告警通知将被暂停。其通常由用户手动设置,用于在已知的维护事件或已知的问题被解决的过程中防止不必要的告警通知干扰。

假设虚拟化平台数据备份的时间为凌晨 1:00~1:30,就可以针对 I/O 延迟告警,在 Alertmanager 中配置下述的告警静默:

Mapmost Alpha 平台告警静默示例,来源:@Tshb

需注意的是,Alertmanager 并不支持周期性的告警静默,所以想实现每天 1:00~1:30 的告警静默,还需我们编写简单脚本,调用 Alertmanager API 并配置计划任务实现。脚本简单示例如下:

#! /bin/bashcurl -X POST -H "Content-Type: application/json" -d '{"matchers": [{"name": "alertname","value": "HostUnusualDiskWriteLatency"}],"startsAt": "'$(TZ=UTC date -d 'TZ="Asia/Shanghai" +1 days 1:00' '+%Y-%m-%dT%H:%M:%SZ')'","endsAt": "'$(TZ=UTC date -d 'TZ="Asia/Shanghai" +1 days 1:30' '+%Y-%m-%dT%H:%M:%SZ')'","createdBy": "automation","comment": "Silence HostUnusualDiskWriteLatency alerts between 1:00 and 1:30"
}' http://127.0.0.1:9093/api/v1/silences

告警闭环

告警闭环是指从告警的发生、通知、处理到问题解决的完整流程。一个有效的闭环系统不仅会发送告警,并且会跟踪告警状态,直到问题被确认并解决。在故障解决后,相关告警会被自动或手动关闭,以防止重复处理。

实现告警闭环的手段有很多,在 Mapmost Alpha 平台的闭环流程中,主要包括下述几个手段:

1.告警排班

制定值班表,每日轮班的人是当天的第一责任人。责任到人更容易推进问题解决,而其他人也可以心无旁骛地进行一些长线工作。
责任人不一定要处理每一个的告警事件,但需要保证每一个告警事件都有人处理,并了解每一个告警事件的处理进展,避免告警事件的遗漏或重复处理。

2.制定告警升级机制

在告警事件没有被及时认领,或处理时间较长时,将告警事件进行升级,组织更多的相关人员或专家进行协同处理。

3.总结与优化

解决问题后,需要验证措施的有效性并确保问题已被解决。此外,对告警事件进行回顾,从中学习以改进未来的响应和预防措施,并整理完善告警预案。

告警自愈

告警自愈是指系统在检测到问题并发出告警后,能够自动执行一系列的动作以尝试解决问题。

目前比较典型的方法是配置 Webhook,当告警触发之后自动回调某个 HTTP 接口,来串联一些自动化的逻辑,让告警事件无人值守自动处理。如当磁盘使用率超过 80% 后,调用 HTTP 接口清理无用的日志。

但由于生产环境中遇到的故障往往都是较为复杂的,不会总是清理日志这么简单,这就造成自动化逻辑较难编写的问题。

所以我们不妨换一个角度思考,告警自动处理的这段逻辑,未必一定要做到告警自愈,有时只是使用这个机制来抓现场,也是非常有价值的。比如某个主机节点发生 OOM 时,获取机器的一些运行情况如资源占用情况、系统日志信息等等,节省手动登录机器查看信息的时间,从而提高问题处理的效率。

小结

本文书接上回:运维监控领域你不得不知道的黑话-中篇》,对监控系统中告警相关的概念进行了详细的阐述,并以 Mapmost Alpha(空间场景轻应用创作平台)系统为例,介绍了这些指标类型在实际应用中的具体表现形式及效果。

作为一个数字孪生应用创作工具,Mapmost Alpha 平台的稳定性对于用户至关重要。平台通过灵活运用各种监控指标,如系统负载和请求响应时间等,实时监控服务的状态,确保能够及时发现并解决潜在的问题。此外,Mapmost Alpha 平台具有高效的告警系统,其不仅能够及时将异常通知到运维团队,还能够通过自动化流程实现告警的快速收敛和闭环处理。

最后,将本文重点总结如下,感谢大家的阅读~

监控领域关键概念小结,来源:@Tshb

参考资料:

  1. 02|基本概念:监控圈子有哪些行业黑话?-运维监控系统实战笔记-极客时间
  2. Mapmost官网

 关注Mapmost,持续更新GIS、三维美术、计算机技术干货

Mapmost是一套以三维地图和时空计算为特色的数字孪生底座平台,包含了空间数据管理工具(Studio)、应用开发工具(SDK)、应用创作工具(Alpha)。平台能力已覆盖城市时空数据的集成、多源数据资源的发布管理,以及数字孪生应用开发工具链,满足企业开发者用户快速搭建数字孪生场景的切实需求,助力实现行业领先。

欢迎进入官网体验使用:Mapmost——让人与机器联合创作成为新常态

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/343054.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软硬件集成项目,这个项目管理软件做的成本预算管理深得我心

最近,我负责了一个中大型的软硬件集成的项目,是对某单位的车间进行智能化改造,以提高生产效率,要确保设备运行的稳定性和安全性。项目会涉及到大量的硬件采购、安装以及多个软件的开发、集成,所以在实施过程中遇到了多…

vue 如何制作一个跟随窗口大小变化而变化的组件

vue 如何制作一个跟随窗口大小变化而变化的组件 像下图中展示的那些统计数件就是跟随窗口变化而变化的,而且是几乎等比缩放的。 实现原理 只简略说一下原理。 pinia 中记录一个窗口变化的高度值给要变化的组件添加一个高度值组件内部所有关于长度距离的值都通过这…

(uniapp)简单带动画的tab切换效果

效果图 代码 <template><view class"tabBox"><view :style"{transform: translateX(${translateX})}" class"whiteBox"></view><view click"changeTab(k)" class"itemBox" v-for"(v,k) in…

分享一个 .Net core Console 项目使用 SqlSugar 的详细例子

前言 SqlSugar 是一款老牌的 .NET 开源 ORM 框架&#xff0c;性能高&#xff0c;功能全面&#xff0c;使用简单&#xff0c;支持 .NET FrameWork、.NET Core3.1、.NET5、.NET6、.NET7、.NET8、.NET9 等版本&#xff0c;线上论坛非常活跃&#xff0c;今天给大伙分享一个 .Net c…

Web3的应用场景分析

Web3&#xff0c;即基于区块链技术的去中心化互联网&#xff0c;正逐渐改变我们与数字世界的互动方式。以下是Web3的一些主要应用场景。Web3技术正在各个领域推动创新&#xff0c;创造更多透明、开放和去中心化的解决方案&#xff0c;为用户带来更高的自主权和安全性。北京木奇…

【全开源】同城招聘SAAS信息前程无忧直聘达小程序

招聘SAAS&#xff1a;数字化转型中的招聘新助力 基于ThinkPHP和原生微信小程序开发的招聘平台系统&#xff0c;包含微信小程序求职者端、微信小程序企业招聘端、PC企业招聘端、PC管理平台端​ &#x1f31f; 一、招聘SAAS简介 在人力资源领域&#xff0c;数字化转型已成为不…

工会考试基础知识题库分享(附答案解析)

单选题 1、国家机关在组织起草或者修改直接涉及职工切身利益的法律、法规、规章时&#xff0c;( )工会意见。 A、可以听取 B、应当听取 C、必须听取 D、应当吸收 [答案]B 【解析】国家机关在组织起草或者修改直接涉及职工自身利益的法律、法规、规章时&#xff0c;应当听取工…

如何查询公网IP?

在互联网中&#xff0c;每个设备都有一个唯一的公网IP地址&#xff0c;用于标识设备在全球范围内的位置。查询公网IP是一个常见的需求&#xff0c;无论是用于远程访问、网络配置还是其他目的&#xff0c;了解自己的公网IP地址都是很有必要的。本文将介绍几种常见的方法来查询公…

面向AI应用开发实战分享 - 基础篇

“前端转AI&#xff0c;第一讲来了” 引言 如果你是一名前端开发&#xff0c;同时又对AI开发很感兴趣&#xff0c;那么恭喜你&#xff0c;机会来了。 如果不是也没关系&#xff0c;同样能帮大家了解AI应用的开发思路。 本文将带大家从面向AI开发的基础知识开始&#xff0c;再…

攻防实战 | 邮件高级威胁检测与自动化响应

历经三个月的时间&#xff0c;年度重磅直播节目Fortinet 2024年度“Demo季”近日终于迎来了备受瞩目的压轴大戏——Demo Day第三期&#xff0c;主题为《新邮件安全下的高级威胁检测与自动化响应》。继成功举办了前两期《企业网络中的多源威胁情报自动化整合与集成》和《应急响应…

人工智能绘画的历史

人工智能绘画的起源可以追溯到20世纪50年代。当时&#xff0c;艺术家和科学家开始使用计算机生成图像和图形&#xff0c;将绘画艺术与技术领域相结合。计算机图像可以被视为人工智能绘画的一部分。下面&#xff0c;我们将按照时间顺序来了解人工智能绘画发展的一些关键时间节点…

代码审计(1):CVE-2022-4957分析及复现

0x00漏洞描述&#xff1a; ѕрееdtеѕt iѕ а vеrу liɡhtԝеiɡ&#xff48;t nеtԝоrk ѕрееd tеѕtinɡ tооl imрlеmеntеd in Jаvаѕсriрt. Thеrе iѕ а Crоѕѕ-ѕitе Sсriрtinɡ vulnеrаbilitу in librеѕроndеd ѕрееdtеѕt…

JeeSite 快速开发平台 Vue3 前端版介绍

JeeSite 快速开发平台 Vue3 前端版介绍&#xff1a; 它构建于 Vue3、Vite、Ant-Design-Vue、TypeScript 以及 Vue Vben Admin 等最前沿的技术栈之上&#xff0c;能助力初学者迅速上手并顺利融入团队开发进程。涵盖的模块包括组织机构、角色用户、菜单授权、数据权限、系统参数…

小牛翻译API详解:功能、优势介绍及案例实战(附完整代码)

写在前面小牛翻译是做什么的案例-调用图片翻译API进行英文翻译✔准备工作✔获取密钥✔调用API✔完整代码✔运行项目 使用建议 写在前面 随着全球化的快速发展和跨国交流的增多&#xff0c;翻译软件的市场需求持续增长。根据市场数据&#xff0c;全球语言翻译软件市场规模在过去…

Linux命令篇(六):vi/vim专项

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝您生活愉快&#xff01; 文章目录 一、什么是vim二…

Vue3入门 - vue3相比于vue2的优点,及如何创建Vue3项目

目录 一、认识Vue3 1. Vue2 选项式 API vs Vue3 组合式API 2. Vue3的优势 二、使用create-vue搭建Vue3项目 1. 认识create-vue 2. 使用create-vue创建项目 3.熟悉项目和关键文件 一、认识Vue3 1. Vue2 选项式 API vs Vue3 组合式API <script>export default …

操作系统教材第6版——个人笔记6

3.3.4 页面调度 页面调度 当主存空间已满而又需要装入新页时&#xff0c;页式虚拟存储管理必须按照一定的算法把已在主存的一些页调出去 #主存满加新&#xff0c;把已在主存一些页调出选择淘汰页的工作称为页面调度 选择淘汰页的算法称为页面调度算法 页面调度算法设计不当&a…

BERT应用——文本间关联性分析

本文结合了自然语言处理&#xff08;NLP&#xff09;和深度学习技术&#xff0c;旨在分析一段指定的任务文本中的动词&#xff0c;并进一步探讨这个动词与一系列属性之间的关联性。具体技术路径包括文本的词性标注、语义编码和模型推断。 一、技术思路 NLP和词性标注 在自然…

基于fabric封装一个简单的图片编辑器(vue 篇)

介绍 前言vue demo版本react 版本 前言 对 fabric.js 进行二次封装&#xff0c;实现图片编辑器的核心功能。核心代码 不依赖 ui响应式框架vue ,react 都适用。 只写了核心编辑相关代码便于大家后续白嫖二次开发 核心代码我就没有打包发布 会 和 业务代码一起放到项目中。 vu…

鸿蒙轻内核M核源码分析系列九 互斥锁Mutex

多任务环境下会存在多个任务访问同一公共资源的场景&#xff0c;而有些公共资源是非共享的临界资源&#xff0c;只能被独占使用。鸿蒙轻内核使用互斥锁来避免这种冲突&#xff0c;互斥锁是一种特殊的二值性信号量&#xff0c;用于实现对临界资源的独占式处理。另外&#xff0c;…