此项目是迭代产生的,本人精力水平有限一共更新了五篇,期间有任何疑问欢迎大家评论或者私我。这一篇文章讲了基本的实现,后面的文章增加了数据库,hdfs,redis,页面布局。写过的文章我也会持续更新,让文章更细,代码功能更加丰富,此项目满足了用spring boot框架最基本的增删改查功能,并将这些数据进行可视化展现,如果正好有此需求的人,那么这篇文章一定不容错过。关注不迷路~你们的鼓励就是我最大的动力(ง •_•)ง

话不多说,先来最终效果!!!觉得不错就看下去,这个系列如果帮到你了,就给个赞吧~




springboot api 系统架构图 springboot技术架构图_springboot架构图


程序流程图


springboot api 系统架构图 springboot技术架构图_springboot架构图_02


集群部署架构图


springboot api 系统架构图 springboot技术架构图_spring_03


项目技术栈


springboot api 系统架构图 springboot技术架构图_spring_04


负载均衡实现效果


springboot api 系统架构图 springboot技术架构图_springboot架构图_05


目的计算Linux虚拟机指标包括内存使用率,cpu使用率,实时网速。获取hdfs的健康信息,包括配置容量,现有容量,DFS余量,非DFS使用量。并进行可视化展示

涉及技术:【必用】spring boot + Echarts + thymeleaf+【选用】Redis+Vue+Bootstrap

怎么去看:这个项目就是将平时数据库去到的数据去做可视化展现,至于加redis,登录页,导航页都是花里胡哨的,所以只想学核心基本的看1-3,想深入美观的看4-5。我这个每个模块都是可以拆分的,取你所需就可以了。只要其中有涉及到你想看的,那就值得一看。

收获什么:加深对spring boot的理解,学会如何Echarts官方案例变为自己的并加以应用,学会前后端联动,熟悉控制器与异步传输的使用,简单进行Linux和shell文件的了解。以及对缓存基本的应用,麻雀虽小,相信能收获颇多。

本篇实现思路:利用Java去读取Linux中的文件,读出其中的信息,并将获得的字符串加以计算,通过控制层传给前端,利用前端进行展示。

源码地址:https://github.com/bigli97/computer

本篇实现效果


springboot api 系统架构图 springboot技术架构图_Java_06


实现步骤

  1. Java利用ssh连接Linux
  2. 数据准备
  3. 提供一个可视化模板
  4. 进行前后端联动,异步将数据传输到页面上

1、Java利用ssh连接Linux


springboot api 系统架构图 springboot技术架构图_Java_07


2、数据准备

(1)CPU使用率获取

command:top -b -n 1 | head -3


springboot api 系统架构图 springboot技术架构图_spring_08


第三行为cpu状态:
依次对应:
us:user 用户空间占用cpu的百分比
sy:system 内核空间占用cpu的百分比
ni:niced 改变过优先级的进程占用cpu的百分比 id:空闲cpu百分比
wa:IO wait IO等待占用cpu的百分比
hi:Hardware IRQ 硬中断 占用cpu的百分比
si:software 软中断 占用cpu的百分比
st:被hypervisor偷去的时间

计算方式:100-cpu空闲百分比


springboot api 系统架构图 springboot技术架构图_spring_09


(2)内存使用率获取

commandcat /proc/meminfo


springboot api 系统架构图 springboot技术架构图_spring_10


红框代表含义:总内存,空闲内存

计算方式:(总内存-空闲内存)/总内存


springboot api 系统架构图 springboot技术架构图_获取数据展现在echarts上_11


(3)实时网速获取

command:cat /proc/net/dev(记录了不同网络接口(interface)上的各种包的记录)

最左边的表示接口的名字,Receive表示收包(下载量),Transmit表示发送包(上传量)


springboot api 系统架构图 springboot技术架构图_获取数据展现在echarts上_12


需要一个脚本文件(获取实时网速和实时上传率,我只做了第一个,可以自己扩展一下)

简单介绍以下脚本含义:sed将:替换为空格全局匹配, awk读第二个,grep 按什么匹配,echo代表输出什么,剩下的有点语言底子的都应该可以看懂,我也就不说了。


springboot api 系统架构图 springboot技术架构图_Java_13


计算方式:根据前后一秒网络下载量所产生的差值作为数据


springboot api 系统架构图 springboot技术架构图_获取数据展现在echarts上_14


3、可视化模板

我们需要一个可视化前端模板,我找了一个官方案例,效果如下

https://echarts.apache.org/examples/zh/editor.html?c=gauge-car-dark


springboot api 系统架构图 springboot技术架构图_springboot架构图_15


4、进行前后端数据交互

前端部分


springboot api 系统架构图 springboot技术架构图_获取数据展现在echarts上_16


后端部分


springboot api 系统架构图 springboot技术架构图_数据_17


结语:对学习了spring boot或者Echarts想要一个练手项目的时候,那么这个项目就适合你。我为什么没有直接利用Java去实现本机(windows)一些性能指标的监控呢,比如下图。因为Java并不能直接获取本机的一些数据,应该是操作系统层面的权限问题吧,这些都是我踩过的坑,我也只获取到了jvm层面,代码就不附了,感兴趣的网上或者私我都可以。

大忽悠:计算机指标2-整合mybatiszhuanlan.zhihu.com


如果帮到你了,不要吝啬你的赞哦,关注不迷路,关于Java和大数据的知识我会持续更新~


springboot api 系统架构图 springboot技术架构图_Java_18

win10指标监控