监控体系概要
对一个在线业务的监控体系建立所需要的元素,进行概要的陈述。
评价的维度
- 从业务数据流按时间涉及的组件
- 客户端
- 用户发起1个请求:界面触发事件 -> js调用app接口 -> 底层sdk发出网络数据包
- 网络按照解析,层层转发,直到目的地端口
- 服务端
- 负载均衡:收到数据包,转给上游业务集群
- 业务节点外层网关:认证,解包,转实际工作节点
- 工作节点:按契约读取报文,执行逻辑,适配数据后落地存储层
- 存储层(含缓存):更新数据前,加目标加锁,执行更新,解锁,反馈执行结果
- 工作节点:拿到存储结果,执行后续逻辑,反馈最终报文
- 描述一个组件的视角
- 存活:组件在工作,最基本要求
- 性能和容量:能工作多快,能支撑多少请求
- 完整度:是什么对象(版本标志)
- 描述一个系统的视角
- 鲁棒性:在突发情况下能保障一定程度的业务正常运行
- 安全性:应对各种攻击
- 指标类型
- Metric:数值型|枚举型指标,反馈指定组件在某个维度上的即时状态,支持组合计算,对应工具:Prometheus、Zabbix等
- Log:其实是内部埋点,输出服务内部运行时的部分Message,支持对语句切词后再统计计算,对应工具:ELK等
- APM:从时序角度出发,记录每个交互组件的IO时间点,再汇总分析出最占用时间的段落,对应工具:Skywalking、听云等
常见组件的Metric指标和含义说明
本文档以阿里云的指标code做为案例,其他云和非云实例是差不多的
主机
- 存活,秒级
- ping通
- ssh通
- 性能和容量,分钟级
- CPU使用率
- 内存使用率
- 系统平均负载(1分钟):
/proc/loadavg
第一列数据 - 磁盘IOPS:分读、写
- 磁盘使用率:分系统盘、数据盘
- 网卡IO带宽:单位Mbps
- TCP连接数
- 完整度,天级
- 管理IP
- 网卡MAC
- OS版本
- hostname
- 主板SN
- 硬件配置:CPU核数、频率,内存容量(MB),磁盘容量(GB)
数据库
- 存活
- IP:Port通
- 性能和容量
- CPU使用率
- 内存使用率
- 磁盘空间(单位MByte)
- IOPS(单位:次/秒)
- 总连接数
- 网络流量(单位KB)
- TPS(平均每秒事务数)
- QPS(平均每秒SQL语句执行次数)
- 完整度
- 数据库版本
- 最大内存
- 最大连接数
- 最大IOPS
负载均衡LB
- 存活
- IP:Port通
- 性能和容量
- 流量bps
- 并发连接数
- 平均响应时间ms
- 错误反馈码占比
- 完整度
- 支持协议
- 调度算法
- 连接超时时间s
缓存Redis
- 存活
- IP:Port通,可读写
- 性能和容量
- CPU使用率
- 内存使用率
- IOPS
- 已使用连接数
- 出/入口流量速率 (KBps)
- 平均延时 (us)
- Key统计
- Key命中率
- 完整度
- 软件版本
- 最大连接数
- 最大私网带宽
应用
- 存活
- 进程pid
- 本地端口存活
- 性能和容量
- 使用的CPU占比
- 内存占用
- 磁盘IO量
- 并发线程数
- 完整度
- 软件版本