王观伟
发布于 IP属地浙江省

监控系统的评分标准

监控是有效管理基础设施和业务的关键工具。

一、监控概念

正确的监控应当与应用程序一同构建和部署,因为缺乏监控会导致对系统运行环境的不了解,阻碍故障诊断,以及无法及时获取关键的性能、成本和状态等信息。

然而,我们需要注意一些监控中的误区:

  • 机械式监控:避免过于机械和生硬的监控方法,应当采用更灵活、智能的监控方式。
  • 不够准确的监控:监控系统应当具备高准确性,以确保获得真实、可信的监控数据,避免误导性信息的干扰。
  • 静态和监控:监控系统需要具备动态适应性,能够随着系统和业务的变化而调整监控策略,避免过于静态化的监控设置。
  • 不频繁的监控:监控应当是持续、频繁的活动,而非间歇性的检查。只有通过频繁监控,才能及时捕捉系统的变化和潜在问题。
  • 缺少自动化或自服务:引入自动化和自服务的监控工具是必要的,这有助于提高效率、减少人工干预,并能够更好地应对系统变化。

正确的监控方法是在保证准确性和实时性的基础上,采用灵活、动态、频繁、自动化的监控策略,从而更好地了解和管理系统的运行状态。

二、黑盒监控与白盒监控

1. 黑盒监控

在黑盒监控中,应用程序或主机的观察是从外部进行的,因此该方法可能受到一定的限制。其检查旨在评估被观察系统是否按照已知的方式响应探测。

例子:

  • 主机是否响应 PING 请求。
  • 特定 TCP 端口是否处于打开状态。
  • 应用程序是否在接收特定 HTTP 请求时使用正确的数据和状态代码进行响应。
  • 特定应用程序的进程是否在其主机中运行。

2. 白盒监控

白盒监控使系统能够展示其内部状态和关键性能数据。这种自我观察可能非常强大,因为它揭示了内部操作,展示了不同内部组件的健康状况,这在没有此类监控的情况下可能难以确定。

数据处理方式:

  • 日志导出: 通常通过日志记录来实现,例如处理 HTTP 服务器的访问日志以监视请求率、延迟和错误百分比。
  • 结构化事件输出: 类似于日志记录,但不将数据写入磁盘,而是直接发送到处理系统进行分析和聚合。
  • 聚合保存在内存中: 这种格式的数据可以驻留在端点中,也可以直接从命令行工具中读取。例如,使用 Prometheus metrics 的 /metrics、HAProxy 的 stats 页面或 varnishstats 命令行工具。

三、度量指标

在监控系统执行过程中,度量指标通常可以分为两种方式:push(监控系统主动拉取服务数据)和 pull (被监控的服务自动推送数据到监控系统)【站在客户的角度】。

Push VS Pull

测量什么:

谷歌提出应该监控的四个指标:

  • 延迟: 服务请求所需的时间。
  • 流量: 正在发出的请求的数量。
  • 错误: 请求失败的比率。
  • 饱和: 未处理的工作量,通常在队列中。

Brendan 的方法更关注于对于每个资源( CPU、磁盘、网络接口等)的监视,包括以下指标:

  • 利用率: 以资源繁忙的百分比来衡量。
  • 饱和: 资源无法处理的工作量,通常会排队。
  • 错误: 发生的错误数量。

汤姆威尔基的红色方法更侧重于服务级别方法,而不是底层系统本身。这种方法对于了解服务很有用,对于预测外部客户的体验也很有价值。如果服务的错误率增加,就可以合理地假设这些错误将直接或间接地影响客户的体验。

  • 速率: 转换成每秒请求数。
  • 错误: 每秒失败请求的数量。
  • 持久性: 这些请求所花费的时间。
浏览 (125)
点赞
收藏
打赏
评论