1

我需要在 ganglia 报告上查看 jvm 指标,我已经在节点上设置了 jmxetric,并在使用简单的“telnet localhost 8649”时查看 jvm 指标。

我有 gmond/gmetad 在另一台机器上运行的 ganglia-web,它显示标准报告,例如 cpu/memory,但不显示新的 jvm 指标。

我应该手动配置 ganglia-web 以使其也显示 jvm 组吗?

我正在使用神经节 3.3.7。

4

2 回答 2

3

回答我自己的问题,以下是在 ganglia web 中查看 jvm 报告所需执行的步骤:

  • git 克隆并构建https://github.com/ganglia/jmxetric (mvn 包)
  • 从 gmetric4j-1.0.2.jar/jmxetric-1.0.2.jar/oncrpc-1.0.7.jar 创建 superjar(为了避免类加载问题,推荐的方法是什么?)
  • 启动 jvm 时添加代理:
  • -javaagent:/etc/zoomdata/jmxetric-1.0.2.jar=host=MYHOST_AS_IN_GMOND_CONF,port=8649,mode=unicast,wireformat31x=true,process=PROCESS_NAME,config=/etc/jmxetric.xml"
  • jmxmetric.xml 如https://github.com/ganglia/jmxetric

注意:javaagent中使用的主机名必须与gmond.conf中使用的主机名/端口/模式/进程一致,可以指定为-javaagent选项,也可以在jmxetric.xml中指定,如果需要部署到多台机器,最好去掉来自 xml 的 jvm 和 ganglia 节点,并通过 -javaagent 参数定义所有内容。xml 将仅包含 jvm 指标列表,并且可以复制到所有机器。

于 2013-02-26T11:22:33.317 回答
1

应该不需要配置 ganglia-web 来显示新的指标,它们只是显示出来,因为它们的元数据也被监听的 gmond 知道,因此 gmetad 已接收并将它们写入 rrd 数据库。

你用的是单播模式吗?您可能仅将 jmxetric 指标发送到在 jmxetric 主机上运行的 gmond。Gmond 不会将指标转发到 ganglia-web/gmetad/gmond 主机,除非您将它们添加到gmond.confjmxetric 主机的收集组中。

同样在单播模式下,请确保gmond.confsend_metadata_interval设置为 0 以外的值(默认值)。如果您在 gmetad 节点上重新启动 gmond,这可以防止指标消失。

另一种方法是将 jmx 指标直接从 jmxetric 发送到在 gmetad 节点上运行的 gmond。

于 2013-02-26T07:40:39.383 回答