使用Collectd + InfluxDB + Grafana进行JMX监控
我们已经看到使用Collectd监控CPU /内存利用率(本文)。但它没有提供所有信息来确定性能问题的瓶颈。在本文中,我们将使用Collectd Java插件来使用其JMX技术来监视和管理Java虚拟机(JVM)。
目标:
使用Java的JMX技术监视和管理Java虚拟机(JVM)。
建筑:
我们的高级架构如下所示 - 我们将监控所有应用服务器,JMeter服务器和JMeter-master的JVM。

JMX(Java托管扩展):
JMX是在Java 5.0发行版中引入的,用于在运行时管理/监视资源。使用JMX,我们将能够监视内存使用情况,垃圾收集,加载的类,线程数等随着时间的推移。这是性能工程中更有用的信息。更多信息在这里。

如上图所示,使用JMX连接器,JConsole / Collectd等客户端与MBean服务器通信,以获取我们感兴趣的应用程序的度量标准。
JConsole的:
JConsole是一个用于监视JVM的GUI工具。它附带Java JDK。让我们看看它如何帮助我们监控JMeter。[我假设你安装了JDK]
- 启动JMeter
- 打开一个简单的测试计划/创建一个。
- 转到Java JDK Home / bin文件夹
- 启动JConsole.exe

- 它将显示正在运行的Java应用程序列表。选择ApacheJMeter.jar并连接。如果出现此对话窗口,请单击“不安全连接”

- 运行JMeter测试。

- JConsole显示内存使用情况,线程数[ 不要与JMeter的线程数混淆 ],加载类等
- 单个选项卡提供更多信息,如GC。
监控远程过程:
- 当我们在上面监视本地进程(ApacheJMeter.jar)时,JConsole也可用于监视远程进程(远程进程可能是您的tomcat服务器/ JMeter-server)
- 应为远程进程设置某些属性,以便client / JConsole可以与JMX API通信以获取信息。在启动java进程时,传递以下属性。
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=6969
-Dcom.sun.management.jmxremote.rmi.port=6969
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
- 如果您正在运行docker容器,请确保还使用了以下属性。
-Djava.rmi.server.hostname=${HOST_IP}
- 要收集jmeter-server jmx指标,我在下面设置环境变量并启动jmeter-server.sh
export JVM_ARGS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=6969 -Dcom.sun.management.jmxremote.rmi.port=6969 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
- 对于Tomcat:
CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=6969 -Dcom.sun.management.jmxremote.rmi.port=6969 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
- 只需将上述参数传递给java进程即可启用JMX监控。
- 现在,JConsole可以使用以下服务URL连接到远程JMX。
service:jmx:rmi:///jndi/rmi://hostname:6969/jmxrmi
Collectd Java插件:
JConsole是一个很好的工具。但它不保留历史数据。我们已经使用Collectd来监控我们的jmeter-servers和app服务器的CPU和内存利用率。我们可以使用Collectd的Java和JMX插件将JMX指标收集到InfluxDB中。
请先阅读本文关于collectd的用法。
我将在collectd配置文件中添加以下部分。
重启collectd服务。等几分钟来收集一些指标。

获得此数据后,最后一步将在Grafana中创建一个仪表板来创建图形。

