谈谈我对建立企业内部监控系统的理解

一、建立监控系统的概述

建立企业内部的监控系统,主要是从资源到业务的全面监控体系。一个完善的监控系统不仅能及时发现和解决问题,更能预防潜在风险,保障业务连续性。

二、 监控系统的分层架构

我认为一个完善的监控系统分为三个层次,自底向上分别为

  1. 资源监控: 基础硬件和操作系统层面的监控
  2. 服务监控: 中间件、数据库和应用层面的监控
  3. 业务监控: 与业务指标相关的监控

三、建立企业级监控的最佳时机

建立企业级监控系统的最佳时机是在系统规划阶段,有如下几点考量:

  1. 可以设立统一的监控标准和规范
  2. 避免后期改造的兼容性问题
  3. 监控系统的需求能够影响业务系统架构的设计

如果把监控系统的设计往后放,后期将会面临一个巨大的问题,就是推行和现有不兼容的规范,导致推广阻力重重。

四、全面监控体系的建立

系统资源监控

CPU监控

CPU监控是服务器性能监控中最核心的部分之一,它直接反映了服务器的计算资源使用情况和健康状态。以下是关于CPU监控的内容:

  1. 使用率: 包括用户态、内核态、IO等待等细分指标
  2. CPU负载: 1分钟、5分钟、15分钟的平均负载
  3. 上下文切换: 过多的切换会影响性能
  4. 温度: 防止过热导致降频或损坏

内存监控

内存监控是服务器性能监控的关键组成部分,它直接关系到系统的稳定性和应用程序的性能表现。以下是关于内存监控的内容:

  1. 内存使用量: 总内存容量、已用内存、空闲内存、缓存/缓冲内存、内存使用率
  2. 交换空间(Swap): Swap总量、Swap使用量、Swap活跃度
  3. 内存泄漏: 长时间运行后的内存增长趋势

网络监控

网络监控是服务器性能监控的重要组成部分,它直接关系到服务的可用性、响应速度和数据传输效率。以下是关于网络资源监控的内容:

  1. 带宽使用: 入站和出站流量
  2. 连接数: TCP连接状态(ESTABLISHED、TIME_WAIT等)
  3. 错误包: 丢包、错包、重传
  4. 延迟: 网络往返时间
  5. DNS解析: :解析成功率和耗时

硬盘监控

硬盘监控是服务器存储系统健康状态和性能表现的关键指标,直接影响数据安全性和I/O性能。以下是关于硬盘资源监控的内容:

  1. 空间使用: 磁盘使用率、inode使用率、分区监控、增长趋势
  2. 磁盘I/O性能指标: IOPS、吞吐量、I/O延迟

中间件与应用监控

消息队列(MQ)监控

消息队列作为分布式系统的核心组件,其监控对于保障系统可靠性、可扩展性和性能至关重要。以下是针对MQ中间件的监控内容:

基础健康指标
  1. 服务可用性:MQ服务进程/端口存活状态
  2. 连接数:当前活跃的生产者/消费者连接数
  3. 集群状态:节点角色(master/slave)、集群同步状态
  4. 资源使用:MQ进程占用的CPU、内存、文件描述符
消息吞吐指标
  1. 消息生产速率:每秒入队消息数
  2. 消息消费速率:每秒出队消息数
  3. 消息堆积量:队列中未被消费的消息总数
  4. 消息处理延迟:从生产到消费的平均耗时
消息可靠性指标
  1. 消息重试次数:消费失败后的重试次数统计
  2. 消息成功率:发送成功/失败比例
  3. 事务成功率:事务性消息的提交/回滚比例
  4. 死信队列大小:无法投递的消息数量

缓存监控

缓存作为系统性能的关键加速层,其监控需要覆盖健康状态、性能指标、命中效果等多个维度。以下是缓存监控内容:

基础健康指标
  1. 服务可用性:缓存节点存活状态、主从关系
  2. 连接数:当前活跃客户端连接数/连接池状态
  3. 资源使用:内存占用、CPU使用、网络吞吐、内存碎片率、大key分布、键数量
  4. 持久化状态:RDB/AOF状态(Redis)、缓存磁盘写入量
性能指标
  1. 响应时间:P99/P95读写延迟
  2. 吞吐量:每秒操作数
  3. 网络I/O:入站/出站流量(MB/s)
  4. 异常数:超时、连接失败等异常情况
