[原创]Java应用性能远程监控系统(C/S架构)
Java应用性能远程监控系统(使用C/S架构)
适用于监控所有Java应用,具有堆内存监控、方法区监控、GC监控、类加载监控、类编译监控与线程监控,提供堆快照下载,线程快照下载。体验网址:http://116.85.23.6:8888/
一、简介
JavaMonitor 发布之后,受到了很多网友的好评,QQ群也有很多人加入反馈建议,身为作者,甚为骄傲。但 JavaMonitor 的局限性也有很多,比如,无法进行远程监控,无法监控多个服务器,占用内存太大等等。为了解决上述问题,基于 JavaMonitor-0.0.7 开发而成的 JavaMonitoPlus 诞生了!JavaMonitoPlus 不仅解决了上述三个问题,而且增加了安全认证,优化了缓存,使页面访问更加流畅!
二、环境
要求JDK8及以上,必须有Java环境变量,且Java环境变量不冲突!
三、使用
首先,在releases下载发行版压缩包,解压。
在需要监控的主机上运行 client.jar 包即可,默认8081端口,可以追加参数--server.port=9999更改。
然后,在作为监控中心的主机上运行 server.jar 包,默认8888端口,到这里是不会成功的,因为还需要在该jar包目录下,新建配置文件并配置监控的主机列表,详细介绍接下来会说到。
四、主机
配置监控的主机非常简单,只需要在jar包所在目录下新建application.properties文件,配置以下字段即可。
monitor.serve[0].name=serve-1
monitor.serve[0].address=http://127.0.0.1:8081
monitor.serve[1].name=serve-1
monitor.serve[1].address=http://127.0.0.1:8082
注意:一定要写明HTTP协议!name值若不写,默认就是主机地址。
五、监控
默认监控频率为60秒,并且只记录当天产生的监控数据。
如果需要自定义监控频率与监控时长,只需要在jar包所在目录下新建application.properties文件,修改下列字段即可
monitor.rate=60 #监控频率/秒
monitor.cron=0 0 0 * * ? #每日的0:00:00时刻清空数据
连续监控1个月,示例
monitor.cron=0 0 0 1 * ?
连续监控1年,示例
monitor.cron=0 0 0 1 1 ? *
六、安全
JMP 默认是不开启安全认证的,若要开启请在application.properties文件中添加
monitor.open=true
默认用户名/密码为admin,修改方法为
monitor.username=admin
monitor.password=admin
七、MySQL
JMP内嵌H2数据库,有诸多限制,不过JMP提供MySQL数据库的支持。
使用方法很简单,新建application.properties文本文件放在jar包目录下,修改下列参数即可,这样数据库就更换为了MySQL。
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
spring.jpa.hibernate.ddl-auto=update
八、监控参数
- S0C:s0(from)的大小
- S1C:s1(from)的大小
- S0U:s0(from)已使用的空间
- S1U:s1(from)已经使用的空间
- EC:eden区的大小
- EU:eden区已经使用的空间
- OC:老年代大小
- OU:老年代已经使用的空间
- MC:元空间的大小(Metaspace)
- MU:元空间已使用大小
- CCSC:压缩类空间大小(compressed class space)
- CCSU:压缩类空间已使用大小
- YGC:新生代gc次数
- YGCT:新生代gc耗时
- FGC:Full gc次数
- FGCT:Full gc耗时
- GCT:gc总耗时
- Loaded:表示载入了类的数量
- Unloaded:表示卸载类的数量
- Compiled:表示编译任务执行的次数
- Failed:表示编译失败的次数
- Total:线程总数
- Runnable:正在运行的线程数
- Sleeping:休眠的线程数
- Waiting:等待的线程数
九、关于作者
博客:https://www.yueshutong.cn/
Github:https://github.com/yueshutong/JavaMonitor
Gitee:https://gitee.com/zyzpp/JavaMonitor
开源中国:https://www.oschina.net/p/javamonitor
邮箱:yster@foxmail.com
QQ群:781927207

