資料介紹
軟件簡介
“phoenix” 是一個靈活可配置的開源監控平臺,主要用于監控應用程序、服務器、數據庫和網絡,通過實時收集、匯聚和分析監控信息,實現在發現異常時立刻推送告警信息,并且提供了可視化系統進行配置、管理、查看。
- 應用程序
默認支持Java應用程序,監控內容包括:在線狀態、業務埋點。其它應用程序需要自己開發客戶端,來調用接口與服務端或者代理端通信(心跳接口、服務器信息接口、告警接口);
- JVM
監控內容包括:內存、線程、類、GC等;
- 服務器
支持Windows、Linux,監控內容包括:在線狀態、操作系統、CPU、進程、磁盤、內存、網卡、電池、傳感器;
- 數據庫
支持MySQL、Oracle、Redis; ? ? 監控內容: ? ? ? ? ??MySQL:會話; ? ? ? ? ??Oracle:會話、表空間; ? ? ? ? ??Redis:Redis信息全集;
-
網絡:支持監控網絡狀態;
-
告警:默認支持電子郵件。
設計
- 功能架構
- 邏輯架構
- 運行環境
Maven3+ ? ? Jdk1.8 ? ? 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:包含平臺的設計文檔、服務啟停腳本、數據庫腳本等。
下載
- 源碼倉庫地址
https://gitee.com/monitoring-platform/phoenix ? ?? ? 注意:一定要下載最新發行版源碼!
- 示例代碼倉庫地址
https://gitee.com/monitoring-platform/phoenix-example
- 中央倉庫地址
- 客戶端為普通Java程序
xml ? ?
- 客戶端為springboot程序
xml ? ?
- 客戶端為springmvc程序
xml ? ?
使用
初始化“監控數據庫”
請下載項目源碼并解壓,進入目錄:/phoenix/doc/數據庫設計/sql/mysql ,找到SQL腳本并執行即可。
phoenix.sql
編譯源碼
解壓源碼,按照maven格式將源碼導入IDE, 使用maven進行編譯即可。
配置
監控配置
監控配置文件為: monitoring.properties ,放在 classpath:/ 下會自動加載,UI端、服務端、代理端、客戶端都需要有這個配置文件。如果是springboot項目也可以分環境配置,示例配置代碼如下:
java ? /** ? ?* 開發環境監控配置 ? ?*/ ? @Configuration ? @Profile("dev") ? @EnableMonitoring(configFileName = "monitoring-dev.properties") ? public class MonitoringUiDevConfig { ? } ?? ? /** ? ?* 生產環境監控配置 ? ?*/ ? @Configuration ? @Profile("prod") ? @EnableMonitoring(configFileName = "monitoring-prod.properties") ? public class MonitoringUiProdConfig { ? }
監控配置項說明:
|配置項 ? ? ? ? ? ? ? ? ? ? ? ? ? |含義 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |必須項 ? ? ? |默認值|? ? |--------------------------------|------------------------------------------------------------------|-------------|-----| ? |monitoring.server.url ? ? ? ? ? |監控服務端(代理端)url ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|是 ? ? ? ? ? | ? ? ?| ? |monitoring.own.instance.order ? |實例次序(整數),用于在集群中區分應用實例,配置“1”就代表集群中的第一個應用實例 |否 ? ? ? ? ? |1 ? ? | ? |monitoring.own.instance.endpoint|實例端點類型(server、agent、client、ui) ? ? ? ? ? ? ? ? ? ? ? ? ? ? |否 ? ? ? ? ? |client| ? |monitoring.own.instance.name ? ?|實例名稱,一般為項目名 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|是 ? ? ? ? ? | ? ? ?| ? |monitoring.own.instance.desc ? ?|實例描述 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |否 ? ? ? ? ? | ? ? ?| ? |monitoring.own.instance.language|程序語言 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |否 ? ? ? ? ? |Java ?| ? |monitoring.heartbeat.rate ? ? ? |與服務端或者代理端發心跳包的頻率(秒),最小不能小于30秒 ? ? ? ? ? ? ? ? ? ?|否 ? ? ? ? ? |30 ? ?| ? |monitoring.server-info.enable ? |是否采集服務器信息 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |否 ? ? ? ? ? |false | ? |monitoring.server-info.rate ? ? |與服務端或者代理端發服務器信息包的頻率(秒),最小不能小于30秒 ? ? ? ? ? ? ? |否 ? ? ? ? ? |60 ? ?| ? |monitoring.server-info.ip ? ? ? |被監控服務器本機ip地址 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|否(自動獲取) | ? ? ?| ? |monitoring.jvm-info.enable ? ? ?|是否采集Java虛擬機信息 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |否 ? ? ? ? ? |false | ? |monitoring.jvm-info.rate ? ? ? ?|與服務端或者代理端發送Java虛擬機信息的頻率(秒),最小不能小于30秒 ? ? ? ? ? |否 ? ? ? ? ? |60 ? ?|
- 監控UI端
除了在 monitoring-{profile}.properties 文件修改監控配置外,還需要在 application-{profile}.yml 文件修改數據庫配置。
- 監控服務端
需要在 application-{profile}.yml 文件修改數據庫配置和郵箱配置。
- 監控代理端
只需在 monitoring-{profile}.properties 文件修改監控配置。
- 監控客戶端
只需添加監控配置。
加解密配置
除了監控配置文件外,還可以在 classpath:/ 下加入 monitoring-secure.properties 加解密配置文件,用來修改監控平臺的加解密方式。但是注意各監控端加解密配置參數必須相同。這個配置不是必須的,沒有此配置文件將使用默認加解密配置,加入此配置文件則必須正確配置配置項。
加解密配置項說明:
|配置項 ? ? ? ? ? ? ? ? |含義 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|必須項 ? ? ? ? ? ? ? ? ? ? ? ? |默認值|? ? |----------------------|-------------------------------------------|------------------------------|-----| ? |secret.type ? ? ? ? ? |加解密類型,值只能是 des、aes、sm4 之一 ? ? ? ? |否,為空則不進行加解密 ? ? ? ? ? | ? ? ?| ? |secret.key.des ? ? ? ?|DES密鑰 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |否,secret.type=des時,需要配置 ? ? | ? ? ?| ? |secret.key.aes ? ? ? ?|AES密鑰 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |否,secret.type=aes時,需要配置 ? ? | ? ? ?| ? |secret.key.sm4 ? ? ? ?|國密SM4密鑰 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|否,secret.type=ms4時,需要配置 ? ? ?| ? ? ?|
秘鑰可通過 com.gitee.pifeng.monitoring.common.util.secure.SecureUtilsTest#testGenerateKey 方法生成,然后填入配置文件。
客戶端開啟監控
- 普通Java程序
在 main 方法中,調用方法 Monitor.start() 來開啟監控功能,或者調用重載的方法 Monitor.start(configPath, configName) 指定監控配置文件的路徑和名字來開啟監控功能,如果未指定配置文件路徑和名字,則配置文件需要放在 classpath:/ 下,名字必須為 monitoring.properties 。
- springboot程序
在啟動類上加上注解 @EnableMonitoring 來開啟監控功能,或者通過注解的兩個參數來指定配置文件的路徑和名字,如果未指定配置文件路徑和名字,則配置文件需要放在 classpath:/ 下,名字必須為 monitoring.properties 。
- springmvc程序
在 web.xml 文件中配置一個監聽器,來開啟監控功能:
xml ? ?
業務埋點
Java應用程序只要集成了監控客戶端,就具有業務埋點監控的能力,通過 Monitor.buryingPoint() 方法定時監控業務運行情況,通過 Monitor.sendAlarm() 發送告警。具體使用實例如下:
// 業務埋點監控
ScheduledExecutorService service = Monitor.buryingPoint(() -> {
? // 假如發現了業務異常,用下面的代碼發送告警
? Alarm alarm = new Alarm();
? alarm.setAlarmLevel(AlarmLevelEnums.ERROR);
? alarm.setTitle("業務埋點監控");
? alarm.setTest(false);
? alarm.setCharset(Charsets.UTF_8);
? alarm.setMsg("測試普通maven程序業務埋點監控!");
? // alarm.setCode("001");
? alarm.setMonitorType(MonitorTypeEnums.CUSTOM);
? Result result = Monitor.sendAlarm(alarm);
? System.out.println("發送業務告警結果:" + result.toJsonString());
}, 0, 1, TimeUnit.HOURS, ThreadTypeEnums.IO_INTENSIVE_THREAD);
時鐘同步
部署監控程序(監控UI端、監控服務端、監控代理端、監控客戶端)的服務器集群需要進行時鐘同步(NTP),保證時間的一致性!。
打包部署運行
Jar包部署
監控UI端、監控服務端、監控代理端 直接打成可執行jar,打包后可執行jar包在 phoenix/target 目錄下,部署后通過腳本(命令)運行。啟停腳本位置在:/phoenix/doc/腳本/ 。 ? 監控UI端 訪問URL:https://localhost/phoenix-ui/index ,初始賬號/密碼:admin/admin123,guest/guest123。
Docker部署
注意:不推薦使用docker部署,因為在docker容器中運行隔離了物理服務器環境,將無法監控到物理服務器信息,監控到的服務器信息變成了容器環境信息。
- 方式一:Maven打包遠程部署
- 有一臺已經安裝好docker環境的服務器,并且允許遠程連接(以centos7下的yum方式安裝的docker且使用service方式運行為例開啟遠程連接): ? ? ?vi /usr/lib/systemd/system/docker.service ? ? ?確保:ExecStart 的后面有: -H tcp://0.0.0.0:2375 ? ? ?修改完成后保存退出,刷新并重啟docker服務: ? ? ?systemctl daemon-reload ? ? ?systemctl restart docker
- 在系統環境變量中添DOCKER_HOST,如下圖所示: ?
- 編譯項目打包項目并打包鏡像: ? ? ?mvn -Dmaven.test.skip=true clean package docker:build
- 運行:腳本位置在phoenix/doc/腳本/,腳本名為:docker_run.sh,可以自己根據需要靈活修改。
- 方式二:服務器本地構建docker鏡像
- 打包可執行jar,并上傳至服務器;
- 上傳Dockerfile文件至服務器,文件位置在:phoenix/phoenix-agent/src/main/docker/Dockerfile、phoenix/phoenix-server/src/main/docker/Dockerfile、phoenix/phoenix-ui/src/main/docker/Dockerfile, ? ? ?Dockerfile要與對應的jar包放在同一目錄下;
- 運行Dockerfile,構建docker鏡像;
- 運行:腳本位置在phoenix/doc/腳本/,腳本名為:docker_run.sh,可以自己根據需要靈活修改。
集群部署
監控服務端、監控UI端支持集群部署,提升系統的容災和可用性。
集群部署時,幾點要求和建議:
- DB配置保持一致;
- 集群機器時鐘保持一致(單機集群忽視);
- 建議:推薦通過nginx為集群做負載均衡,分配域名。監控服務端、監控UI端均通過該域名進行訪問。
功能截圖
?? ??
?? ??
常見問題
https://gitee.com/monitoring-platform/phoenix/wikis/pages?sort_id=4438763&doc_id=935794
期望
歡迎提出更好的意見,幫助完善 phoenix
版權
GNU General Public License v3.0
?
- 基于云平臺的環保用電監控的應用研究 0次下載
- 如何輕松實現MQTT接入阿里云IoT平臺
- MQTT接入阿里云IoT平臺使用說明
- Phoenix-Miner比特幣挖礦機
- 中億智聯云PAAS平臺PPT介紹 0次下載
- 基于阿里云的裁斷機監控系統設計方案 13次下載
- Kubernetes云平臺的彈性伸縮實現方案 11次下載
- 云平臺監控系統展箱接線原理圖免費下載 4次下載
- 基于云計算的多媒體教學平臺 3次下載
- 私有云平臺資源監控與優化系統 3次下載
- 微軟公布云計算平臺Azure收費模式細節 14次下載
- 應用案例—三維力控接入鯤航云平臺實現手機APP監控pdf資料下載 15次下載
- 基于Nagios的清華云監控平臺 0次下載
- 華為視頻監控開發平臺 3次下載
- 一體化機群操作系統Phoenix 26次下載
- ZWS云平臺應用(6)-設備命令 164次閱讀
- 智慧CAN云應用(1)-平臺功能 343次閱讀
- ZWS云平臺應用(2)-設備基于SDK接入 296次閱讀
- 什么是云平臺?軟件被云平臺攔截了怎么辦 1730次閱讀
- 怎樣去設計一款基于機智云服務平臺的媒體設備控制系統呢 528次閱讀
- 如何在機智云平臺創建智能產品 1850次閱讀
- 組織如何有效地將業務遷移到云平臺 1975次閱讀
- 云計算的技術分析及平臺建設與應用構建方法研究 3972次閱讀
- 立功科技嵌入式平臺“軟”實力——云平臺接入篇 1042次閱讀
- 分布式工業物聯網云平臺是怎樣的 1694次閱讀
- 你知道水泵物聯網監控系統嗎 2111次閱讀
- SDN及云計算平臺中的網絡性能優化 5249次閱讀
- 云計算平臺下僵尸網絡的檢測技術詳解 3021次閱讀
- 云計算平臺是什么_云計算平臺的搭建_云計算平臺的功能 1.5w次閱讀
- 基于LTC6802的電池組監控平臺的電路設計 6066次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多