此项目是迭代产生的,本人精力水平有限一共更新了五篇,期间有任何疑问欢迎大家评论或者私我。这一篇文章讲了基本的实现,后面的文章增加了数据库,hdfs,redis,页面布局。写过的文章我也会持续更新,让文章更细,代码功能更加丰富,此项目满足了用spring boot框架最基本的增删改查功能,并将这些数据进行可视化展现,如果正好有此需求的人,那么这篇文章一定不容错过。关注不迷路~你们的鼓励就是我最大的动力(ง •_•)ง
话不多说,先来最终效果!!!觉得不错就看下去,这个系列如果帮到你了,就给个赞吧~
程序流程图
集群部署架构图
项目技术栈
负载均衡实现效果
目的:计算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
本篇实现效果
实现步骤
- Java利用ssh连接Linux
- 数据准备
- 提供一个可视化模板
- 进行前后端联动,异步将数据传输到页面上
1、Java利用ssh连接Linux
2、数据准备
(1)CPU使用率获取
command:top -b -n 1 | head -3
第三行为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空闲百分比
(2)内存使用率获取
command:cat /proc/meminfo
红框代表含义:总内存,空闲内存
计算方式:(总内存-空闲内存)/总内存
(3)实时网速获取
command:cat /proc/net/dev(记录了不同网络接口(interface)上的各种包的记录)
最左边的表示接口的名字,Receive表示收包(下载量),Transmit表示发送包(上传量)
需要一个脚本文件(获取实时网速和实时上传率,我只做了第一个,可以自己扩展一下)
简单介绍以下脚本含义:sed将:替换为空格全局匹配, awk读第二个,grep 按什么匹配,echo代表输出什么,剩下的有点语言底子的都应该可以看懂,我也就不说了。
计算方式:根据前后一秒网络下载量所产生的差值作为数据
3、可视化模板
我们需要一个可视化前端模板,我找了一个官方案例,效果如下
https://echarts.apache.org/examples/zh/editor.html?c=gauge-car-dark
4、进行前后端数据交互
前端部分
后端部分
结语:对学习了spring boot或者Echarts想要一个练手项目的时候,那么这个项目就适合你。我为什么没有直接利用Java去实现本机(windows)一些性能指标的监控呢,比如下图。因为Java并不能直接获取本机的一些数据,应该是操作系统层面的权限问题吧,这些都是我踩过的坑,我也只获取到了jvm层面,代码就不附了,感兴趣的网上或者私我都可以。
大忽悠:计算机指标2-整合mybatiszhuanlan.zhihu.com
如果帮到你了,不要吝啬你的赞哦,关注不迷路,关于Java和大数据的知识我会持续更新~
win10指标监控