热门标签 | 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连接数等。
  • 业务监控: 基础功能单元使用率、消息队列长度等。

总结

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


推荐阅读
  • 构建高性能Feed流系统的设计指南
    随着移动互联网的发展,Feed流系统成为了众多社交应用的核心组成部分。本文将深入探讨如何设计一个高效、稳定的Feed流系统,涵盖从基础架构到高级特性的各个方面。 ... [详细]
  • 收割机|篇幅_国内最牛逼的笔记,不接受反驳!!
    收割机|篇幅_国内最牛逼的笔记,不接受反驳!! ... [详细]
  • 在高并发需求的C++项目中,我们最初选择了JsonCpp进行JSON解析和序列化。然而,在处理大数据量时,JsonCpp频繁抛出异常,尤其是在多线程环境下问题更为突出。通过分析发现,旧版本的JsonCpp存在多线程安全性和性能瓶颈。经过评估,我们最终选择了RapidJSON作为替代方案,并实现了显著的性能提升。 ... [详细]
  • 由二叉树到贪心算法
    二叉树很重要树是数据结构中的重中之重,尤其以各类二叉树为学习的难点。单就面试而言,在 ... [详细]
  • 本文深入探讨了MySQL中常见的面试问题,包括事务隔离级别、存储引擎选择、索引结构及优化等关键知识点。通过详细解析,帮助读者在面对BAT等大厂面试时更加从容。 ... [详细]
  • MapReduce原理是怎么剖析的
    这期内容当中小编将会给大家带来有关MapReduce原理是怎么剖析的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1 ... [详细]
  • window下kafka的安装以及测试
    目录一、安装JDK(需要安装依赖javaJDK)二、安装Kafka三、测试参考在Windows系统上安装消息队列kafka一、安装JDKÿ ... [详细]
  • Consul 单节点与集群环境构建指南
    本文详细介绍了如何安装和配置 Consul 以支持服务注册与发现、健康检查等功能,包括单节点和集群环境的搭建步骤。 ... [详细]
  • 58同城的Elasticsearch应用与平台构建实践
    本文由58同城高级架构师于伯伟分享,由陈树昌编辑整理,内容源自DataFunTalk。文章探讨了Elasticsearch作为分布式搜索和分析引擎的应用,特别是在58同城的实施案例,包括集群优化、典型应用实例及自动化平台建设等方面。 ... [详细]
  • 构建Filebeat-Kafka-Logstash-ElasticSearch-Kibana日志收集体系
    本文介绍了如何使用Filebeat、Kafka、Logstash、ElasticSearch和Kibana构建一个高效、可扩展的日志收集与分析系统。各组件分别承担不同的职责,确保日志数据能够被有效收集、处理、存储及可视化。 ... [详细]
  • 本文探讨了使用Lighttpd与FastCGI实现分布式部署的方法。通过在中心服务器上配置Lighttpd负责请求转发,同时在多个远程服务器上运行FastCGI进程来处理实际业务逻辑,从而提高系统的负载能力和响应速度。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 如何将955万数据表的17秒SQL查询优化至300毫秒
    本文详细介绍了通过优化SQL查询策略,成功将一张包含955万条记录的财务流水表的查询时间从17秒缩短至300毫秒的方法。文章不仅提供了具体的SQL优化技巧,还深入探讨了背后的数据库原理。 ... [详细]
  • 构建Elasticsearch环境与课程索引
    本章节详细介绍了如何在开发环境中搭建Elasticsearch (ES) 环境,包括安装、启动服务端以及创建索引和映射的具体步骤。对于旧版ES环境的清理方法也进行了说明。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
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社区 版权所有