作者:柏拉图恋情 | 来源:互联网 | 2024-12-22 14:02
本文深入探讨了白盒和黑盒监控的概念,以及它们在系统监控中的应用。通过详细分析基础监控和业务监控的不同采集方法,结合四个黄金指标的解读,帮助读者更好地理解和实施有效的监控策略。
本文将详细介绍白盒和黑盒监控的区别及其应用场景,并深入探讨如何有效收集和利用监控数据,以确保系统的稳定性和高效运行。
白盒监控侧重于从内部视角观察系统,例如通过机器存活、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连接数等。
- 业务监控: 基础功能单元使用率、消息队列长度等。
总结
本文总结了常见的监控指标采集方法和四个黄金指标的应用。不同业务系统有不同的监控需求,灵活应对各种情况至关重要。