运维监控平台-Phoenix
介绍:不止是监控,更是一套完整的反馈闭环
Phoenix 是一个用 Java + Layui 构建的开源监控平台,核心理念是“轻量、灵活、可视化”。它既可以部署在本地,也支持 Docker,适合中小型团队快速落地。
前端
前端采用 Layui + ECharts + jtopo,界面清爽,响应式设计,PC 和手机都能看。图表直观,资源使用趋势、服务状态、告警记录一目了然。
后端
后端基于 Spring Boot,模块化设计清晰:
phoenix-server:核心服务,负责数据汇聚、分析和告警;phoenix-agent:代理端,用于采集服务器、Docker 等信息;phoenix-client:提供 Spring Boot / Spring MVC 的集成 starter,Java 应用只需引入依赖,就能自动上报 JVM、线程池、业务埋点等数据。
功能的清单介绍
特点
- 分布式架构:服务端、代理端、客户端可分离部署;
- 跨平台支持:Linux、Windows、macOS 通吃;
- 开箱即用:3 分钟 Docker 一键安装;
- 告警通道丰富:支持邮-件、钉-钉、企业-微-信、飞-书;
- 数据安全:传输加密,避免敏感信息泄露;
- 可扩展性强:基于 HTTP 接口,其他语言程序也能接入。
技术架构
后端技术栈非常“Java 企业级”:
- 核心框架:Spring Boot
- 安全控制:Spring Security + Spring Session
- 任务调度:Quartz + Spring Task
- 持久层:MyBatis-Plus + Druid
- 监控采集:Sigar、oshi、Arthas、docker-java、snmp4j
前端则走轻量路线,没有上 Vue 或 React,而是用 Layui 快速构建管理界面,对后端开发者更友好。
部署方式
支持多种部署方式:
- Docker 一键安装(推荐):一行命令搞定;
- Docker Compose:适合本地开发或测试环境;
- 传统 Maven 打包:适合有定制需求的团队。
最低资源要求仅 1核 CPU / 2GB 内存 / 5GB 磁盘,轻量到能在低配云服务器上跑起来。
开源协议
Phoenix 遵循 GPL 协议 开源。这意味着你可以免费使用、学习、部署,但若用于商业产品并二次分发,需遵守 GPL 的源码公开要求。项目明确说明:不能随意修改 logo、名称或版权信息,尊重原作者的劳动成果。
即刻体验一波
想快速试试,方提供了演示地址:
也可以本地部署,只需运行:
# Docker 安装(需 Docker 20.10+)
bash -c "$(curl -fsSL https://gitee.com/monitoring-platform/phoenix/raw/master/doc/Docker/install.sh)"
部署完成后,访问 你的IP/phoenix-ui/index,用 admin/admin123 登录,就能开始配置监控项了。
我这里使用的是docker compose 文件进行部署,可以参考:
version: '3.8'
x-logconfig: &default-logconfig
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
services:
phoenix-mysql:
container_name: phoenix-mysql
image: crpi-4iaxdbbs1euymfiu.cn-shanghai.personal.cr.aliyuncs.com/pifeng_phoenix/mysql:1.2.6.RELEASE-CR3
restart: unless-stopped
ports:
- "3308:3306"
volumes:
- ./mysql/data:/var/lib/mysql
logging: *default-logconfig
phoenix-server:
container_name: phoenix-server
image: crpi-4iaxdbbs1euymfiu.cn-shanghai.personal.cr.aliyuncs.com/pifeng_phoenix/phoenix-server:1.2.6.RELEASE-CR3
restart: unless-stopped
ports:
- "8080:8080" # 请根据实际应用端口调整
volumes:
- /etc/localtime:/etc/localtime:ro
- ./phoenix-server/liblog4phoenix:/app/liblog4phoenix
- ./phoenix-server/config:/app/config
- ./tmp:/tmp
depends_on:
- phoenix-mysql
logging: *default-logconfig
phoenix-ui:
container_name: phoenix-ui
image: crpi-4iaxdbbs1euymfiu.cn-shanghai.personal.cr.aliyuncs.com/pifeng_phoenix/phoenix-ui:1.2.6.RELEASE-CR4
restart: unless-stopped
ports:
- "8081:80" # 假设 UI 监听 80 端口,请根据实际调整
volumes:
- /etc/localtime:/etc/localtime:ro
- ./phoenix-ui/liblog4phoenix:/app/liblog4phoenix
- ./phoenix-ui/config:/app/config
- ./tmp:/tmp
depends_on:
- phoenix-server
logging: *default-logconfig
业务场景:它到底能帮你做什么?
场景一:Java 应用性能一目了然
集成 phoenix-client-spring-boot-starter 后,你的 Spring Boot 应用会自动上报:
- JVM 内存使用
- 线程池状态
- GC 次数与耗时
- 类加载数量
- 业务埋点(比如订单失败次数)
再也不用连上服务器 jstat、jstack 一通操作。
场景二:服务器资源监控不求人
部署 phoenix-agent 后,自动采集:
- CPU 使用率、平均负载
- 内存与磁盘使用
- 网卡流量、进程列表
- 甚至电池、传感器(对物理机友好)
支持 Linux、Windows、macOS,一套代理通吃。
场景三:数据库与中间件状态尽在掌握
- MySQL:实时会话数、慢查询趋势
- Oracle:表空间使用率
- Redis /MongoDB:info 全量信息
- Docker:容器状态、镜像列表、资源占用
场景四:HTTP/TCP 接口健康检查
配置一个 HTTP 地址或 TCP 端口,Phoenix 会定时探测,一旦超时或返回非 200,立刻通过钉钉或邮件告警。
想象一下:你的支付回调接口挂了,10 秒内钉钉群就收到通知,这体验,不比半夜被用户电话吵醒强?
结语
Phoenix 不是那种“高大上”的监控平台,但它足够务实:能处理 大多数团队在日常运维中遇到的真实问题,部署简单,学习成本低,扩展性也够用。