专栏名称: 芋道源码
纯 Java 源码分享公众号,目前有「Dubbo」「SpringCloud」「Java 并发」「RocketMQ」「Sharding-JDBC」「MyCAT」「Elastic-Job」「SkyWalking」「Spring」等等
目录
相关文章推荐
芋道源码  ·  监控系统选型,一篇全搞定! ·  昨天  
芋道源码  ·  如何应对消息堆积? ·  2 天前  
芋道源码  ·  Cloudflare ... ·  2 天前  
芋道源码  ·  Spring ... ·  3 天前  
51好读  ›  专栏  ›  芋道源码

监控系统选型,一篇全搞定!

芋道源码  · 公众号  · Java  · 2025-03-21 09:44

正文

👉 这是一个或许对你有用 的社群

🐱 一对一交流/面试小册/简历优化/求职解惑,欢迎加入 芋道快速开发平台 知识星球。 下面是星球提供的部分资料:

👉 这是一个或许对你有用的开源项目

国产 Star 破 10w+ 的开源项目,前端包括管理后台 + 微信小程序,后端支持单体和微服务架构。

功能涵盖 RBAC 权限、SaaS 多租户、数据权限、商城、支付、工作流、大屏报表、微信公众号、CRM 等等功能:

  • Boot 仓库:https://gitee.com/zhijiantianya/ruoyi-vue-pro
  • Cloud 仓库:https://gitee.com/zhijiantianya/yudao-cloud
  • 视频教程:https://doc.iocoder.cn
【国内首批】支持 JDK 21 + SpringBoot 3.2.2、JDK 8 + Spring Boot 2.7.18 双版本

来源:网络

这篇文章,我将对监控体系的基础知识、原理和架构做一次系统性整理,同时还会对几款最常用的开源监控产品做下介绍,以便大家选型时参考。内容包括3部分:

  • 必知必会的监控基础知识
  • 主流监控系统介绍
  • 监控系统的选型建议

必知必会的监控基础知识

我们可以理解监控系统就像我们古代打战的哨兵一样,哨兵的角色非常重要,敌人来了,哨兵会第一时间发出预警(吹笛、打鼓、放烟),让守城的战士能够最快的时间处理,应对。

那对于我们应用系统而言,监控系统就像我们第三只眼,如果有应用系统出现问题,我们可以通过监控系统看是哪里出现问题,是redis挂了,还是说服务器内存满了,有监控系统我们可以很轻松、快速的定位问题。

甚至我们可以设置预警,对一些将要出现的问题进行提前预防处理,及时避免问题的发生。

1、监控系统的作用

  • 帮助定位故障 : 在发生故障时,我们可以通过查看监控系统的各项指标数据,辅助故障分析和定位。
  • 预警减少故障率 : 对于即将可能产生的故障能够及时发出预警信息,做好提前预防处理。
  • 辅助容量规划 : 为服务器、中间件以及应用集群的容量规划提供数据支撑。
  • 辅助性能调优 : JVM垃圾回收次数、接口响应时间、慢SQL等等都可以监控优化。

2、常见的监控对象和指标都有哪些?

  • 服务器监控 : CPU使用率、内存使用率、磁盘使用率、磁盘读写的吞吐量、网络出入流量等等。

  • MySQL监控 : TPS、QPS、数据库连接数、慢SQL、InnoDB缓冲池命中率等等。

  • Redis监控 : 内存使用率、缓存命中率、key值总数、Redis响应请求时间、客户端连接数、持久性指标等等。

  • MQ监控 : 连接数、队列数、生产速率、消费速率、消息堆积量等等。

  • 应用监控 :

    • HTTP接口:URL存活、请求量、耗时、异常量
    • JVM :GC次数、GC耗时、各个内存区域的大小、当前线程数、死锁线程数
    • 线程池:活跃线程数、任务队列大小、任务执行耗时、拒绝任务数

3、监控系统的基本流程

  • 数据采集 :采集的方式有很多种,包括日志埋点进行采集,JMX标准接口输出监控指标,被监控对象提供REST API进行数据采集(如Hadoop、ES),系统命令行,统一的SDK进行侵入式的埋点和上报等。
  • 数据传输 :将采集的数据以TCP、UDP或者HTTP协议的形式上报给监控系统,有主动Push模式,也有被动Pull模式。
  • 数据存储 :有使用MySQL、Oracle等关系数据库存储的,也有使用时序数据库RRDTool、OpentTSDB、InfluxDB存储的,还有使用HBase存储的。
  • 数据展示 :数据指标的图形化展示。
  • 监控告警 :灵活的告警设置,以及支持邮件、短信、IM等多种通知通道。

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://gitee.com/zhijiantianya/ruoyi-vue-pro
  • 视频教程:https://doc.iocoder.cn/video/

市面上的一些常见监控系统比较

下面再来认识下主流的开源监控系统,由于篇幅有限,我挑选了3款使用最广泛的监控系统: Zabbix Open-Falcon Prometheus ,会对它们的架构进行介绍,同时总结下各自的优劣势。

1、Zabbix介绍

Zabbix 1998年诞生,核心组件采用C语言开发,Web端采用PHP开发。它属于老牌监控系统中的优秀代表,监控功能很全面,使用也很广泛,差不多有70%左右的互联网公司都曾使用过 Zabbix 作为监控解决方案。

先来了解下Zabbix的架构设计:







请到「今天看啥」查看全文