Phoenix 是一个灵活可配置的开源监控平台,主要用于监控应用程序、服务器、网络设备、Docker、数据库、网络、TCP端口和HTTP接口。通过实时收集、汇聚和分析监控信息,实现在发现异常时立刻推送告警信息,并且提供了可视化系统进行配置、管理和查看。
开源不等同于免费,允许基于 Phoenix 进行二次开发,但不得修改 logo、名称、版权等。
Phoenix 已通过 GitCode G-Star 毕业项目认证。
G-Star认证Phoenix 提供两个版本:开源版(1.x) 和 商用版(2.x)。开源版包含核心监控能力,适合个人学习和小型项目;商用版在此基础上扩展了 Docker 监控、网络设备管理、在线诊断、动态线程池、慢SQL监控、企业通知渠道、业务异常日志采集等高级功能,适合企业级生产环境。
💰 标记表示商用版专属收费功能。
| 功能模块 | 功能 | 监控内容 | 开源版(1.x) | 商用版(2.x) |
|---|---|---|---|---|
| 服务器监控 | 服务器资源监控 | 在线状态、操作系统、CPU、平均负载、内存、磁盘、网卡、电池、传感器、进程 | ✅ | ✅ |
| Java应用监控 | JVM监控 | JVM概要、内存、线程、类加载、GC | ✅ | ✅ |
| 应用实例状态监控 | 在线状态 | ✅ | ✅ | |
| 业务埋点监控 | 业务埋点 | ✅ | ✅ | |
| 动态线程池监控与管理 | 线程池参数查看与动态修改 | ❌ | 💰 | |
| Arthas在线JVM诊断 | JVM在线诊断 | ❌ | 💰 | |
| 网络监控 | HTTP接口监控 | 接口可用性 | ✅ | ✅ |
| TCP端口监控 | Telnet端口状态 | ✅ | ✅ | |
| Ping网络连通性监控 | 网络连通性 | ✅ | ✅ | |
| 网络设备SNMP监控 | 交换机、路由器等:在线状态、系统信息、接口信息 | ❌ | 💰 | |
| 数据库监控 | 数据库连接状态监控 | MySQL、Oracle、Redis、MongoDB在线状态与会话 | ✅ | ✅ |
| 数据库慢SQL监控 | MySQL慢SQL、Oracle慢SQL与表空间 | ❌ | 💰 | |
| Docker监控 | Docker完整监控 | 服务状态、容器、镜像、事件、资源统计 | ❌ | 💰 |
| 告警系统 | 告警通知(邮件 / 短信) | 四级告警(INFO/WARN/ERROR/FATAL) | ✅ | ✅ |
| 告警通知(钉钉 / 企业微信 / 飞书) | 多渠道企业通知 | ❌ | 💰 | |
| 告警次数配置(故障 / 恢复) | 故障与恢复告警次数阈值 | ❌ | 💰 | |
| 日志管理 | 操作日志管理 | 操作日志记录、查看、管理 | ✅ | ✅ |
| 异常日志管理 | 异常日志记录、查看、管理 | ✅ | ✅ | |
| 业务异常日志采集 | 客户端异常日志采集 | ❌ | 💰 | |
| 通信架构 | HTTP通信 | 基础HTTP通信 | ✅ | ✅ |
| WebSocket通信 | WebSocket实时通信 | ❌ | 💰 | |
| 可视化界面 | 基础监控仪表盘 | PC端和移动端监控面板 | ✅ | ✅ |
| Docker管理界面 | Docker管理与监控页面 | ❌ | 💰 | |
| 网络设备管理界面 | 网络设备管理与监控页面 | ❌ | 💰 | |
| 网络拓扑图 | 拓扑图展示 | ❌ | 💰 | |
| Web终端仿真 | 在线终端 | ❌ | 💰 | |
| Arthas诊断界面 | Arthas诊断操作页面 | ❌ | 💰 |
📮 获取商业版:如需获取商业版授权或了解更多详情,请查看《商用版定价方案》或联系作者(微信:
pifengeclipse),更多联系方式详见联系我们。
系统架构图
| 类别 | 技术 |
|---|---|
| 核心框架 | Spring Boot 、Netty |
| 安全框架 | Spring Security 、Spring Session |
| 持久层 | MyBatis-Plus 、Alibaba Druid |
| 任务调度 | JUC 、Spring Task 、Quartz |
| 服务器监控 | Sigar / OSHI |
| 网络设备监控 | SNMP4J |
| Docker监控 | docker-java |
| JVM诊断 | Alibaba Arthas |
| 加密 | Bouncy Castle |
| 前端框架 | Layui 、ECharts 、jtopo(拓扑图)、xterm(终端仿真) |
| 工具库 | Hutool 、FastJSON 、Jackson 、Apache Commons(IO/Collections/Net) |
| 其他 | EasyPOI(导出)、Knife4j(API文档) |
phoenix(监控平台) ├── phoenix-common(公共模块) │ ├── phoenix-common-core -- 核心公共:线程池、数据模型、工具类、加解密 │ ├── phoenix-common-netty -- Netty通信:WebSocket、长连接、断线重连 │ └── phoenix-common-web -- Web公共:REST API 基础设施 ├── phoenix-client(客户端SDK) │ ├── phoenix-client-core -- 核心:数据收集、心跳、业务埋点 │ ├── phoenix-client-spring-boot-starter -- Spring Boot 自动配置 │ └── phoenix-client-spring-mvc-integrator -- Spring MVC 适配 ├── phoenix-agent -- 代理端:服务器/Docker/SNMP 数据采集 ├── phoenix-server -- 服务端:数据处理、告警引擎、配置下发 ├── phoenix-ui -- 可视化UI:Web 管理界面 ├── doc -- 文档:架构图、截图、数据库脚本、部署脚本、技术博客 └── mvn -- Maven打包脚本
一键安装:10 分钟即可完成自动安装
最低资源需求:1核 CPU / 2 GB 内存 / 5 GB 磁盘
软件依赖:Docker 20.10.14+
bash -c "$(curl -fsSL https://gitee.com/monitoring-platform/phoenix/raw/master/doc/Docker/install.sh)"
软件依赖:Docker Compose 2.0.0+
bash -c "$(curl -fsSL https://gitee.com/monitoring-platform/phoenix/raw/master/doc/DockerCompose/install.sh)"
bash -c "$(curl -fsSL https://gitee.com/monitoring-platform/phoenix/raw/master/doc/Docker/phoenix-agent/install_agent.sh)"
phoenix-server 配置:
phoenix-server/src/main/resources/ 复制 application-prod.yml
/data/phoenix/phoenix-server/config/
phoenix-agent 配置:
phoenix-agent/src/main/resources/ 复制 monitoring-prod.properties
/data/phoenix/phoenix-agent/config/
monitoring.comm.http.url 配置为 http://<server-ip>:16000/phoenix-server
安装完成后访问:http://<ui-ip>/phoenix-ui/index,初始账号 admin / admin123、guest / guest123
Maven Central 最新稳定版本:1.2.7.RELEASE
普通 Java 程序:
<dependency> <groupId>com.gitee.pifeng</groupId> <artifactId>phoenix-client-core</artifactId> <version>1.2.7.RELEASE</version> </dependency>
Spring Boot 程序:
<dependency> <groupId>com.gitee.pifeng</groupId> <artifactId>phoenix-client-spring-boot-starter</artifactId> <version>1.2.7.RELEASE</version> </dependency>
Spring MVC 程序:
<dependency> <groupId>com.gitee.pifeng</groupId> <artifactId>phoenix-client-spring-mvc-integrator</artifactId> <version>1.2.7.RELEASE</version> </dependency>
首页1 首页2 首页3
服务器1 服务器2 服务器3
应用程序1 应用程序2 应用程序3
数据库1 数据库2 数据库3 数据库4
网络1 网络2 TCP1 TCP2 HTTP1 HTTP2 HTTP3
DOCKER1 DOCKER2 DOCKER3 DOCKER4 DOCKER5
拓扑图1 拓扑图2 拓扑图3 拓扑图4 拓扑图5
告警1 告警2 告警定义
用户管理 操作日志1 操作日志2 异常日志1 异常日志2 监控配置
共 60+ 篇深度技术文章(持续更新中),涵盖架构设计与核心实现:
| 系列 | 篇数 | 内容 |
|---|---|---|
| 通信与数据安全 | 7 | 全景概览、HTTP通信、WebSocket通信、Netty服务端、Netty客户端、加解密、数据压缩 |
| 客户端SDK | 8 | Monitor入口、心跳机制、配置加载、JVM采集、线程池采集、Spring Boot集成、Spring MVC集成、业务埋点 |
| 代理端 | 7 | 整体架构、服务器采集(上)、服务器采集(下)、Docker采集、Docker Stats、SNMP采集、数据转发 |
| 服务端核心 | 10 | 数据接收、并行处理、实例管理、服务器监控、Docker监控、数据库监控、慢SQL检测、网络监测、分布式锁、实时监控表 |
| 告警引擎 | 7 | 告警定义、触发流程、邮件通道、钉钉通道、企业微信通道、飞书通道、告警收敛 |
| UI端与安全 | 7 | UI架构、SpringSecurity认证、CAS单点登录、验证码、日志、前端交互、拓扑图 |
| 线程池监控 | 3 | 注册体系、动态调参、历史趋势 |
| 公共模块与工程化 | 4 | DTO体系、Domain模型、HTTP加解密切面、Maven多模块管理 |
| 部署与运维 | 4 | Docker部署、Docker Compose、服务化部署、集群高可用 |
| 数据库设计 | 3 | 表分域与索引策略、实时+历史双表模式、Quartz调度表 |
👉 阅读博客:微信公众号
👉 扫码关注微信公众号,获取更多技术干货
| 演示地址 | 账号 | 密码 | ||||||
|---|---|---|---|---|---|---|---|---|
| 🤝 贡献指南
欢迎提出更好的意见,帮助完善 Phoenix!
💡 升级日志 📄 版权许可GPLv3 协议开源,请遵守协议要求。 📬 联系我们
|