摘要:
使用Collectd插件,以及CPU和内存利用率,我们还可以将JMX指标收集到InfluxDB中。使用Grafana,我们可以可视化,性能测试结果(最小值,最大值,平均响应时间,吞吐量等),JMX度量(堆内存使用,加载的类计数,线程数,GC)和其他指标,如所有的CPU和内存利用率JMeter服务器,App服务器。
使用Collectd + InfluxDB + Grafana进行JMX监控的更多相关文章
- collectd+influxDB+Grafana搭建性能监控平台
网上查看了很多关于环境搭建的文章,都比较久远了很多安装包源都不可用了,今天收集了很多资料组合尝试使用新版本来搭建,故在此记录. 采集数据(collectd)-> 存储数据(influxdb) - ...
- Telegraf+InfluxDB+Grafana搭建服务器监控平台
Telegraf+InfluxDB+Grafana搭建服务器监控平台 tags:网站 个人网站:https://wanghualong.cn/ 效果展示 本站服务器状态监控:https://statu ...
- [转帖] 基于telegraf, influxdb, grafana 建立 esxi 监控
[系统集成] 基于telegraf, influxdb, grafana 建立 esxi 监控 https://www.cnblogs.com/hahp/p/7677420.html 之前在 nagi ...
- Docker系列——InfluxDB+Grafana+Jmeter性能监控平台搭建(一)
在做性能测试的时候,重点关注点是各项性能指标,用Jmeter工具,查看指标数据,就是借助于聚合报告,但查看时也并不方便.那如何能更直观的查看各项数据呢?可以通过InfluxDB+Grafana+Jme ...
- Docker系列——InfluxDB+Grafana+Jmeter性能监控平台搭建(三)
在之前系列博文中,已经介绍完了数据采集和数据存储,那数据如何展示呢?所以今天就专门来讲下数据如何展示的问题. 以前博文参考: Docker系列--InfluxDB+Grafana+Jmeter性能监控 ...
- Collectd+InfluxDB+Grafana监控系统搭建
环境配置 节点 配置 类型 操作系统 Sched 2G 2CPU 50GB ens3=>192.168.200.11 KVM虚拟机 CentOS 7 Nova 4G 2CPU 50GB ens3 ...
- [系统集成] 基于telegraf, influxdb, grafana 建立 esxi 监控
之前在 nagios 上建立了 esxi 监控,指标少.配置麻烦.视觉效果差.最近我把 esxi 监控迁移到了 influxdb+grafana 平台上,无论是监控指标.可操作性还是视觉效果都有了很大 ...
- InfluxDB+Grafana大数据监控系列之基础环境部署(一)
一.单节点环境部署 机器节点信息及 InfluxDB.Grafana 版本选择: 节点 Linux版本 部署服务 10.223.1.198 Centos 6.8 InfluxDB 1.7.7 10.2 ...
- 性能测试监控:Jmeter+Collectd+Influxdb+Grafana
系统性能指标图示例: 采集数据(collectd)-> 存储数据(influxdb) -> 显示数据(grafana) InfluxDB 是 Go 语言开发的一个开源分布式时序数据库,非常 ...
随机推荐
- OpenCV——百叶窗
参考: PS 图像特效,百叶窗 // define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLU ...
- mysql调优参考笔记
之前一位童鞋发的: 5版邮件,在用户量很大的情况下,如果做了分布式,如果在后端mysql上执行: mysql> show global status like 'Thread%'; Th ...
- ACM学习历程—HDU5476 Explore Track of Point(平面几何)(2015上海网赛09题)
Problem Description In Geometry, the problem of track is very interesting. Because in some cases, th ...
- 电子商务网站SQL注入项目实战一例(转载)
故事A段:发现整站SQL对外输出: 有个朋友的网站,由于是外包项目,深圳某公司开发的,某天我帮他检测了一下网站相关情况. 我查看了页面源代码,发现了个惊人的事情,竟然整站打印SQL到Html里,着实吓 ...
- Poj 1125 Stockbroker Grapevine(Floyd算法求结点对的最短路径问题)
一.Description Stockbrokers are known to overreact to rumours. You have been contracted to develop a ...
- C#的闭包
简单的理解:闭包变量是把局部变量的作用域扩展到回调函数,发生在匿名方法注册到委托上,而匿名方法中使用外部的局部变量 说什么都不如图示那么容易明白啊 先看C#的源码 class Program { st ...
- USACO-Your Ride Is Here(你的飞碟在这儿)-Section1.2<1>
[英文原题] Your Ride Is Here It is a well-known fact that behind every good comet is a UFO. These UFOs o ...
- mysql主从服务器复制原理
在实际企业应用环境当中,单台mysql数据库是不足以满足日后业务需求的.譬如服务器发生故障,没有备份服务器来提供服务的话,业务就得停止.介于这种情况,我们来学习一下mysql主从复制. 将Mysql的 ...
- NodeJS”热部署“代码,实现动态调试(hotnode,可以实现热更新)
NodeJS”热部署“代码,实现动态调试 开发中遇到的问题 如果你有 PHP 开发经验,会习惯在修改 PHP 脚本后直接刷新浏览器以观察结果,而你在开发 Node.js 实现的 HTTP 应用时会 ...
- JS设置cookie、读取cookie、删除cookie(转)
JS设置cookie.读取cookie.删除cookie 转载 2015-04-17 投稿:hebedich 我要评论 Js操作Cookie总结(设置,读取,删除),工作中经常会用到的哦! ...