RM新时代网站-首页

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>phoenix云監(jiān)控平臺

phoenix云監(jiān)控平臺

2022-04-25 | zip | 9.30 MB | 次下載 | 2積分

資料介紹

授權(quán)協(xié)議 GPL
開發(fā)語言 Java JavaScript HTML/CSS
軟件類型 開源軟件

軟件簡介

“phoenix” 是一個靈活可配置的開源監(jiān)控平臺,主要用于監(jiān)控應(yīng)用程序、服務(wù)器、數(shù)據(jù)庫和網(wǎng)絡(luò),通過實時收集、匯聚和分析監(jiān)控信息,實現(xiàn)在發(fā)現(xiàn)異常時立刻推送告警信息,并且提供了可視化系統(tǒng)進(jìn)行配置、管理、查看。

  • 應(yīng)用程序

默認(rèn)支持Java應(yīng)用程序,監(jiān)控內(nèi)容包括:在線狀態(tài)、業(yè)務(wù)埋點。其它應(yīng)用程序需要自己開發(fā)客戶端,來調(diào)用接口與服務(wù)端或者代理端通信(心跳接口、服務(wù)器信息接口、告警接口);

  • JVM

監(jiān)控內(nèi)容包括:內(nèi)存、線程、類、GC等;

  • 服務(wù)器

支持Windows、Linux,監(jiān)控內(nèi)容包括:在線狀態(tài)、操作系統(tǒng)、CPU、進(jìn)程、磁盤、內(nèi)存、網(wǎng)卡、電池、傳感器

  • 數(shù)據(jù)庫

支持MySQL、Oracle、Redis; ? ? 監(jiān)控內(nèi)容: ? ? ? ? ??MySQL:會話; ? ? ? ? ??Oracle:會話、表空間; ? ? ? ? ??Redis:Redis信息全集;

  • 網(wǎng)絡(luò):支持監(jiān)控網(wǎng)絡(luò)狀態(tài);

  • 告警:默認(rèn)支持電子郵件。

設(shè)計

  • 功能架構(gòu)

poYBAGJiCpmAJE3AAAD_IYSGYes265.png

  • 邏輯架構(gòu)

pYYBAGJiCpuAcr2PAAB73uFn-CU714.png

  • 運行環(huán)境

Maven3+ ? ? Jdk1.8 ? ? Lombok ? ? Mysql5.7+

  • 技術(shù)選型

核心框架:SpringBoot ? ? 安全框架:SpringSecurity、SpringSession ? ? 任務(wù)調(diào)度:JUC、SpringTask、Quartz ? ? 持久層框架:MyBatis、 MyBatis-Plus ? ? 數(shù)據(jù)庫連接池:Alibaba Druid ? ? 日志管理:SLF4J、Logback ? ? 前端框架:Layui、ECharts ? ? 監(jiān)控框架:sigar、oshi

  • 模塊結(jié)構(gòu)

平臺使用Java+Layui+ECharts開發(fā),數(shù)據(jù)庫采用MySQL。

phoenix(監(jiān)控平臺父工程) ? ? ├── phoenix-common(監(jiān)控公共模塊父工程) ? ? │ ├── phoenix-common-core(監(jiān)控核心公共模塊) ? ? │ └── phoenix-common-web(監(jiān)控WEB公共模塊) ? ? ├── phoenix-client(監(jiān)控客戶端父工程) ? ? │ ├── phoenix-client-core(監(jiān)控客戶端) ? ? │ ├── phoenix-client-spring-boot-starter(監(jiān)控客戶端與springboot集成的starter) ? ? │ └── phoenix-client-spring-mvc-integrator(監(jiān)控客戶端與springmvc集成的integrator) ? ? ├── phoenix-agent(監(jiān)控代理端) ? ? ├── phoenix-server(監(jiān)控服務(wù)端) ? ? ├── phoenix-ui(監(jiān)控UI端) ? ? └── doc(文檔)

