SRE-Google运维解密随记-3-分布式系统的监控

2023-05-16

监控的大部分通用的术语:

监控(monitoring)

收集、处理、汇总,并且显示关于某个系统的实时量化数据,例如请求的数量和类型, 错误的数量和类型,以及处理用时,应用服务器的存活时间等。

 

白盒监控(white-box monitoring)

依靠系统内部暴露的一些性能指标进行监控。包括日志分析、Java虚拟机提供的监 控接口,或者一个列出内部统计数据的HTTP接口进行监控。

 

黑盒监控(black-box monitoring)

通过测试某种外部用户可见的系统行为进行监控。

 

监控台页面(dashboard)

提供某个服务核心指标一览服务的应用程序(一般是基于Web的)。该应用程序可能会提供过滤功能(filter)、选择功能(selector)等,但是最主要的功能是用来显示系统最重要的指标。该程序同时可以显示相应团队的一些信息,包括目前工单的 数量、高优先级的Bug列表、目前的on-call工程师和最近进行的生产发布等。

 

警报(alert)

目标对象是某个人发向某个系统地址的一个通知。目的地可以包括工单系统、 E-mail地址,或者某个传呼机。相应的,这些警报被分类为:工单、E-mail警报41, 以及紧急警报(page)。

 

根源问题(root cause)

指系统(软件或流程)中的某种缺陷。这个缺陷如果被修复,就可以保证这种问题 不会再以同样的方式发生。某一个故障情况可能同时具有多个根源问题:例如,有可能自动化程度不够,软件在异常输入下崩溃,以及对生成配置文件的脚本测试不足等。这里每一个因素都是一个根源问题,并且每一个都需要被修复。

节点或者机器(node/machine)

这里的两个术语是可以互换的:指在物理机、虚拟机,或者容器内运行的某个实例。 某个单独的物理机器上可能有多个服务需要监控,这些服务可能具有如下特点。

●相互关联的服务:例如Web服务器与对应的缓存服务器。

