如何使用 Prometheus jmx-exporter 监控 JBoss EAP
Posted
技术标签:
【中文标题】如何使用 Prometheus jmx-exporter 监控 JBoss EAP【英文标题】:How to monitor JBoss EAP with Prometheus jmx-exporter 【发布时间】:2020-11-14 08:59:38 【问题描述】:我想用 Prometheus/Grafana(以及一些 Wildfly)监控一些 JBoss EAP 7 服务器。
我知道我必须使用jmx_exporter。
我应该将它用作嵌入式(代理)还是边车(http)?
哪个配置文件?
【问题讨论】:
【参考方案1】:推荐使用嵌入在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 代理已经嵌入到容器中(设置variables:AB_PROMETHEUS_ENABLE=true
,有时也设置JAVA_OPTS_APPEND=-Dwildfly.statistics-enabled=true
)
如果您不使用 Red Hat 的容器镜像,您仍然可以使用相同的 jmx-exporter 配置文件。这些文件 (jmx-exporter-config.yaml) 是开源的,可在 github 上获得:
在主分支上JBoss 7.3 在旧分支上JBoss 6.4 (and 7.1 and 7.2)【讨论】:
我们正在尝试在域模式下为 JBoss7.3 安装 jmx_exporter,但它失败并出现以下错误 [Server:server-two] java.lang.NoClassDefFoundError: org/wildfly/common/net/ org.jboss.logmanager.ExtLogRecord.我能够使用此配置抓取指标
将以下配置添加到您的启动脚本或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"
【讨论】:
谢谢!经过一整天的研究,这对我有用!以上是关于如何使用 Prometheus jmx-exporter 监控 JBoss EAP的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 grafana 可视化 prometheus 端点指标
如何使用联合从多个 Prometheus 实例(每个使用 instance="localhost:9090")中收集 Prometheus 的指标