phoenix是一個靈活可配置的開源系統監控平台,主要用於監控應用程式、伺服器、資料庫、網路、tcp連接埠和http接口,在發現異常時即時推送告警訊息,並且提供了可視化系統進行設定、管理、查看。
1、分散式;
2、跨平台;
3、支援docker部署;
4、即時監控告警;
5、資料加密傳輸;
6、靈活可配置;
7.使用者介面支援PC端、行動端。
應用程式
預設支援Java應用程序,監控內容包括:線上狀態、JVM、業務埋點。其它應用程式需要自行開發客戶端,來呼叫介面與服務端或代理端通訊(心跳介面、伺服器資訊介面、警告介面);
JVM
監控內容包括:記憶體、執行緒、類別、GC等;
伺服器
支援主流伺服器,如Linux、Windows、macOS、Unix等;
監控內容包括:線上狀態、作業系統、CPU、平均負載、進程、磁碟、記憶體、網路卡、電池、感測器;
資料庫
支援MySQL、Oracle、Redis、Mongo;
監控內容
MySQL:會話;
Oracle:會話、表空間;
Redis:Redis資訊全集;
Mongo:Mongo資訊全集;
網路:支援監控網路狀態;
TCP:支援監控TCP服務狀態;
HTTP:支援監控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、 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:監控代理端,用於收集伺服器資訊和匯聚、轉送來自監控客戶端的資訊;
phoenix-server:監控服務端,是監控平台的核心模組,用於匯聚、分析監控訊息,在發現異常時即時推送警告訊息;
phoenix-ui:監控視覺化系統,用於平台配置、使用者管理、監控資訊檢視、圖表展示等;
doc:包含平台的設計文件、服務啟動停止腳本、資料庫腳本等。