●不相关的服务,它们仅仅共享硬件:例如代码仓库和把文件存放在代码仓库中  的配置管理系统的主进程。例如Puppet(https://puppetlabs.com/puppet/puppet- open-source)和Chef(Configuration Management System Software - Chef Infra | Chef)。

推送(push)

关于某个服务正在运行的软件或者其配置文件的任何改动。

 

要对监控系统设置合理预期

现象与原因

黑盒监控与白盒监控

黑盒监控与白盒监控最简单的区别是:黑盒监控是面向现象的,代表了目前正在发生的而非预测会发生的问题,即“系统现在有故障”。白盒监控则大量依赖对系统内部信息的检测,如系统日志、抓取提供指标信息的HTTP节点等。白盒监控系统因此可以检测到即将发生的问题及那些重试所掩盖的问题等。

注意,在一个多层系统中,某一个服务的现象是另外一个服务的原因。例如,数据库性能问题。数据库读操作很缓慢是数据库SRE检测到的一个现象。然而,对前端 SRE来说,他们看到的是网站缓慢,数据库读操作的缓慢则是原因。因此,白盒监控有 时是面向现象的,有时是面向原因的,这取决于白盒系统所提供的信息。

当收集用于调试的遥测数据时,白盒监控是必不可少的。如果Web服务器看起来在那些依赖数据库的请求上很慢时,我们需要同时知道Web服务器检测到的数据库速度与数据库自己检测到的速度。否则,无法区分出到底是数据库问题还是Web服务器与数据库服 务器之间的网络问题。

黑盒监控可以保证系统只在某个问题目前正在发生,并且造成了某个现象时才会发出紧急警报。另外一方面,针对那些还没有发生,但是即将发生的问题,黑盒监控通常是没用的。

 

监控的4个黄金指标

监控系统的4个黄金指标分别是延迟、流量、错误和饱和度。如果我们只能监控用户可见系统的4个指标,那么就应该监控这4个。

 

设计监控系统

设计监控系统时一定要追求简化

●那些最能反映真实故障的规则应该越简单越好,可预测性强,非常可靠。

●那些不常用的数据收集、汇总,以及警报配置应该定时删除(某些SRE团队的标准是一个季度没有用到一次即将其删除)。

●收集到的信息,但是没有暴露给任何监控台,或者被任何警报规则使用的应该定 时删除。

 

 

当为监控系统和警报系统增加新规则时,回答下列问题可以帮助减少误报:

●该规则是否能够检测到一个目前检测不到的、紧急的、有操作性的,并且即将发 生或者已经发生的用户可见故障?

●是否可以忽略这条警报?什么情况可能会导致用户忽略这条警报,如何避免?

●这条警报是否确实显示了用户正在受到影响?是否存在用户没有受到影响也可以 触发这条规则的情况?例如测试环境和系统维护状态下发出的警报是否应该被过滤掉。

●收到警报后,是否要进行某个操作?是否需要立即执行该操作,还是可以等到第 二天早上再进行?该操作是否可以被安全地自动化?该操作的效果是长期的,还 是短期的?

●是否也会有其他人收到相关的紧急警报,这些紧急警报是否是不必要的?

以上这些问题其实反映了在应对紧急警报上的一些深层次的理念:

●每当收到紧急警报时,应该立即需要我进行某种操作。每天只能进入紧急状态几次,太多就会导致“狼来了”效应。

●每个紧急警报都应该是可以具体操作的。

●每个紧急警报的回复都应该需要某种智力分析过程。如果某个紧急警报只是需要 一个固定的机械动作,那么它就不应该成为紧急警报。

●每个紧急警报都应该是关于某个新问题的,不应该彼此重叠。

从这种角度出发,我们可以得出以下结论:如果某个紧急警报满足上述四点,那么不论 是从白盒监控系统还是黑盒监控系统发出都一样。最好多花一些时间监控现象,而不是原因。针对“原因”来说,应该只监控那些非常确定的和非常明确的原因。

 

监控系统的长期维护

在现代生产环境中,监控系统需要跟随不断演变的软件一起变化,软件经常重构,负载 特性和性能目标也经常变化。现在的某个不常见的、自动化比较困难的警报可能很快就 会变成一个经常触发、需要一个临时的脚本来应对的问题。这时,某个人应该去寻找和 消除背后的根源问题:如果这种解决办法不可行,那么这条警报的应对就必须要完全自 动化。

关于监控系统的设计决策应该充分考虑到长期目标。今天发出的每个紧急警报都会占用优化系统的时间,所以经常会牺牲一些短期内的可用性和性能问题,以换取未来系统性能的整体提升

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SRE-Google运维解密随记-3-分布式系统的监控 的相关文章

  • 串口概念

    1 xff09 串行接口 1 简称串口 xff08 通常指com接口 xff09 2 特点 xff1a 数据一位一位的顺序传送 通信线路简单 xff0c 只要一对传输线就可以实现双向通信 工作方式有单工 xff0c 半双工 xff0c 全双
  • 无人机UAV与地面站QGC通讯MAVLink协议学习笔记

    目录 写在前面参考学习资源MAVLink消息结构发送消息接收数据 写在前面 最近要学习了解一下Qgroundcontrol中所使用的一些与无人机载体通讯的一些方式 xff0c 所以在这里记录一下学习的过程 参考学习资源 QGroundCon
  • hadoop平台hdfs读取数据过程

    hadoop平台hdfs读取数据过程 xff1a
  • 固定翼调试步骤

    有的时候可能会出现校准不了的情况 xff0c 可以尝试去掉一个罗盘 xff0c 一般去掉的是内置罗盘 xff0c 用外置的罗盘 xff0c 就能够达到要求 将外置的罗盘设置为主罗盘 xff0c 内置罗盘不勾选就可以实现这样的功能 从左右副翼
  • 网络分区是什么?

    网络分区 目前理解 xff0c 在分布式环境下 xff0c 有时由于网络通讯故障 xff0c 而不是服务器上的应用故障 xff0c 导致一些节点认为应用不可用 xff0c 另外一些节点认为应用仍可用 导致 xff0c 整个系统在提供服务时
  • 调试并修理垂起固定翼(VTOL)

    调试 43 修理垂起固定翼 校准遥控器 设置飞行模式 设置的模式的切换是通过通道B来进行的 xff0c 最下面是Guided模式 xff0c 该模式可以运行程序的内容 xff0c 也可以运行写入的航点 中间的模式是QLoiter模式 xff
  • NVIDIA Jetson tx2各性能介绍及切换教程

    1 tx2简介 Jetson tx2 有6个CPU核心和一个GPU NVIDIA命令行工具Nvpmodel提供 xff15 种模式 xff0c 可以方便地让用户配置CPU状态 xff0c 以最大限度地提高不同场景下的性能和能耗 2 五种模式
  • Redis中(error):ERR unknown command ‘KEYS‘, with args beginning with:

    redis报错 ERR unknown command 39 KEYS 39 with args beginning with 1 这种情况是redis服务器不支持keys命令 2 5 0版本改为scan了 2 检查redis的yml配置信
  • 如何用手机控制stm32单片机,通过蓝牙模块

    电脑与单片机通信原理 我们用到的串口调试助手 xff0c 就是通过电脑上面的虚拟串口和单片机的串口进行通信从而来调试 在建立通信的过程中 xff0c 我们需要把电脑上虚拟串口的波特率 xff0c 数据位 xff0c 奇偶校验位 xff0c
  • Vm虚拟机Deepin安装教程---kalrry

    Vm虚拟机Deepin安装教程 kalrry 前言Deepin安装 已完成 前言 Win配置记录 Mac配置记录 Deepin安装 已完成 01 点击创建新的虚拟机 02 选择自定义 高级 点击下一步 N 03 点击下一步 N 04 选择稍
  • 国内外流行的JS游戏开发框架介绍---kalrry

    国内外流行的JS游戏开发框架介绍 kalrry 前言一 整理中ing二 当今国内外流行的游戏开发框架有哪些 三 每个框架的特点以及优缺点1 Three js优点 xff1a 缺点 xff1a 2 Phaser优点 xff1a 缺点 xff1
  • JavaScript库集合---kalrry---ing

    JavaScript库集合 kalrry ing 参考 序号JS库功能备注01web3 jsweb3 js 库是一系列模块的集合 xff0c 服务于以太坊生态系统的各个功能备用链接02Three js03Ramda04Lodash05Mom
  • CPU天梯图/显卡天梯图---kalrry

    CPU天梯图 显卡天梯图 kalrry 一 CPU天梯图二 显卡天梯图 一 CPU天梯图 CPU天梯图更注重综合性能 xff0c 只具有参考意义 二 显卡天梯图 以下显卡天梯图主要是根据传统光栅性能排名
  • Pixhawk飞控资料备忘---kalrry

    Pixhawk飞控资料备忘 kalrry 一 简介二 工具 资料1 Mission Planner2 PX4 需全局跳转 3 Pixhawk官网4 视频资源 三 开发入门四 待分类 一 简介 PX4飞控软件是来自苏黎世大学的PIXHAWK项
  • vue之动态注册并渲染组件---kalrry

    vue之动态注册并渲染组件 kalrry 简介 xff1a 目录结构一 普通方法二 方案二三 方案三四 方案四 简介 xff1a 目录结构 待完善补充 index vue dir 目录文件夹 comp1 vue comp2 vue 一 普通
  • SQL-常见的聚合函数有哪些?

    聚合函数 聚合函数对一组值执行计算并返回单一的值 求个数 记录数 项目数等 xff1a count count 的用法 span class token function COUNT span span class token punctu
  • Vue之v-model双向绑定原理---kalrry

    Vue之v model双向绑定原理 kalrry 一 简介二 表单实现双向绑定1 原理2 实现 三 组件上的双向绑定1 原理2 实现3 实例 一 简介 v model实现双向绑定的语法糖 xff0c 常用于表单与组件之间的数据双向绑定 二
  • Qt开发遇到的坑---kalrry

    Qt开发遇到的坑 kalrry 一 依赖引入坑二 Qt在Debug时报错1 编译器是 MSVC 还是 MinGW 2 编译器 32位 还是 64位 三 Qt 43 MSVC编译后中文乱码四 不能将const char 类型的值分配到cons
  • Sinutrain下载安装与开启OPC UA---kalrry

    Sinumerik下载安装与开启OPC UA kalrry 前言一 安装前准备二 Win7安装1 软件安装2 开启授权3 文件配置4 客户端连接 三 Win10 11安装四 启动后使用五 启动OPC UA 前言 本教程只适用于 Sinutr
  • Qt第三方QCustomPlot的使用---kalrry

    Qt第三方QCustomPlot的使用 kalrry 一 参考博客End 例子 一 参考博客 QCustomPlot中图例的相关设置QCustomPlot使用手册QCustomPlot中图例的相关设置QCustomPlot更改图例legen

随机推荐

  • 【物联网树莓派毕设01】树莓派4B快速实现VNC连接

    一 前言 最近准备开始做毕设了 xff0c 想着找个地方记录一下遇到的问题 xff0c 怎么解决的 xff0c 希望能够给有需要的人一些帮助 xff0c 有什么问题还请指正 这次毕设选题是基于物联网技术的酒店管理系统 xff0c 其实是基于
  • 不忘初心牢记使命文化励志标语墙贴——个性一百剪纸

    不忘初心牢记使命手工剪纸 个性一百定制服务中心 xff0c 可快速定制各类家居家具用品 工艺礼品 图案造型 xff0c 提供从构思到设计到制作一条龙服务 xff0c 您敢想我们敢做 不忘初心牢记使命绘画贴纸 我们不局限于某种商品 xff0c
  • 动态建模——UML活动图

    1 活动图 xff1a 展示了动作或活动的执行步骤及结果 2 作用 xff1a xff08 1 xff09 描述在用例描述时 xff0c 用例的实例是如何让执行动作 xff0c 改变对象状态的 xff08 2 xff09 可以清晰的展示出活
  • 华为交换机常用命令(一)

    历史命名查询 display history command 配置主机名 sys sysname xxx 状态信息查询 display version display users 进入接口模式并查看信息 int g0 0 1 dis thi
  • NoSQL之 Redis配置与优化

    NoSQL之 Redis配置与优化 关系数据库与非关系型数据库关系型数据库和非关系型数据库区别 Redis简介Redis 安装部署Redis 命令工具Redis 数据库常用命令 Redis 高可用Redis 持久化RDB 持久化AOF 持久
  • MQ-2烟雾浓度传感器(STM32F103)

    本实验是通过串口调试助手显示STM32F103C8T6采集到MQ 2传感器的电压值 一 概述 1 简介 MQ 2可用于家庭和工厂的气体泄漏监装置 xff0c 适宜于液化气 丁烷 丙烷 甲烷 酒精 烟雾等的探测 它的优点是灵敏度高 响应快 稳
  • Java-异常

    什么是异常 xff1f 异常是指程序运行时 xff0c 导致正常流程被中断的事件 异常分类 可查异常 xff1a CheckedException xff08 要么try catch住 要么往外抛 xff0c 谁调用 xff0c 谁处理 如
  • 51单片机学习篇-- --蜂鸣器的使用

    开篇先说一句废话 本旺名字叫萨摩耶 xff0c xff0c Please 叫我旺财 xff0c xff0c xff0c 哈哈 xff0c 招财进宝嘛 xff01 蜂鸣器是个啥 蜂鸣器一般分为两种 xff0c 一种是无源蜂鸣器 xff0c 一
  • 51单片机学习篇-- --基于51单片机的串口通信协议

    开篇先说一句废话 本旺名字叫萨摩耶 xff0c xff0c Please 叫我旺财 xff0c xff0c xff0c 哈哈 xff0c 招财进宝嘛 xff01 开篇 计算机按照下行数据通信协议 xff0c 串口发送数据 xff0c 地址为
  • 卸载rancher出现的问题

    卸载rancher出现如下报错 error unable to retrieve the complete list of server APIs custom metrics k8s io v1beta1 the server is cu
  • docker审计日志过大导致磁盘IO

    问题 xff1a 节点发生磁盘io 节点审计日志量较大 xff0c 由于操作系统内核缺陷 xff0c 会低概率出现io卡主 影响版本 xff1a v1 15 11 v 1 17 9 查看节点是否有问题 1 登录节点 2 如果有类似下图的回显
  • linux 环境命令随记

    sh steve bourne bash bourne again shell gpl centos和ubuntu 默认使用 csh c shell C语言风格 tcsh ksh xff1a korb shell aix默认shell zs
  • sed命令的使用

    sed命令 格式 sed 选项 脚本命令 文件名 选项 n 使用安静silent模式 在一般sed的用法中 xff0c 所有来自stdin的内容一般都会被列出到屏幕上 但如果加上 n参数后 xff0c 则只有经过sed特殊处理的那一行 或者
  • docker安装和info信息

    docker 容器的历史 xff1a 1 Chroot Jail 就是我们常见的 chroot 命令的用法 它在 1979 年的时候就出现了 xff0c 被认为是最早的容器化技术之一 它可以把一个进程的文件系统隔离起来 2 The Free
  • docker镜像管理

    docker镜像管理 镜像结构和原理 镜像就是创建容器的模版 xff0c 含有容器启动所需要的文件系统及所需要的内容 xff0c 因此镜像主要用于方便和快速创建启动容器 镜像结构 xff1a 一个典型的 Linux文件系统由 bootfs
  • 容器操作基础命令随记

    容器操作基础命令 命令周期 一次性启动容器docker run 一次性运行容器 xff0c 退出后立即删除 xff0c 用于测试 root 64 localhost docker run rm alpine cat etc issue We
  • SRE-Google运维解密随记-1

    雇佣系统管理员 sysadmin 运维复杂的计算机系统 xff0c 是行业内一直以来的普遍做法 这些系统管理员负责将现成的软件组件部署于生产环境中 xff0c 对外提供某种业务服务 系统管理员的主要工作在于应对系统中产生的各种需要人工干预的
  • SpringCloud-Netflix并没有闭源、Eureka1.X也没有闭源

    网上流行的说法 xff1a Netflix的Eureka 闭源了 xff08 不实 xff09 引起一些人的焦虑 恐慌 xff0c SpringCloud Netflix是不是就不能用了 xff0c 没人维护了 真相 xff1a 1 Spr
  • SRE-Google运维解密随记-2-服务目标质量

    服务质量指标 SLI 服务质量目标 SLO 服务质量协议 SLA 这三项分别是指该服务最重要的一些基础指标 这些指标的预期值 xff0c 以及当指标不符合预期时的应对计划 事先选择好合适的指标有助于在故障发生时帮助SRE进行更好地决策 xf
  • SRE-Google运维解密随记-3-分布式系统的监控

    监控的大部分通用的术语 xff1a 监控 monitoring 收集 处理 汇总 xff0c 并且显示关于某个系统的实时量化数据 xff0c 例如请求的数量和类型 xff0c 错误的数量和类型 xff0c 以及处理用时 xff0c 应用服务