使用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服务器。

原文地址:https://www.cnblogs.com/a00ium/p/10381299.html

时间: 2024-10-09 22:30:08

使用Collectd + InfluxDB + Grafana进行JMX监控的相关文章

collectd+influxDB+grafana搭建性能监控平台

collectd+influxDB+grafana搭建性能监控平台 前言 InfluxDB 是 Go 语言开发的一个开源分布式时序数据库,非常适合存储指标.事件.分析等数据:键值时间数据库性能还不错 collectd 是C 语言写的一个系统性能采集工具 Grafana 是纯 Javascript 开发的前端工具,用于访问 InfluxDB,自定义报表.显示图表等.V3.0以上版本支持zabbix 数据库,可以非常方便直接由zabbix_agent 采集数据. 1 环境信息 测试环境174,175

collectd+influxdb+grafana

今天一天都在弄这个,最终发现在配置grafana的时候选择influxdb的版本时候错了.挠头~~~ collectd的配置还算简单,基本看过就知道了. influxdb配置也还可以,但是查询语法还需要学习. grafana的英文界面真是有点高深啊,好多点击的按钮都是找了半天.但是展示的结果还是很炫的.真是为了炫,才狠下心非要搞定.界面的配置方法还需要更多的学习. 数据的传输过程:collectd(5.4.0-3ubuntu2) -> influxdb(0.8.8) -> grafana(2.

Go实操-Kafka+Influxdb+Grafana实现系统监控

1. 安装Influxdb:https://blog.csdn.net/v6543210/article/details/84134403, wget https://dl.influxdata.com/influxdb/releases/influxdb_1.6.4_amd64.deb sudo dpkg -i influxdb_1.6.4_amd64.deb 2. 安装grafana.http://docs.grafana.org/installation/debian/. wget htt

docker+influxdb+grafana+jmeter性能监控

influxdb docker参考:https://hub.docker.com/_/influxdb github地址:https://github.com/influxdata/influxdb doc地址:https://v2.docs.influxdata.com/v2.0/ 其他解释参考:https://www.jianshu.com/p/1be8b7273b89 一些概念: database相当于mysql中的database measurement相当于mysql中的表 point

kafka监控实战(jmxtrans+InfluxDb+Grafana)

一.前言 从上周一直在调研找一款好用的kafka监控,我测试使用过的KafkaOffsetMonitor.Burrow.kafka-monitor.Kafka-Manager,他们各有优缺点,具体情况我这里就不展开描述了,大家可以到它们的git上去查看, 并且它们基本上都是监控topic的写入和读取等等,没有提供对于整体集群的监控信息,比如集群的分片.延时.内存使用情况等等,无意中发现了jmxtrans,jmxtrans它是一个通过jmx采集java应用的数据采集器,他的输出可以是Graphit

基于InfluxDB+Grafana打造大数据监控利器--转

这是一个大数据爆发的时代.面对信息的激流.多元化数据的涌现,我们在获取.存储.传输.理解.分析.应用.维护大数据时,无疑需要一种便捷的信息交流通道,以便快速.有效.准确地理解和驾驭这个过程.本文将通过时序数据库(InfluxDB)+Grafana的实践,来介绍如何将数据便捷地展现出来. 一.InfluxDB 开源的分布式时序.时间和指标数据库,使用Go语言编写,无需外部依赖.其中,时间序列数据库是数据格式里包含Timestamp字段的数据,比如某一时间用户上网流量.通话详单等.但是,有什么数据不

grafana + influxdb + telegraf , 构建性能监控平台

1.安装平台 1).grafana , 访问各类数据源 , 自定义报表.显示图表等等 , 用于提供界面监控 , 默认端口为3000 , 默认登陆信息admin wget https://grafanarel.s3.amazonaws.com/builds/grafana-3.1.1-1470047149.x86_64.rpm yum install initscripts fontconfig -y rpm -ivh grafana-3.1.1-1470047149.x86_64.rpm sys

docker:十分钟构建容器监控系统cAdvisor+InfluxDB+Grafana

1.概念 cAdvisor:用于数据采集InfluxDB:用于数据存储Grafana:用于数据展示 1.1 cAdvisor 它是Google用来监测单节点的资源信息的监控工具.Cadvisor提供了一目了然的单节点多容器的资源监控功能.Google的Kubernetes中也缺省地将其作为单节点的资源监控工具,各个节点缺省会被安装上Cadvisor.总结起来主要两点: 展示 Host 和容器两个层次的监控数据. 展示历史变化数据. ?由于 cAdvisor 提供的操作界面略显简陋,而且需要在不同

docker swarm cAdvisor+InfluxDB+Grafana 监控

docker swarm集群的监控方案很多,cAdvisor+InfluxDB+Grafana方案功能强大灵活.最重要的是这个方案开源.免费.易用,是不花钱版监控方案.参考文档:https://botleg.com/stories/monitoring-docker-swarm-with-cadvisor-influxdb-and-grafana/ 组件说明 cAdvisor:数据收集模块,需要部署在集群中的每一个节点上,当然前提条件是节点接受task.在本次实验中,共有三个节点,因为其中一个节