當前位置: 妍妍網 > 碼農

12.1k Star, 推薦一款靈活可配置的開源監控平台

2024-05-06碼農

一、計畫簡介

計畫一款高度客製化的開源監控神器,專為追蹤套用、伺服器、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服務狀態;

  • 告警:預設支持電子信件、釘釘、企業微信。

  • 二、特點

    1. 分布式;

    2. 跨平台;

    3. 支持docker部署;

    4. 即時監測告警;

    5. 數據加密傳輸;

    6. 靈活可配置;

    7. 使用者介面支持PC端、移動端;

    8. 基於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

    註意:一定要下載最新發行版源碼!

  • 中央倉庫地址

    1. 客戶端為普通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>

    1. 客戶端為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>

    1. 客戶端為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

    看到最後,如果這個方法對你有用,一定要給我點個「 在看 」。