zoukankan      html  css  js  c++  java
  • 使用Collectd + InfluxDB + Grafana进行JMX监控

    我们已经看到使用Collectd监控CPU /内存利用率(本文)。但它没有提供所有信息来确定性能问题的瓶颈。在本文中,我们将使用Collectd Java插件来使用其JMX技术来监视和管理Java虚拟机(JVM)。

    目标:

    使用Java的JMX技术监视和管理Java虚拟机(JVM)。

    建筑:

    我们的高级架构如下所示 - 我们将监控所有应用服务器,JMeter服务器和JMeter-master的JVM。

    collectd流

    JMX(Java托管扩展):

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

    1

    如上图所示,使用JMX连接器,JConsole / Collectd等客户端与MBean服务器通信,以获取我们感兴趣的应用程序的度量标准。

    JConsole的:

    JConsole是一个用于监视JVM的GUI工具。它附带Java JDK。让我们看看它如何帮助我们监控JMeter。[我假设你安装了JDK]

    • 启动JMeter
    • 打开一个简单的测试计划/创建一个。
    • 转到Java JDK Home / bin文件夹
    • 启动JConsole.exe

    JConsole的-CONNECT

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

    JConsole的不安全

    • 运行JMeter测试。

    JConsole的显示器

    • 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服务。等几分钟来收集一些指标。

    JMX-influxdb-1

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

    JMX-grafana

    摘要:

    使用Collectd插件,以及CPU和内存利用率,我们还可以将JMX指标收集到InfluxDB中。使用Grafana,我们可以可视化,性能测试结果(最小值,最大值,平均响应时间,吞吐量等),JMX度量(堆内存使用,加载的类计数,线程数,GC)和其他指标,如所有的CPU和内存利用率JMeter服务器,App服务器。

     

  • 相关阅读:
    springCloud你要了解的都在这(方向性)
    十分钟了解 spring cloud
    JDK 自带压缩解压流
    JAVA自带API的压缩与解压
    Java实现多文件压缩打包的方法
    芯片超Intel,盈利比肩Apple,三星成科技界"全民公敌"
    一个不知道体谅难处,一个说话伤人自尊,矛盾的种子已悄悄埋下
    一天杀了两千宦官(袁绍也曾仗义过,为东汉彻底除去了宦官祸害。何进却心软了,任凭袁绍怎么劝说,何进就是不下手)
    WMWaire使用FreeNAS硬盘挂载、Raid0
    net share列出了Windows的默认共享(包括C盘)
  • 原文地址:https://www.cnblogs.com/a00ium/p/10381299.html
Copyright © 2011-2022 走看看