电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>phoenix云监控平台

phoenix云监控平台

2022-04-25 | zip | 9.30 MB | 次下载 | 2积分

资料介绍

授权协议 GPL
开发语言 Java JavaScript HTML/CSS
操作系统 跨平台
软件类型 开源软件
所属分类 管理和监控系统监控

软件简介

“phoenix” 是一个灵活可配置的开源监控平台,主要用于监控应用程序、服务器、数据库和网络,通过实时收集、汇聚和分析监控信息,实现在发现异常时立刻推送告警信息,并且提供了可视化系统进行配置、管理、查看。

  • 应用程序

默认支持Java应用程序,监控内容包括:在线状态、业务埋点。其它应用程序需要自己开发客户端,来调用接口与服务端或者代理端通信(心跳接口、服务器信息接口、告警接口);

  • JVM

监控内容包括:内存、线程、类、GC等;

  • 服务器

支持Windows、Linux,监控内容包括:在线状态、操作系统、CPU、进程、磁盘、内存、网卡、电池、传感器

  • 数据库

支持MySQL、Oracle、Redis;     监控内容:           MySQL:会话;           Oracle:会话、表空间;           Redis:Redis信息全集;

  • 网络:支持监控网络状态;

  • 告警:默认支持电子邮件。

设计

  • 功能架构

poYBAGJiCpmAJE3AAAD_IYSGYes265.png

  • 逻辑架构

pYYBAGJiCpuAcr2PAAB73uFn-CU714.png

  • 运行环境

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

  • 中央仓库地址
  1. 客户端为普通Java程序

xml           com.gitee.pifeng       phoenix-client-core       ${最新稳定版本}  

  1. 客户端为springboot程序

xml           com.gitee.pifeng       phoenix-client-spring-boot-starter       ${最新稳定版本}  

  1. 客户端为springmvc程序

xml           com.gitee.pifeng       phoenix-client-spring-mvc-integrator       ${最新稳定版本}  

使用

初始化“监控数据库”

请下载项目源码并解压,进入目录:/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    |

  1. 监控UI端

除了在 monitoring-{profile}.properties 文件修改监控配置外,还需要在 application-{profile}.yml 文件修改数据库配置。

  1. 监控服务端

需要在 application-{profile}.yml 文件修改数据库配置和邮箱配置。

  1. 监控代理端

只需在 monitoring-{profile}.properties 文件修改监控配置。

  1. 监控客户端

只需添加监控配置。

加解密配置

除了监控配置文件外,还可以在 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                 configLocation         classpath:monitoring.properties                       com.gitee.pifeng.monitoring.integrator.listener.MonitoringPlugInitializeListener            

业务埋点

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/admin123guest/guest123

Docker部署

注意:不推荐使用docker部署,因为在docker容器中运行隔离了物理服务器环境,将无法监控到物理服务器信息,监控到的服务器信息变成了容器环境信息。

  • 方式一:Maven打包远程部署
  1. 有一台已经安装好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
  2. 在系统环境变量中添DOCKER_HOST,如下图所示:   poYBAGJiCpyAFu_1AAAlYhLZpiw397.png
  3. 编译项目打包项目并打包镜像:      mvn -Dmaven.test.skip=true clean package docker:build
  4. 运行:脚本位置在phoenix/doc/脚本/,脚本名为:docker_run.sh,可以自己根据需要灵活修改。
  • 方式二:服务器本地构建docker镜像
  1. 打包可执行jar,并上传至服务器;
  2. 上传Dockerfile文件至服务器,文件位置在:phoenix/phoenix-agent/src/main/docker/Dockerfile、phoenix/phoenix-server/src/main/docker/Dockerfile、phoenix/phoenix-ui/src/main/docker/Dockerfile,      Dockerfile要与对应的jar包放在同一目录下;
  3. 运行Dockerfile,构建docker镜像;
  4. 运行:脚本位置在phoenix/doc/脚本/,脚本名为:docker_run.sh,可以自己根据需要灵活修改。

集群部署

监控服务端、监控UI端支持集群部署,提升系统的容灾和可用性。

集群部署时,几点要求和建议:

  1. DB配置保持一致;
  2. 集群机器时钟保持一致(单机集群忽视);
  3. 建议:推荐通过nginx为集群做负载均衡,分配域名。监控服务端、监控UI端均通过该域名进行访问。

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

版权

GNU General Public License v3.0

 

 

下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  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元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  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十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费