概念
-
-
当今的监控系统
-
监控系统除了能提供实时监控和告警,还能辅助决策,所有决策都以数据为支 撑,而非主观臆断。在大数据时代,数据变得越来越重要,监控数据不仅能提供实时状态展现,更能帮助故障回溯和预测风险等。当我们充分了解当前数据中心的真 实资源使用情况时,才能决定是否需要迁移服务、重新调度资源、清理垃圾数据及 采购新的服务器。在故障发生后,通过分析历史监控数据,可以准确定位故障源, 确定故障的发生时间及持续时间等,从而避免后续相关故障的发生。
监控系统功能组件
-
指标数据的采集
-
指标数据的存储
-
指标数据趋势分析可视化
-
告警
监控体系
-
系统层监控
-
系统监控: CPU, Load, Memory, Swap, Disk Io, Process, ....
-
网络监控: 网络设备, 工作负载, 网络延迟, 丢包率....
-
-
中间件即基础类设施监控
-
消息中间件: Kafka, RocketMq和RabbitMQ....
-
web服务器: Tomcat, Nginx....
-
数据库及缓存数据库: Mysql, MogoDb, Redis, ElasticSearch....
-
存储系统: Ceph....
-
-
应用层监控
-
用于衡量应用程序的状态和性能.
-
-
业务层监控
-
用于衡量应用程序的价值, 例如电子商务网站上的销售量
-
QPS, DAU日活 转化率.
-
业务接口: 登录数, 注册数, 订单量, 搜索量和支付量等.
-
可观测性系统
-
指标监控
-
随时间推移产生的一些于监控相关的可聚合数据点.
-
-
日志监控
-
离散式的日志或事件.
-
-
链路监控
-
分布式应用调用链路跟踪
-
CNCF将可观测性和数据分析归类一个单独的类别, 且划分了四个子类
-
日志系统
-
以 ElasticStack为代表
-
-
监控系统
-
以 Prometheus 为代表
-
-
分布式调用链路跟踪系统
-
以 Zipkin, jaeger 等为代表
-
-
混沌工程系统
-
以 ChaosMonkey 和 ChaosBlade 等为代表
-
监控方法论
Google 的四个黄金指标
成用于在服务级别帮助衡量终端用户体验, 服务中断, 业务影响等层面的问题, 适用于应用及服务监控
- 延迟(Latency)
服务请求所需的时长, 例如HTTP请求平均延迟
需要区分失败请求和成功请求.
- 流量(Traffic)
衡量服务的容量需求, 例如每秒处理的HTTP请求数或者数据库系统的事务数量.
- 错误(Errors)
请求失败的速率, 用于衡量错误发生的情况.
例如, HTTP 500 错误数等显式失败, 返回错误内容或无效内容等隐式失败, 以及由策略原因导致的失败(例如强制要求响应时间超过30毫秒的请求视为错误)
- 饱和度 (Saturation)
衡量资源的使用情况, 用于表达应用程序有多 满
例如内存, CPU,I/O, 磁盘等资源的使用量.
Netfix 的 USE 方法
全称 "Utilization Saturation and Errors Method", 主要用于分析体统性能, 可以指导用户快速识别资源瓶颈以及错误的方法, 应用于主机监控指标.
USE方法由Netflix的内核和性能工程师 Rendan Gregg 提出, 主要用于分析系统性能问题.
- 使用率(Utilization)
关注系统资源的使用情况, 这里的资源主要包括但不限于: CPU, 内存, 网络, 磁盘等.
100%的使用率通常是系统性能瓶颈的标识.
- 饱和度(Saturation)
例如CPU的平均运行排队长度, 这里主要针对资源的饱和度(注意, 不同于四大黄金信号)
任何资源在某种程度上的饱和都可能导致系统性能的下降.
- 错误(Errors)
错误计数
例如: "网卡在数据包传输过程中检测到的以太网网络冲突了14次"
Weave Cloud 的 RED 方法
Weave Cloud 基于 Google 的四个黄金指标的原则集合 Prometheus 以及 Kubernetes 容器实践, 细化和总结的方法论, 特别适用于云原生应用以及微服务框架应用的监控和度量.
在四大黄金指标的原则下, RED 方法可以有效的帮助用户衡量云原生以及微服务应用下的用户体验问题.
RED 方法主要关注一下三种关键指标
- (Reques)Rate: 每秒接收的请求数
- (Request)Errors: 每秒失败的请求数
- (Reques)Duration: 每个请求所话费的时长.