文档

接入JVM监控数据(新版)

更新时间:

Java Virtual Machine(JVM)提供多项监控指标,您可以将JVM中的监控指标接入到全栈可观测应用中,进行可视化展示。

前提条件

  • 已创建全栈可观测实例。具体操作,请参见创建实例

  • 已在服务器上安装Java 1.7或以上版本。

基本原理

Java Management Extensions(JMX)技术是Java SE平台的标准功能,提供了一种简单、标准的监控和管理资源的方式,主要用于监控和管理Java应用的运行状态、资源信息、JVM虚拟机运行情况等信息。JMX还支持通过remote RMI方式进行暴露,类似于一个Prometheus Exporter。与通过Javaagent集成数据相比,通过RMI接口读取指标更安全、集成成本更低。

image

步骤一:启动Java应用的JMX服务

Java服务默认关闭JMX指标的RMI接口。出于安全考虑,建议暴露范围仅为当前主机。本案例为暴露JMX指标到1617端口。

java -Dcom.sun.management.jmxremote.port=1617
     -Dcom.sun.management.jmxremote.rmi.port=1617
     -Dcom.sun.management.jmxremote.ssl=false
     -Dcom.sun.management.jmxremote.authenticate=false
     -Djava.rmi.server.hostname=127.0.0.1
-jar demo-0.0.1-SNAPSHOT.jar

如需要开启RMI密码访问模式,请设置启动参数-Dcom.sun.management.jmxremote.authenticate=true,并修改${JAVA_HOME}/jre/lib/management/jmxremote.password中的密码配置。

步骤二:创建Logtail采集配置

  1. 登录日志服务控制台

  2. 日志应用区域的智能运维页签下,单击全栈可观测

  3. SLS全栈可观测页面,单击目标实例。

  4. 在左侧导航栏中,单击全栈监控

    首次在该实例中使用性能监控时,还需单击立即开启

  5. 在左侧导航栏中,单击数据接入,然后在数据接入配置页面,找到中间件监控区域的JVM

    首次创建目标监控项的接入配置时,打开创建开关,可进入配置页面。如果您已创建过接入配置,则单击创建图标,可进入配置页面。

  6. 创建机器组。

    • 如果您已有可用的机器组,请单击使用现有机器组

    • 如果您还没有可用的机器组,请执行以下操作(以ECS为例)。

      1. ECS机器页签中,通过手动选择实例方式选择目标ECS实例,单击创建

        更多信息,请参见安装Logtail(ECS实例)

        重要

        如果您的服务器是与日志服务属于不同账号的ECS、其他云厂商的服务器和自建IDC时,您需要手动在目标服务器中安装Linux Logtail 1.2.1及以上版本。具体操作,请参见安装Logtail(Linux系统)。安装完成后,您还需要在该服务器上手动配置用户标识。具体操作,请参见配置用户标识

      2. 安装完成后,单击确认安装完毕

      3. 创建机器组页面,输入名称,单击下一步

        日志服务支持创建IP地址机器组和用户自定义标识机器组,详细参数说明请参见创建IP地址机器组创建用户自定义标识机器组

    重要

    请确保用于安装Logtail的服务器可连接目标JVM服务器。

  7. 确认目标机器组已在应用机器组区域,单击下一步

    重要

    创建机器组后立刻应用,可能因为连接未生效,导致心跳为FAIL,您可单击自动重试。如果还未解决,请参见Logtail机器组无心跳进行排查。

  8. 数据源设置中,配置如下参数,然后单击完成

    参数名称

    说明

    一般配置

    配置名称

    自定义设置Logtail采集配置的名称。

    集群名称

    自定义设置集群的名称。

    设置该参数后,日志服务会为通过该Logtail采集配置采集到的JVM监控数据添加cluster=集群名称的标签。

    重要

    请确保该集群名称唯一,否则可能出现数据冲突。

    服务器列表

    添加JVM服务器的信息,具体配置项说明如下:

    • 地址:JVM服务器的地址。

    • 端口:JVM服务器的端口号,需与步骤一:启动Java应用的JMX服务中的端口号保持一致。

    • 访问用户名:JMX访问用户名。

    • 访问密码:JMX访问密码。

    • JMX实例标签:支持为不同的实例标注不同的标签,如果不同的实例归属于不同的服务,可以使用service: 服务名称标签进行标注。

    您可以根据业务需求,添加多台服务器信息。

    全局标签

    当所有服务存在共性标签时,可以使用全局标签进行标注,例如全局标注服务名称,使用service: 服务名称标签进行标注。

    JAVA_HOME 路径

    本地使用的JDK路径,默认使用which java指令进行路径探测。

    高级配置

    新版垃圾收集器JMX模式

    打开开关后,支持兼容G1等新版垃圾收集器。

    默认JVM指标

    打开开关后,Logtail将采集预定义的核心JVM指标。

    JMX采集范围过滤器

    由于JMX Bean存在大量数据,因此全量采集会影响性能。当预定义的指标无法满足您的需求时,您可以使用JMX Bean范围、JMX Bean正则、JMX Bean类型以及采集JMX属性范围进行采集过滤。

    • JMX Bean范围

      设置为路径或路径列表,例如java.lang

    • JMX Bean正则

      设置为与路径匹配的正则表达式模式或模式列表,例如java\.lang.*

    • JMX Bean类型

      设置为类的名称。

    • 采集JMX属性范围

      • 属性名:JMX属性名称。

      • 指标值:可以根据指标类型指定为guage、histogram或counter。

      • 指标名称:对外输出的指标名称。

    设置完成后,日志服务将自动生成Metricstore等资产。更多信息,请参见资产说明

后续步骤

接入JVM监控数据后,全栈可观测应用会自动生成专属仪表盘。您可以通过仪表盘分析监控数据。具体操作,请参见查看仪表盘

  • 本页导读 (1)
文档反馈