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

news2024/11/24 1:30:58

作者: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/bash

curl -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.coloradmin.cn/o/1797886.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5. MySQL 运算符和函数

文章目录 【 1. 算术运算符 】【 2. 逻辑运算符 】2.1 逻辑非 (NOT 或者 !)2.2 逻辑与运算符 (AND 或者 &&)2.3 逻辑或 (OR 或者 ||)2.4 异或运算 (XOR) 【 3. 比较运算符 】3.1 等于 3.2 安全等于运算符 <>3.3 不等于运算符 (<> 或者 !)3.4 小于等于运算符…

GAN网络理论和实验(一)

文章目录 一、说明二、摘要三、对架构的介绍四、相关工作五、理论推演5.1 p g p d a t a p_g p_{data} pg​pdata​的全局最优性5.2 算法1的收敛性 六、实验 一、说明 对发布于2014年的关于GAN的原始描述&#xff0c;我们精读此文&#xff0c;对原始的GAN网络概念进行追溯&…

保姆级教程:以SAR图像目标检测为例

一、项目出发点 AI Studio为我们提供了免费的GPU资源&#xff0c;当我们在NoteBook环境中把代码调试成功后&#xff0c;通常一个训练任务耗时较长&#xff0c;而Notebook离线运行有时长限制&#xff0c;一不小心就容易被kill掉。 如何解决这一问题&#xff1f; 后台任务帮到…

1782java英语陪学记词系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java英语陪学记词系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助采用了java设计&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统采用web模式&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&…

鸿蒙嵌入式设备开发之hello world

1. 环境搭建 目前鸿蒙设备的开发环境&#xff0c;可以分为2个部分&#xff1a;Windows调试环境&#xff0c;和Linux编译环境。 其中&#xff0c; Linux环境负责编译代码&#xff0c;并生成鸿蒙的包。Windows环境负责连接设备&#xff0c;进行烧录和调试。 特别注意&#xf…

draw.io 如何设置图形圆角?

draw.io 如何设置图形圆角呢&#xff1f; draw.io 是一款强大的&#xff0c;免费的开源工具&#xff0c;我经常用它来画流程图&#xff0c;但是我发现 draw.io 对于图形圆角的设置&#xff0c;只提供了一个设置选项&#xff0c;如下图&#xff1a; 当你选中某个图形&#xff0…

JustAuth Illegal state xx问题

排查 起因 服务上线生产环境后使用飞书登录有些时候会登录失败,查看日志出现以上错误Illegal state [FEISHU],但是测试环境没有出现这个情况 排查 经过排查发现是JustAuth 报的错 分析出现原因 在JustAuth找到出现原因和解决方案 原文地址:异常相关问题 | JustAuth 异常…

用大模型实现PPT可视化几种思路

https://zhuanlan.zhihu.com/p/700685802 背景 前面一篇文章已经介绍了如何根据用户输入&#xff0c;用大模型实现内容检索、分析、脑图可视化的链路。然而往往投研团队需要针对重要新闻做组内分析解读&#xff0c;需要用ppt的方式来展现&#xff1b;那么优美可能让大模型直…

【全开源】Java同城服务同城信息同城任务发布平台小程序APP公众号源码

&#x1f4e2; 连接你我&#xff0c;让任务触手可及 &#x1f31f; 引言 在快节奏的现代生活中&#xff0c;我们时常需要寻找一些便捷的方式来处理生活中的琐事。同城任务发布平台系统应运而生&#xff0c;它为我们提供了一个高效、便捷的平台&#xff0c;让我们能够轻松发布…

【最新鸿蒙应用开发】——沙箱机制是什么?作用?场景?

沙箱机制 1. 什么是沙箱机制&#xff1f; 1.1. 概念 在操作系统当中&#xff0c;沙箱机制&#xff08;Sandboxing&#xff09;是一种安全机制&#xff0c;用于限制程序代码的访问权限&#xff0c;防止恶意软件对系统造成破坏。在沙箱环境中&#xff0c;程序只能访问特定的资…

Docker 学习总结(83)—— 配置文件daemon.json介绍及优化建议