缓存效率指标
  1. 命中率:按业务维度细分(如按key前缀)
  2. 淘汰率:因内存不足被驱逐的键数量

数据库监控

数据库监控是保障业务连续性的核心环节,是业务数据的核心存储。以下是数据库监控的内容:

连接池
  1. 总连接数:当前建立的连接总数
  2. 空闲连接:可用但未使用的连接
  3. 活跃连接:正在处理请求的连接
  4. 等待连接:因连接池耗尽而等待的请求
性能指标
  1. 慢查询:超过阈值的查询语句
  2. 大事务:执行时间过长或影响行数过多的事务
  3. 锁等待:因锁竞争导致的等待
  4. 复制延迟:主从数据库之间的数据同步延迟

业务接口监控

应用接口是业务功能的直接体现,监控内容包括:

可用性
  1. 健康检查:定期探测接口是否可达
  2. 成功率:请求成功与失败的比例
  3. 错误码分布:各类错误码的出现频率
    关于错误码这边,我推荐在返回报文数据结构中使用两个返回码,分别是系统响应编码和业务响应编码。当出现系统响应编码失败时,可以先联系研发人员进行排查处理。当业务编码响应失败时,理论上来说更多的可能是业务语义的失败,根据失败的描述,接口调用者可先行检查业务侧的问题
性能指标
  1. 响应时间:平均响应时间及百分位值
  2. 吞吐量:TPS(每秒事务数)和QPS(每秒查询数)
  3. 并发数:同时处理的请求数量
    我关于TPS的理解是一组逻辑相关的请求,而服务整体处理能力取决于处理能力最低模块的TPS值。QPS指服务器每秒能够响应的查询次数,用于衡量特定的查询服务器在规定时间内所处理流量多少,主要针对专门用于查询的服务器的性能指标

业务监控

业务监控将技术指标与业务价值直接关联,是整个系统建设最直接的反馈。

核心业务指标

不同公司不同业务系统的核心业务指标不同,无法罗列出来,所有整理一些通用的内容以供大家参考

  1. 转化率:关键路径的用户转化比例
  2. 订单量:成功创建的订单数量
  3. 支付成功率:支付流程的完成率
  4. 客单价:平均每个订单的金额

用户体验指标

  1. 页面加载时间:关键页面的渲染耗时
  2. 操作流畅度:用户交互的响应速度
  3. 错误率:用户操作失败的比例

业务异常

业务异常监控是保障系统健康稳定运行的"预警雷达",它能够及时发现业务运行中的偏离和风险,使研发以及运维人员尽早的介入。

数据完整性异常
  1. 空值/缺失值激增:关键字段缺失率超过阈值
  2. 数据格式异常:不符合预设格式的数据
  3. 枚举值越界:出现未定义的枚举值
业务量波动异常
  1. 同比/环比突降:当日案件数较上周同期下降
  2. 时段分布异常:非高峰时段的流量激增
  3. 渠道占比失衡:某渠道流量突然激增

五、总结

以上是我对企业监控系统建设的个人见解,受经验所限难免疏漏。若能为您的相关工作带来些许帮助,便是本文最大的意义。

相关推荐
Livingbody19 分钟前
【心理咨询师数字孪生对话数据集】标准化为 ShareGPT OpenAI 格式
后端
小徐不徐说1 小时前
C++ 模板与 STL 基础入门:从泛型编程到实战工具集
开发语言·数据结构·c++·qt·面试
AQin10122 小时前
IP 🆚 MAC,你分得清吗?
后端·网络协议
天涯学馆2 小时前
Solidity 中的高级模式匹配:提升代码的可读性和可维护性
后端·区块链·solidity
郝学胜-神的一滴3 小时前
Spring Boot Actuator 保姆级教程
java·开发语言·spring boot·后端·程序人生
剪刀石头布啊3 小时前
数据口径
前端·后端·程序员
剪刀石头布啊3 小时前
http状态码大全
前端·后端·程序员
conkl3 小时前
嵌入式 Linux 深度解析:架构、原理与工程实践(增强版)
linux·运维·服务器·架构·php·底层·堆栈
jiangxia_10243 小时前
面试系列:什么是JAVA并发编程中的JUC并发工具类
java·后端
用户1512905452203 小时前
踩坑与成长:WordPress、MyBatis-Plus 及前端依赖问题解决记录
前端·后端