phoenix:監(jiān)控平臺父工程,管理平臺的依賴、構(gòu)建、插件等; ? ? phoenix-common:監(jiān)控公共模塊,提供平臺所有的公共代碼,包含一個監(jiān)控核心公共模塊(phoenix-common-core)和一個監(jiān)控WEB公共模塊(phoenix-common-web); ? ? phoenix-client:監(jiān)控客戶端,用于集成到Java應(yīng)用程序中實現(xiàn)業(yè)務(wù)埋點和Java應(yīng)用程序監(jiān)控信息收集,包含一個通用模塊(phoenix-client-core)和與springboot集成的starter(phoenix-client-spring-boot-starter)、與springmvc集成的integrator(phoenix-client-spring-mvc-integrator)兩個拓展模塊; ? ? phoenix-agent:監(jiān)控代理端,用于收集服務(wù)器信息和匯聚、轉(zhuǎn)發(fā)來自監(jiān)控客戶端的信息; ? ? phoenix-server:監(jiān)控服務(wù)端,是監(jiān)控平臺的核心模塊,用于匯聚、分析監(jiān)控信息,在發(fā)現(xiàn)異常時實時推送告警信息; ? ? phoenix-ui:監(jiān)控可視化系統(tǒng),用于平臺配置、用戶管理、監(jiān)控信息查看、圖表展示等; ? ? doc:包含平臺的設(shè)計文檔、服務(wù)啟停腳本、數(shù)據(jù)庫腳本等。

下載

  • 源碼倉庫地址

https://gitee.com/monitoring-platform/phoenix ? ?? ? 注意:一定要下載最新發(fā)行版源碼!

  • 示例代碼倉庫地址

https://gitee.com/monitoring-platform/phoenix-example

  • 中央倉庫地址
  1. 客戶端為普通Java程序

xml ? ? ? ? ? com.gitee.pifeng ? ? ? phoenix-client-core ? ? ? ${最新穩(wěn)定版本} ?

  1. 客戶端為springboot程序

xml ? ? ? ? ? com.gitee.pifeng ? ? ? phoenix-client-spring-boot-starter ? ? ? ${最新穩(wěn)定版本} ?

  1. 客戶端為springmvc程序

xml ? ? ? ? ? com.gitee.pifeng ? ? ? phoenix-client-spring-mvc-integrator ? ? ? ${最新穩(wěn)定版本} ?

使用

初始化“監(jiān)控數(shù)據(jù)庫”

請下載項目源碼并解壓,進(jìn)入目錄:/phoenix/doc/數(shù)據(jù)庫設(shè)計/sql/mysql ,找到SQL腳本并執(zhí)行即可。

phoenix.sql

編譯源碼

解壓源碼,按照maven格式將源碼導(dǎo)入IDE, 使用maven進(jìn)行編譯即可。

配置

監(jiān)控配置

監(jiān)控配置文件為: monitoring.properties ,放在 classpath:/ 下會自動加載,UI端、服務(wù)端、代理端、客戶端都需要有這個配置文件。如果是springboot項目也可以分環(huán)境配置,示例配置代碼如下:

java ? /** ? ?* 開發(fā)環(huán)境監(jiān)控配置 ? ?*/ ? @Configuration ? @Profile("dev") ? @EnableMonitoring(configFileName = "monitoring-dev.properties") ? public class MonitoringUiDevConfig { ? } ?? ? /** ? ?* 生產(chǎn)環(huán)境監(jiān)控配置 ? ?*/ ? @Configuration ? @Profile("prod") ? @EnableMonitoring(configFileName = "monitoring-prod.properties") ? public class MonitoringUiProdConfig { ? }

監(jiān)控配置項說明:

|配置項 ? ? ? ? ? ? ? ? ? ? ? ? ? |含義 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |必須項 ? ? ? |默認(rèn)值|? ? |--------------------------------|------------------------------------------------------------------|-------------|-----| ? |monitoring.server.url ? ? ? ? ? |監(jiān)控服務(wù)端(代理端)url ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|是 ? ? ? ? ? | ? ? ?| ? |monitoring.own.instance.order ? |實例次序(整數(shù)),用于在集群中區(qū)分應(yīng)用實例,配置“1”就代表集群中的第一個應(yīng)用實例 |否 ? ? ? ? ? |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 ? ? ? |與服務(wù)端或者代理端發(fā)心跳包的頻率(秒),最小不能小于30秒 ? ? ? ? ? ? ? ? ? ?|否 ? ? ? ? ? |30 ? ?| ? |monitoring.server-info.enable ? |是否采集服務(wù)器信息 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |否 ? ? ? ? ? |false | ? |monitoring.server-info.rate ? ? |與服務(wù)端或者代理端發(fā)服務(wù)器信息包的頻率(秒),最小不能小于30秒 ? ? ? ? ? ? ? |否 ? ? ? ? ? |60 ? ?| ? |monitoring.server-info.ip ? ? ? |被監(jiān)控服務(wù)器本機(jī)ip地址 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|否(自動獲取) | ? ? ?| ? |monitoring.jvm-info.enable ? ? ?|是否采集Java虛擬機(jī)信息 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |否 ? ? ? ? ? |false | ? |monitoring.jvm-info.rate ? ? ? ?|與服務(wù)端或者代理端發(fā)送Java虛擬機(jī)信息的頻率(秒),最小不能小于30秒 ? ? ? ? ? |否 ? ? ? ? ? |60 ? ?|

  1. 監(jiān)控UI端

