当前位置: 欣欣网 > 码农

12.1k Star, 推荐一款灵活可配置的开源监控平台

2024-05-06码农

一、项目简介

项目一款高度定制化的开源监控神器,专为追踪应用、服务器、Docker、数据库、网络、TCP端口及HTTP接口而设计。它不仅能够实时采集关键数据,还能聚合并深入分析,确保在异常状况发生时立刻触发警报。此外,还搭载了直观的可视化界面,让配置管理与数据查看变得轻松而高效。

1.1 应用程序

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

1.2 服务器

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

1.3 Docker

监控内容包括:服务、容器、镜像、事件、资源;

1.4 数据库

支持 MySQL、Oracle、Redis、Mongo;
监控内容:
MySQL:会话;
Oracle:会话、表空间;
Redis:Redis信息全集;
Mongo:Mongo信息全集;

  • 网络:支持监控网络状态;

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

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

  • 告警:默认支持电子邮件、钉钉、企业微信。

  • 二、特点

    1. 分布式;

    2. 跨平台;

    3. 支持docker部署;

    4. 实时监测告警;

    5. 数据加密传输;

    6. 灵活可配置;

    7. 用户界面支持PC端、移动端;

    8. 基于http接口,支持拓展实现监控其它编程语言编写的程序。

    三、设计

  • 功能架构

  • 系统架构

  • 运行环境

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

  • 技术选型

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

  • 模块结构

    平台使用 Java + Layui 开发,数据库采用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(文档)
    └── script(Maven打包脚本)

    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:监控代理端,用于收集服务器信息、Docker信息,汇聚、转发来自监控客户端的信息,若部署在跳板机上可打通网络壁垒;
    phoenix-server:监控服务端,是监控平台的核心模块,用于汇聚、分析监控信息,在发现异常时实时推送告警信息;
    phoenix-ui:监控可视化系统,用于平台配置、用户管理、监控信息查看、图表展示等;
    doc:包含平台的设计文档、服务启停脚本、数据库脚本等;
    script:包含平台的Maven打包脚本。

  • 四、下载

  • 源码仓库地址

    https://gitee.com/monitoring-platform/phoenix

    https://github.com/709343767/phoenix

    注意:一定要下载最新发行版源码!

  • 中央仓库地址

    1. 客户端为普通Java程序

    <!-- https://mvnrepository.com/artifact/com.gitee.pifeng/phoenix-client-core -->
    <dependency>
    <groupId>com.gitee.pifeng</groupId>
    <artifactId>phoenix-client-core</artifactId>
    <version>${最新稳定版本}</version>
    </dependency>

    1. 客户端为springboot程序

    <!-- https://mvnrepository.com/artifact/com.gitee.pifeng/phoenix-client-spring-boot-starter -->
    <dependency>
    <groupId>com.gitee.pifeng</groupId>
    <artifactId>phoenix-client-spring-boot-starter</artifactId>
    <version>${最新稳定版本}</version>
    </dependency>

    1. 客户端为springmvc程序

    <!-- https://mvnrepository.com/artifact/com.gitee.pifeng/phoenix-client-spring-mvc-integrator -->
    <dependency>
    <groupId>com.gitee.pifeng</groupId>
    <artifactId>phoenix-client-spring-mvc-integrator</artifactId>
    <version>${最新稳定版本}</version>
    </dependency>

  • 最新稳定版本

    1.2.5.RELEASE

  • 五、部署

    5.1 Jar包部署

    1)打包
    监控 UI 端、监控服务端、监控代理端 直接打成可执行 jar。

    mvn -Dmaven.test.skip=true clean package

    2)上传 jar、脚本
    i.jar在源码中的路径:
    phoenix/target/phoenix-ui.jar
    phoenix/target/phoenix-server.jar
    phoenix/target/phoenix-agent.jar
    ii.脚本在源码中的路径:
    phoenix/doc/脚本/UI端/phoenix_ui.sh
    phoenix/doc/脚本/服务端/phoenix_server.sh
    phoenix/doc/脚本/代理端/phoenix_agent.sh
    phoenix/doc/脚本/UI端/startup_ui.bat
    phoenix/doc/脚本/服务端/startup_server.bat
    phoenix/doc/脚本/代理端/startup_agent.bat

    3)运行
    i.Linux 系统

    程序 脚本 命令 含义
    监控UI端 phoenix_ui.sh ./phoenix_ui.sh start 启动
    监控UI端 phoenix_ui.sh ./phoenix_ui.sh stop 停止
    监控UI端 phoenix_ui.sh ./phoenix_ui.sh restart 重启
    监控UI端 phoenix_ui.sh ./phoenix_ui.sh status 检查状态
    监控服务端 phoenix_server.sh ./phoenix_server.sh start 启动
    监控服务端 phoenix_server.sh ./phoenix_server.sh stop 停止
    监控服务端 phoenix_server.sh ./phoenix_server.sh restart 重启
    监控服务端 phoenix_server.sh ./phoenix_server.sh status 检查状态
    监控代理端 phoenix_agent.sh ./phoenix_agent.sh start 启动
    监控代理端 phoenix_agent.sh ./phoenix_agent.sh stop 停止
    监控代理端 phoenix_agent.sh ./phoenix_agent.sh restart 重启
    监控代理端 phoenix_agent.sh ./phoenix_agent.sh status 检查状态
    六、页面截图

    使用说明

    https://kacper.fun/types/28

    看到最后,如果这个方法对你有用,一定要给我点个「 在看 」。