热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

全面解析运维监控:白盒与黑盒监控及四大黄金指标

本文深入探讨了白盒和黑盒监控的概念,以及它们在系统监控中的应用。通过详细分析基础监控和业务监控的不同采集方法,结合四个黄金指标的解读,帮助读者更好地理解和实施有效的监控策略。

本文将详细介绍白盒和黑盒监控的区别及其应用场景,并深入探讨如何有效收集和利用监控数据,以确保系统的稳定性和高效运行。

白盒监控侧重于从内部视角观察系统,例如通过机器存活、CPU和内存使用率、业务日志和JMX等手段来获取内部状态。而黑盒监控则从外部进行检测,如端口探活、HTTP探测和端到端功能监控。

监控数据的采集

配置监控时,首要任务是确定如何有效地采集监控数据。监控指标通常分为两类:基础监控和业务监控。

基础监控

基础监控涵盖了CPU、内存、磁盘、端口和进程等操作系统级别的信息。成熟的监控系统(如Prometheus、Zabbix)提供了这些基础监控项的采集能力。然而,仅依赖机器级别的基础监控并不能完全反映服务的真实运行状况。因此,必须结合业务相关监控指标才能全面评估系统健康状况。

业务监控

业务监控指标由业务系统内部生成,能够真实反映业务运行状态。常见的采集方法包括:

  • 日志: 日志记录了服务运行的各个方面,是重要的监控数据来源。例如,Nginx access日志可以统计错误、延迟和流量。常用的日志采集工具包括Rsyslog、Logstash、Filebeat和Flume。
  • JMX: 多数Java服务可通过JMX接口输出监控指标,许多监控系统也集成了JMX采集插件。
  • REST API: 一些服务提供REST API用于监控数据的采集,如Hadoop和ElasticSearch。
  • OpenMetrics: 随着Prometheus的流行,OpenMetrics正成为业界标准,大部分热门开源服务都有官方或非官方的exporter。
  • 命令行: 某些服务通过本地命令输出监控指标。
  • 主动上报: 采用PUSH模型的服务可主动上报监控指标至监控系统。
  • 埋点: 埋点是一种侵入式监控方法,虽然灵活性高,但需要研发支持,成本较高。
  • 其他方式: 如Zookeeper的四字命令、MySQL的show status命令。

如果缺乏现成的监控采集插件,则需要自行开发采集脚本。

四个黄金指标

Google SRE提出的四个黄金指标为监控提供了重要指导,它们分别是错误、延迟、流量和饱和度。

错误

错误是指系统发生的错误请求和错误率。关键关注点包括:

  • 基础监控: 宕机、磁盘故障、进程或端口挂掉、网络丢包等。
  • 业务监控: 核心功能处理错误、基础功能单元丢失或异常、Master故障、可用节点数等。
建议为所有主要功能或接口添加黑盒端到端监控。

延迟

延迟指服务请求所需时间,延迟上升可能导致系统雪崩。主要关注点:

  • 基础监控: IO等待、网络延迟。
  • 业务监控: 核心功能响应时长,如Zookeeper的zk_avg_latency、ElasticSearch的索引和搜索延迟。
建议为主要功能或接口添加黑盒监控。

流量

流量指标反映了系统层面的网络和磁盘IO,以及服务层面的QPS、PV和UV等数据。流量突增或突减可能预示系统问题。

  • 基础监控: 磁盘和网卡IO。
  • 业务监控: 核心功能流量,如Web服务的QPS/PV/UV,ElasticSearch的索引创建速率和搜索速率。

饱和度

饱和度衡量当前服务的利用率,与流量密切相关。常见指标包括:

  • 基础监控: CPU、内存、磁盘和网络利用率、文件句柄数、TCP连接数等。
  • 业务监控: 基础功能单元使用率、消息队列长度等。

总结

本文总结了常见的监控指标采集方法和四个黄金指标的应用。不同业务系统有不同的监控需求,灵活应对各种情况至关重要。


推荐阅读
  • 本文详细介绍了使用ZooKeeper构建高可用集群的方法,包括必要的软件环境准备、配置文件调整及集群启动等关键步骤。通常,一个ZooKeeper集群由奇数个节点组成,以确保Leader选举的有效性。 ... [详细]
  • 离线安装Grafana Cloudera Manager插件并监控CDH集群
    本文详细介绍如何离线安装Cloudera Manager (CM) 插件,并通过Grafana监控CDH集群的健康状况和资源使用情况。该插件利用CM提供的API接口进行数据获取和展示。 ... [详细]
  • Zookeeper面试常见问题解析
    本文详细介绍了Zookeeper中的ZAB协议、节点类型、ACL权限控制机制、角色分工、工作状态、Watch机制、常用客户端、分布式锁实现、默认通信框架以及消息广播和领导选举的流程。 ... [详细]
  • 本文探讨了在通过 API 端点调用时,使用猫鼬(Mongoose)的 findOne 方法总是返回 null 的问题,并提供了详细的解决方案和建议。 ... [详细]
  • 本文将深入探讨如何在不依赖第三方库的情况下,使用 React 处理表单输入和验证。我们将介绍一种高效且灵活的方法,涵盖表单提交、输入验证及错误处理等关键功能。 ... [详细]
  • JavaScript 基础语法指南
    本文详细介绍了 JavaScript 的基础语法,包括变量、数据类型、运算符、语句和函数等内容,旨在为初学者提供全面的入门指导。 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 简化报表生成:EasyReport工具的全面解析
    本文详细介绍了EasyReport,一个易于使用的开源Web报表工具。该工具支持Hadoop、HBase及多种关系型数据库,能够将SQL查询结果转换为HTML表格,并提供Excel导出、图表显示和表头冻结等功能。 ... [详细]
  • 深入解析Serverless架构模式
    本文将详细介绍Serverless架构模式的核心概念、工作原理及其优势。通过对比传统架构,探讨Serverless如何简化应用开发与运维流程,并介绍当前主流的Serverless平台。 ... [详细]
  • This post discusses an issue encountered while using the @name annotation in documentation generation, specifically regarding nested class processing and unexpected output. ... [详细]
  • 远程过程调用(RPC)是一种允许客户端通过网络请求服务器执行特定功能的技术。它简化了分布式系统的交互,使开发者可以像调用本地函数一样调用远程服务,并获得返回结果。本文将深入探讨RPC的工作原理、发展历程及其在现代技术中的应用。 ... [详细]
  • window下kafka的安装以及测试
    目录一、安装JDK(需要安装依赖javaJDK)二、安装Kafka三、测试参考在Windows系统上安装消息队列kafka一、安装JDKÿ ... [详细]
  • Kafka Topic 数据管理与清理策略
    本文探讨了在生产环境中如何有效管理和定期清理Kafka Topic中的数据。介绍了基于时间、日志大小和日志起始偏移量三种清除方式,并重点讲解了基于时间的清除策略及其配置方法。 ... [详细]
  • 收割机|篇幅_国内最牛逼的笔记,不接受反驳!!
    收割机|篇幅_国内最牛逼的笔记,不接受反驳!! ... [详细]
  • solrCloud分布式集群安装配置
    solrCloud分布式集群安装配置1.前提安装Zookeeper集群2.安装部署多个solr节点10.41.2.82 ... [详细]
author-avatar
柏拉图恋情
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有