JM项目遇到的小坑
Thymeleaf
在HTML页面取值时不要使用getter方法,直接.value即可。
反例:map.getValue()
正例:map.value
FastJson
将json字符串转为 Map<String, MyObject> 类型的对象
正例:JSON.parseObject(json, Map.class)
将json字符串转为 List<MyObject> 类型的对象
正例:JSON.parseArray(json, MyObject.class)
注意!MyObject.class 一定有无参构造方法!
[原创]Java应用性能远程监控系统(C/S架构)的更多相关文章
- 基于邮件系统的远程实时监控系统的实现 Python版
人生苦短,我用Python~ 界内的Python宣传标语,对Python而言,这是种标榜,实际上,Python确实是当下最好用的开发语言之一. 在相继学习了C++/C#/Java之后,接触Python ...
- 远程监控 – 应用程序运行状况测量 CSF 博客
在远程监控基础知识和故障排除中,我们探讨了 Windows Azure 平台提供的基础指标.信息源.工具和脚本,介绍了有关监控和应用程序运行状况的基本原则.我们演示了如何利用这些基本原则对在 Wind ...
- 开源监控系统Prometheus介绍
前言 Prometheus是CNCF的一个开源项目,Google BorgMon监控系统的开源版本,是一个系统和服务的监控系统.周期性采集metrics指标,匹配规则和展示结果,以及触发某些条件的告警 ...
- c# 远程监控(1) 大纲
此篇文章主要讲了如何使用C# Winform程序模拟一个远程监控系统,并使用RTP实时传输协议传输数据. 应用场景:远程监控.局域网视频会议.客户端流式缓冲播放 这方面的资料还是有一些,但是都需要整合 ...
- 基于 HTML5 WebGL 的 3D 棉花加工监控系统
前言 现在的棉花加工行业还停留在传统的反应式维护模式当中,当棉花加下厂的设备突然出现故障时,控制程序需要更换.这种情况下,首先需要客户向设备生产厂家请求派出技术人员进行维护,然后生产厂家才能根据情况再 ...
- 如何借助Monit搭建服务器监控系统?(1)
许多Linux管理员依赖一种集中式远程监控系统(比如Nagios或Cacti),检查网络基础设施的健康状况.虽然集中式监控系统为管理员在处理许多主机和设备时简化了工作,但专用的监控设备显然成了单一故障 ...
- 打造云原生大型分布式监控系统系列文章-腾讯工程师roc
附上本系列文章链接 打造云原生大型分布式监控系统(一): 大规模场景下 Prometheus 的优化手段 打造云原生大型分布式监控系统(二): Thanos 架构详解 打造云原生大型分布式监控系统(二 ...
- [原创]Java性能优化权威指南读书思维导图
[原创]Java性能优化权威指南读书思维导图 书名:Java性能优化权威指南 原书名:Java performance 作者: (美)Charlie Hunt Binu John 译者: 柳飞 ...
- 干货 | 云智慧透视宝Java代码性能监控实现原理
这篇图文并茂,高端大气上档次,思维缜密的文章,一看就和我平时的风格不同.对了.这不是我写的,是我家高大英俊,写一手好代码,做一手好菜的男神老公的大作,曾发表于技术公号,经本人授权转载~~ 一.Java ...
随机推荐
- 深入理解Java虚拟机-第1章-走进Java-读书笔记
第 1 章 走近 Java 前言 Java 的技术体系主要是由支撑 Java 程序运行的虚拟机.为各开发领域提供接口支持的 Java API.Java 编程语言及许许多多的第三方 Java 框架(如 ...
- Identity Server 4 - Hybrid Flow - Claims
前一篇 Identity Server 4 - Hybrid Flow - MVC客户端身份验证: https://www.cnblogs.com/cgzl/p/9253667.html Claims ...
- Python基础(reduce,filter,map函数)
map函数: map函数特点:对可迭代对象中的每个元素进行相同的操作(例如每个元素+1等等) #————————————————map函数———————————————————— #对列表的各个元素实 ...
- Java实现单链表
真正的动态数据结构(引用和指针) 优点:真正的动态,不需要处理固定容量的问题. 缺点:丧失随机访问的能力. 链表就像寻宝,我们拿到藏宝图开始出发寻宝,每找到一个地方后,里面藏着下一步应该去哪里寻找.一 ...
- 品阿里 Java 开发手册有感
摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! 一个优秀的工程师和一个普通的工程师的区别,不是满天飞的架构图, ...
- HttpClient在.NET Core中的正确打开方式
问题来源 长期以来,.NET开发者都通过下面的方式发送http请求: using (var httpClient = new HttpClient()) { var response = await ...
- python学习第四讲,python基础语法之判断语句,循环语句
目录 python学习第四讲,python基础语法之判断语句,选择语句,循环语句 一丶判断语句 if 1.if 语法 2. if else 语法 3. if 进阶 if elif else 二丶运算符 ...
- C#语法——await与async的正确打开方式
C#5.0推出了新语法,await与async,但相信大家还是很少使用它们.关于await与async有很多文章讲解,但有没有这样一种感觉,你看完后,总感觉这东西很不错,但用的时候,总是想不起来,或者 ...
- 2.5 Cesium视域分析的实现
Cesium 视域分析 祝愿周末没事,技术继续分享交流,群685834990
- openlayers三:添加图片和图标
openlayers添加图片是指: 添加在地图上的图片会跟随地图同步放大缩小 而添加图标是指: 添加在地图上的图片不会跟随地图同步放大缩小 添加图片: 首先初始化图片图层: initImageLaye ...