除了在 monitoring-{profile}.properties 文件修改監(jiān)控配置外,還需要在 application-{profile}.yml 文件修改數(shù)據(jù)庫配置。

  1. 監(jiān)控服務(wù)端

需要在 application-{profile}.yml 文件修改數(shù)據(jù)庫配置和郵箱配置。

  1. 監(jiān)控代理端

只需在 monitoring-{profile}.properties 文件修改監(jiān)控配置。

  1. 監(jiān)控客戶端

只需添加監(jiān)控配置。

加解密配置

除了監(jiān)控配置文件外,還可以在 classpath:/ 下加入 monitoring-secure.properties 加解密配置文件,用來修改監(jiān)控平臺的加解密方式。但是注意各監(jiān)控端加解密配置參數(shù)必須相同。這個配置不是必須的,沒有此配置文件將使用默認(rèn)加解密配置,加入此配置文件則必須正確配置配置項。

加解密配置項說明:

|配置項 ? ? ? ? ? ? ? ? |含義 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|必須項 ? ? ? ? ? ? ? ? ? ? ? ? |默認(rèn)值|? ? |----------------------|-------------------------------------------|------------------------------|-----| ? |secret.type ? ? ? ? ? |加解密類型,值只能是 des、aes、sm4 之一 ? ? ? ? |否,為空則不進(jìn)行加解密 ? ? ? ? ? | ? ? ?| ? |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 方法生成,然后填入配置文件。

客戶端開啟監(jiān)控

  • 普通Java程序

main 方法中,調(diào)用方法 Monitor.start() 來開啟監(jiān)控功能,或者調(diào)用重載的方法 Monitor.start(configPath, configName) 指定監(jiān)控配置文件的路徑和名字來開啟監(jiān)控功能,如果未指定配置文件路徑和名字,則配置文件需要放在 classpath:/ 下,名字必須為 monitoring.properties

  • springboot程序

在啟動類上加上注解 @EnableMonitoring 來開啟監(jiān)控功能,或者通過注解的兩個參數(shù)來指定配置文件的路徑和名字,如果未指定配置文件路徑和名字,則配置文件需要放在 classpath:/ 下,名字必須為 monitoring.properties 。

  • springmvc程序

web.xml 文件中配置一個監(jiān)聽器,來開啟監(jiān)控功能:

xml ? ? ? ? ? ? ? ? configLocation ? ? ? ? classpath:monitoring.properties ? ? ? ? ? ? ? ? ? ? ? com.gitee.pifeng.monitoring.integrator.listener.MonitoringPlugInitializeListener ? ? ? ? ? ?

業(yè)務(wù)埋點

Java應(yīng)用程序只要集成了監(jiān)控客戶端,就具有業(yè)務(wù)埋點監(jiān)控的能力,通過 Monitor.buryingPoint() 方法定時監(jiān)控業(yè)務(wù)運行情況,通過 Monitor.sendAlarm() 發(fā)送告警。具體使用實例如下:

// 業(yè)務(wù)埋點監(jiān)控
ScheduledExecutorService service = Monitor.buryingPoint(() -> {
? // 假如發(fā)現(xiàn)了業(yè)務(wù)異常,用下面的代碼發(fā)送告警
? Alarm alarm = new Alarm();
? alarm.setAlarmLevel(AlarmLevelEnums.ERROR);
? alarm.setTitle("業(yè)務(wù)埋點監(jiān)控");
? alarm.setTest(false);
? alarm.setCharset(Charsets.UTF_8);
? alarm.setMsg("測試普通maven程序業(yè)務(wù)埋點監(jiān)控!");
? // alarm.setCode("001");
? alarm.setMonitorType(MonitorTypeEnums.CUSTOM);
? Result result = Monitor.sendAlarm(alarm);
? System.out.println("發(fā)送業(yè)務(wù)告警結(jié)果:" + result.toJsonString());
}, 0, 1, TimeUnit.HOURS, ThreadTypeEnums.IO_INTENSIVE_THREAD);

時鐘同步

部署監(jiān)控程序(監(jiān)控UI端、監(jiān)控服務(wù)端、監(jiān)控代理端、監(jiān)控客戶端)的服務(wù)器集群需要進(jìn)行時鐘同步(NTP),保證時間的一致性!。

打包部署運行

Jar包部署

監(jiān)控UI端、監(jiān)控服務(wù)端、監(jiān)控代理端 直接打成可執(zhí)行jar,打包后可執(zhí)行jar包在 phoenix/target 目錄下,部署后通過腳本(命令)運行。啟停腳本位置在:/phoenix/doc/腳本/ 。 ? 監(jiān)控UI端 訪問URL:https://localhost/phoenix-ui/index ,初始賬號/密碼:admin/admin123,guest/guest123。

