一、計畫簡介
計畫一款高度客製化的開源監控神器,專為追蹤套用、伺服器、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服務狀態;
告警:預設支持電子信件、釘釘、企業微信。
二、特點
分布式;
跨平台;
支持docker部署;
即時監測告警;
數據加密傳輸;
靈活可配置;
使用者介面支持PC端、移動端;
基於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
註意:一定要下載最新發行版源碼!
中央倉庫地址
客戶端為普通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>
客戶端為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>
客戶端為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
看到最後,如果這個方法對你有用,一定要給我點個「 在看 」。