一、daemon.json 文件概述 daemon.json是Docker守护进程的配置文件,它允许系统管理员自定义Docker守护程序的行为。此文件通常位于/etc/docker/目录下。通过修改daemon.json,可以调整Docker守护进程的多种设置,包括网络配置、日志记录、存储驱动等。 二、daemon.json 文件结…

YoloV8改进策略:Block篇|MobileNetV4——移动生态系统的通用模型

文章目录 摘要1、引言2、相关工作3、硬件无关的帕累托效率4、通用反向瓶颈5、Mobile MQA6、MNv4模型设计6.1、精炼NAS以增强架构6.2、MNv4模型的优化 7、结果7.1、ImageNet分类 8、增强蒸馏方案9、结论10、致谢A、搜索空间细节B、基准测试方法论C、ImageNet-1k分类任务的训练设…

Linux之线程及线程安全详解

前言&#xff1a;在操作系统中&#xff0c;进程是资源分配的基本单位&#xff0c;那么线程是什么呢&#xff1f;线程是调度的基本单位&#xff0c;我们该怎么理解呢&#xff1f; 目录 一&#xff0c;线程概念理解 二&#xff0c;Linux里面的线程原理 三&#xff0c;为什么要…

哈夫曼树的构造,哈夫曼树的存在意义--求哈夫曼编码

一:哈夫曼树的构造 ①权值,带权路径长度。 ②一组确定权值的叶子节点可以构造多个不同的二叉树,但是带权路径长度min的是哈夫曼树 ③算法基本思想及其实操图片演示 注:存储结构和伪代码 1 初始化: 构造2n-1棵只有一个根节点的二叉树,parent=rchild=lchild=-1; 其中…

忆恒创源国产系列新品 —— PBlaze7 7A40 取得 PCI-SIG 兼容性认证

在此前报道中&#xff0c;我们曾预告了忆恒创源国产系列 PCIe 5.0 SSD 新品 —— PBlaze7 7A40&#xff0c;今天&#xff0c;这款 SSD 已经顺利通过 PCI-SIG 的严格测试并出现在 Integrators List 集成商列表当中&#xff0c;标志着距离 PBlaze7 7A40 的正式发布又近了一步。 正…

Spring Boot框架基础

文章目录 1 Spring Boot概述2 Spring Boot入门2.1 项目搭建2.2 入门程序 3 数据请求与响应3.1 数据请求3.2 数据响应 4 分层解耦4.1 三层架构4.2 控制反转4.3 依赖注入 5 参考资料 1 Spring Boot概述 Spring是Java EE编程领域的一个轻量级开源框架&#xff0c;是为了解决企业级…

乐高小人分类项目

数据来源 LEGO Minifigures | Kaggle 建立文件目录 BASE_DIR lego/star-wars-images/ names [YODA, LUKE SKYWALKER, R2-D2, MACE WINDU, GENERAL GRIEVOUS ] tf.random.set_seed(1)# Read information about dataset if not os.path.isdir(BASE_DIR train/):for name in …

Edge 工作区是什么?它都有哪些作用?

什么是工作区 Edge 工作区是什么&#xff1f;它是微软 Edge 浏览器中的一个功能&#xff0c;在帮助用户更好地组织和管理他们的浏览会话。通过工作区&#xff0c;用户可以创建多个独立的浏览环境&#xff0c;每个工作区内包含一组相关的标签页和浏览器设置。这使得用户能够根据…

asp.net core使用httpclient

主要讲解常见的get请求和post请求 GET var client new HttpClient(); //3秒钟不响应就超时 client.TimeoutTimeSpan.FromSeconds(3); using HttpResponseMessage response await client.GetAsync("todos/3"); var jsonResponse await response.Content.ReadAsSt…

变压器绕线完成之后要做的事

1 调整感量&#xff1a;测主绕组电感量&#xff0c;通过磨气隙或垫气隙&#xff0c;测得感量没错以后&#xff0c;用胶带封装磁芯 2 测验同名端是否正确&#xff1a;两绕组首尾相连&#xff0c;测试连接后的总感量&#xff0c;是否比感量大的那个绕组还大。如果是&#xff0c;…