我想用 Prometheus/Grafana(以及一些 Wildfly)监控一些 JBoss EAP 7 服务器。
我知道我必须使用jmx_exporter。
我应该将它用作嵌入式(代理)还是边车(http)?
哪个配置文件?
我想用 Prometheus/Grafana(以及一些 Wildfly)监控一些 JBoss EAP 7 服务器。
我知道我必须使用jmx_exporter。
我应该将它用作嵌入式(代理)还是边车(http)?
哪个配置文件?
推荐使用嵌入在 Java JVM 虚拟机中的 jmx-exporter(使用-javaagent
)。这更容易,更强大,并提供更好的洞察力。
配置文件取决于版本(JBoss 使用 undertow ......这是与 JBoss 6 不同的要收集的 mBean)。
jmx-exporter 项目为 WildFly 10 example_configs/wildfly-10.yaml提供了一个示例配置文件。
但是,如果您使用“JBoss EAP for Openshift”容器镜像,jmx-exporter 代理已经嵌入到容器中(设置变量:AB_PROMETHEUS_ENABLE=true
有时也是这个JAVA_OPTS_APPEND=-Dwildfly.statistics-enabled=true
)
如果您不使用 Red Hat 的容器镜像,您仍然可以使用相同的 jmx-exporter 配置文件。这些文件 (jmx-exporter-config.yaml) 是开源的,可在 github 上找到:
我能够使用此配置刮取指标
将以下配置添加到您的启动脚本或standalone.conf
JAVA_OPTS="$JAVA_OPTS -Djboss.modules.system.pkgs=org.jboss.byteman,org.jboss.logmanager -Djava.util.logging.manager=org.jboss.logmanager.LogManager -Dorg.jboss.logging.Logger.pluginClass=org.jboss.logging.logmanager.LoggerPluginImpl"
JAVA_OPTS="$JAVA_OPTS -Xbootclasspath/p:$JBOSS_HOME/modules/system/layers/base/org/jboss/logmanager/main/jboss-logmanager-2.0.3.Final-redhat-1.jar"
JAVA_OPTS="$JAVA_OPTS -javaagent:/path/to/exporter/jmx_exporter.jar=10001:/path/to/config/config.yaml"