Docker部署

注意:不推薦使用docker部署,因為在docker容器中運行隔離了物理服務(wù)器環(huán)境,將無法監(jiān)控到物理服務(wù)器信息,監(jiān)控到的服務(wù)器信息變成了容器環(huán)境信息。

  • 方式一:Maven打包遠(yuǎn)程部署
  1. 有一臺已經(jīng)安裝好docker環(huán)境的服務(wù)器,并且允許遠(yuǎn)程連接(以centos7下的yum方式安裝的docker且使用service方式運行為例開啟遠(yuǎn)程連接): ? ? ?vi /usr/lib/systemd/system/docker.service ? ? ?確保:ExecStart 的后面有: -H tcp://0.0.0.0:2375 ? ? ?修改完成后保存退出,刷新并重啟docker服務(wù): ? ? ?systemctl daemon-reload ? ? ?systemctl restart docker
  2. 在系統(tǒng)環(huán)境變量中添DOCKER_HOST,如下圖所示: ? poYBAGJiCpyAFu_1AAAlYhLZpiw397.png
  3. 編譯項目打包項目并打包鏡像: ? ? ?mvn -Dmaven.test.skip=true clean package docker:build
  4. 運行:腳本位置在phoenix/doc/腳本/,腳本名為:docker_run.sh,可以自己根據(jù)需要靈活修改。
  • 方式二:服務(wù)器本地構(gòu)建docker鏡像
  1. 打包可執(zhí)行jar,并上傳至服務(wù)器;
  2. 上傳Dockerfile文件至服務(wù)器,文件位置在:phoenix/phoenix-agent/src/main/docker/Dockerfile、phoenix/phoenix-server/src/main/docker/Dockerfile、phoenix/phoenix-ui/src/main/docker/Dockerfile, ? ? ?Dockerfile要與對應(yīng)的jar包放在同一目錄下;
  3. 運行Dockerfile,構(gòu)建docker鏡像;
  4. 運行:腳本位置在phoenix/doc/腳本/,腳本名為:docker_run.sh,可以自己根據(jù)需要靈活修改。

集群部署

監(jiān)控服務(wù)端、監(jiān)控UI端支持集群部署,提升系統(tǒng)的容災(zāi)和可用性。

集群部署時,幾點要求和建議:

  1. DB配置保持一致;
  2. 集群機(jī)器時鐘保持一致(單機(jī)集群忽視);
  3. 建議:推薦通過nginx為集群做負(fù)載均衡,分配域名。監(jiān)控服務(wù)端、監(jiān)控UI端均通過該域名進(jìn)行訪問。

pYYBAGJiCp6ADEk7AABSZIMddgE598.png

功能截圖

pYYBAGJiCqCAVGZAAAF4j4I6goU282.png ?? poYBAGJiCqKAAVQGAAGkNqMSL7E022.png ?? poYBAGJiCqSAFMOJAADjCcrGC4E975.png

pYYBAGJiCqaAdZeuAAGW6J_ZFFA580.png ?? pYYBAGJiCqiAABZXAAFRO-1KkTk781.png ?? poYBAGJiCqqAHQhTAAGS3cN0tvU473.png

poYBAGJiCquAflE7AAEHXNdS6Xo802.png

pYYBAGJiCq2AbOY8AAGRUYw2Z1o094.png

poYBAGJiCq-Ab49-AAI6HEQzLNg021.png

pYYBAGJiCrGAYKM9AADuNEoWAfg901.png

pYYBAGJiCrOAc_YPAADoMKVdJfg363.png

pYYBAGJiCrSABh-sAADL9-QvxbM873.png

poYBAGJiCraAF_eSAAHSoLNvF1I641.png

poYBAGJiCriAU8K6AADbNX5Op9Q294.png

poYBAGJiCrqAa81jAAKMCDVpo8U809.png

pYYBAGJiCryAYejkAAExAM8PntU417.png

poYBAGJiCr6AaZoEAAJ15LMFnSs172.png

pYYBAGJiCsGAFEUHAAO8ob-nMPY365.png

pYYBAGJiCsKAWCWjAADxhobfy-U539.png

常見問題

https://gitee.com/monitoring-platform/phoenix/wikis/pages?sort_id=4438763&doc_id=935794

期望

歡迎提出更好的意見,幫助完善 phoenix

版權(quán)

GNU General Public License v3.0

?

?

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關(guān)電源設(shè)計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
RM新时代网站-首页