2.4. 分布式系统的监控

2.4.1. 术语描述

监控

收集处理汇总并且展示关于某个系统的实时量化数据。

白盒监控

依靠系统内部暴露的一些性能指标进行监控。

黑盒监控

通过测试某种外部用户可见的系统行为进行监控。

监控台页面

提供某个服务核心指标一览服务的应用程序。

警报

目标对象是某个人发现某个系统地址的一个通知。

根源问题

指系统中的某种缺陷。

节点或者机器

物理机或者具体运行实例。

推送

关于某个服务正在运行的软件或者其配置文件的任何改动。

2.4.2. 为什么要监控

  • 分析长期趋势

  • 报警

  • 构建监控台页面

  • 历史性回溯分析

  • 跨时间范围比较

2.4.3. 对监控系统设置合理预期

2.4.4. 现象与原因

什么东西出故障了是现象 , 为什么则表示原因。

2.4.5. 黑盒监控与白盒监控

黑盒监控是面向现象的,代表目前正在发生的,标识系统现在有故障。

白盒监控可以检测到即将发生的问题及哪些重试掩盖的问题。

2.4.6. 4个黄金指标

  • 延迟

  • 流量

  • 错误

  • 饱和度

2.4.7. 关于长尾问题

平均值不一定能发现一些长尾问题, 需要使用分位值。

2.4.8. 度量指标采用合适的精度

高采集周期保留比较短时间, 汇聚数据保留比较长时间。

2.4.9. 简化到不能在简化

  • 哪些最能反映真实故障的规则应该约简单越好,可预测性强,非常可靠。

  • 哪些不常用的应该删除

2.4.10. 将上述理念整合起来

问题的问题

  1. 改规则能否检测到一个当前检测不到的用户可见故障。

  2. 是否忽略这个报警,如何避免

  3. 这边警报是否展示用户正在收到影响

  4. 收到报警是不是必须要进行某个操作。

  5. 是否其他人收到相关的紧急报警。

深层理念

  1. 每当收到报警,都应该采取某种操作。

  2. 每个报警都应该是具体可以操作的。

  3. 每个报警的回复都应该某种智力分析过程

  4. 每个报警都应该是某个新问题的,不应该是彼此重叠的。

2.4.11. 监控系统的长期维护

2.4.12. 小结

要建立on-call轮值体系,构建一个产品展示当前发生和即将发生的问题进行报警,设置合理目标,保证监控系统可以支持快速 的问题定位与检测。