监控体系概要

对一个在线业务的监控体系建立所需要的元素,进行概要的陈述。

评价的维度

  1. 从业务数据流按时间涉及的组件
  2. 客户端
    1. 用户发起1个请求:界面触发事件 -> js调用app接口 -> 底层sdk发出网络数据包
    2. 网络按照解析,层层转发,直到目的地端口
  3. 服务端
    1. 负载均衡:收到数据包,转给上游业务集群
    2. 业务节点外层网关:认证,解包,转实际工作节点
    3. 工作节点:按契约读取报文,执行逻辑,适配数据后落地存储层
    4. 存储层(含缓存):更新数据前,加目标加锁,执行更新,解锁,反馈执行结果
    5. 工作节点:拿到存储结果,执行后续逻辑,反馈最终报文
  4. 描述一个组件的视角
  5. 存活:组件在工作,最基本要求
  6. 性能和容量:能工作多快,能支撑多少请求
  7. 完整度:是什么对象(版本标志)
  8. 描述一个系统的视角
  9. 鲁棒性:在突发情况下能保障一定程度的业务正常运行
  10. 安全性:应对各种攻击
  11. 指标类型
  12. Metric:数值型|枚举型指标,反馈指定组件在某个维度上的即时状态,支持组合计算,对应工具:Prometheus、Zabbix等
  13. Log:其实是内部埋点,输出服务内部运行时的部分Message,支持对语句切词后再统计计算,对应工具:ELK等
  14. APM:从时序角度出发,记录每个交互组件的IO时间点,再汇总分析出最占用时间的段落,对应工具:Skywalking、听云等

常见组件的Metric指标和含义说明

本文档以阿里云的指标code做为案例,其他云和非云实例是差不多的

主机

  1. 存活,秒级
  2. ping通
  3. ssh通
  4. 性能和容量,分钟级
  5. CPU使用率
  6. 内存使用率
  7. 系统平均负载(1分钟):/proc/loadavg 第一列数据
  8. 磁盘IOPS:分读、写
  9. 磁盘使用率:分系统盘、数据盘
  10. 网卡IO带宽:单位Mbps
  11. TCP连接数
  12. 完整度,天级
  13. 管理IP
  14. 网卡MAC
  15. OS版本
  16. hostname
  17. 主板SN
  18. 硬件配置:CPU核数、频率,内存容量(MB),磁盘容量(GB)

数据库

  1. 存活
  2. IP:Port通
  3. 性能和容量
  4. CPU使用率
  5. 内存使用率
  6. 磁盘空间(单位MByte)
  7. IOPS(单位:次/秒)
  8. 总连接数
  9. 网络流量(单位KB)
  10. TPS(平均每秒事务数)
  11. QPS(平均每秒SQL语句执行次数)
  12. 完整度
  13. 数据库版本
  14. 最大内存
  15. 最大连接数
  16. 最大IOPS

负载均衡LB

  1. 存活
  2. IP:Port通
  3. 性能和容量
  4. 流量bps
  5. 并发连接数
  6. 平均响应时间ms
  7. 错误反馈码占比
  8. 完整度
  9. 支持协议
  10. 调度算法
  11. 连接超时时间s

缓存Redis

  1. 存活
  2. IP:Port通,可读写
  3. 性能和容量
  4. CPU使用率
  5. 内存使用率
  6. IOPS
  7. 已使用连接数
  8. 出/入口流量速率 (KBps)
  9. 平均延时 (us)
  10. Key统计
  11. Key命中率
  12. 完整度
  13. 软件版本
  14. 最大连接数
  15. 最大私网带宽

应用

  1. 存活
  2. 进程pid
  3. 本地端口存活
  4. 性能和容量
  5. 使用的CPU占比
  6. 内存占用
  7. 磁盘IO量
  8. 并发线程数
  9. 完整度
  10. 软件版本

采集方案