监控平台

cqstt 37b93ebff5 查询修改 1 year ago
.mvn 83a9d0e6f1 新增mvnw 2 years ago
doc da800fb38b 解决用修改用户功能强行越权的bug 2 years ago
phoenix-agent c232c3985e 生产配置 1 year ago
phoenix-client 4896f1a779 优化 1 year ago
phoenix-common 4896f1a779 优化 1 year ago
phoenix-server b808f41c6a 心跳检测 1 year ago
phoenix-ui 37b93ebff5 查询修改 1 year ago
.gitignore e10ed65d81 优化代码 2 years ago
LICENSE 14c48c471a 更换开源协议为 GPL-3.0 3 years ago
README.md 88208cefab 初始化监控中心 2 years ago
mvn_package.cmd 31225c4c56 修改readme 2 years ago
mvn_package.sh 31225c4c56 修改readme 2 years ago
mvnd_package.cmd 67cb271c25 新建mvnd打包脚本 2 years ago
mvnd_package.sh b39ebfc6d6 新建mvnd打包脚本 2 years ago
mvnw 83a9d0e6f1 新增mvnw 2 years ago
mvnw.cmd 83a9d0e6f1 新增mvnw 2 years ago
mvnw_docker_build.cmd ea549f608c 新增mvnw 2 years ago
mvnw_docker_build.sh ea549f608c 新增mvnw 2 years ago
mvnw_package.cmd ea549f608c 新增mvnw 2 years ago
mvnw_package.sh ea549f608c 新增mvnw 2 years ago
pom.xml 3d00fa4034 优化jar包加密等等 2 years ago

README.md

介绍

“phoenix” 是一个灵活可配置的开源监控平台,主要用于监控应用程序、服务器、数据库、网络、tcp端口和http接口,通过实时收集、汇聚和分析监控信息,实现在发现异常时立刻推送告警信息,并且提供了可视化系统进行配置、管理、查看。

  • 应用程序

默认支持Java应用程序,监控内容包括:在线状态、JVM、业务埋点。其它应用程序需要自己开发客户端,来调用接口与服务端或者代理端通信(心跳接口、服务器信息接口、告警接口);

  • JVM

监控内容包括:内存、线程、类、GC等;

  • 服务器

支持主流服务器,如Linux、Windows、macOS、Unix等;
监控内容包括:在线状态、操作系统、CPU、平均负载、进程、磁盘、内存、网卡、电池、传感器;

  • 数据库

支持MySQL、Oracle、Redis、Mongo;
监控内容:

    MySQL:会话;  
    Oracle:会话、表空间;  
    Redis:Redis信息全集;   
    Mongo:Mongo信息全集;
  • 网络:支持监控网络状态;

  • TCP:支持监控TCP服务状态;

  • HTTP:支持监控HTTP服务状态;

  • 告警:默认支持电子邮件。

特点

  1. 分布式;
  2. 跨平台;
  3. 支持docker部署;
  4. 实时监测告警;
  5. 数据加密传输;
  6. 灵活可配置;
  7. 用户界面支持PC端、移动端。

设计

  • 功能架构

功能导图

  • 逻辑架构

逻辑架构图

  • 运行环境

Maven3+
Jdk >=1.8,若使用Sigar监控服务器,则Jdk版本要用1.8(1.8.0_131到1.8.0_241)
Lombok
Mysql5.7+

  • 技术选型

核心框架:SpringBoot、SparkJava 安全框架:SpringSecurity、SpringSession
任务调度:JUC、SpringTask、Quartz
持久层框架:MyBatis、 MyBatis-Plus
数据库连接池:Alibaba Druid
日志管理:SLF4J、Logback
前端框架:Layui、ECharts
监控框架:Sigar、oshi

  • 模块结构

平台使用Java + Layui + ECharts开发,数据库采用MySQL。

phoenix(监控平台父工程)
├── phoenix-common(监控公共模块父工程)
│ ├── phoenix-common-core(监控核心公共模块)
│ └── phoenix-common-web(监控WEB公共模块)
├── phoenix-client(监控客户端父工程)
│ ├── phoenix-client-core(监控客户端)
│ ├── phoenix-client-spring-boot-starter(监控客户端与springboot集成的starter)
│ └── phoenix-client-spring-mvc-integrator(监控客户端与springmvc集成的integrator)
├── phoenix-agent(监控代理端)
├── phoenix-server(监控服务端)
├── phoenix-ui(监控UI端)
└── doc(文档)

phoenix:监控平台父工程,管理平台的依赖、构建、插件等;
phoenix-common:监控公共模块,提供平台所有的公共代码,包含一个监控核心公共模块(phoenix-common-core)和一个监控WEB公共模块(phoenix-common-web);
phoenix-client:监控客户端,用于集成到Java应用程序中实现业务埋点和Java应用程序监控信息收集,包含一个通用模块(phoenix-client-core)和与springboot集成的starter(phoenix-client-spring-boot-starter)、与springmvc集成的integrator(phoenix-client-spring-mvc-integrator)两个拓展模块;
phoenix-agent:监控代理端,用于收集服务器信息和汇聚、转发来自监控客户端的信息(已改为spark架构,原因:内存占用较少适合POS);
phoenix-server:监控服务端,是监控平台的核心模块,用于汇聚、分析监控信息,在发现异常时实时推送告警信息;
phoenix-ui:监控可视化系统,用于平台配置、用户管理、监控信息查看、图表展示等;
doc:包含平台的设计文档、服务启停脚本、数据库脚本等。