🏅概述
JMX Exporter
主要是利用Java
的JMX
机制来读取JVM
运行时的一些数据,然后转化为Prometheus
可读取的metrics
格式的数据。
JMX Exporter
有两种用法:
- 启动独立进程。通过
RMI
读取JVM
数据,但是单独进程监控也存在问题。JVM
进程内启动(agent
)。JVM
启动时指定参数,以javaagent
形式运行。官方也推荐是使用进程内启动形式,本文采用进程内启动形式。
🧱TongWeb配置
- 上传jmx_prometheus_javaagent-0.19.0.jar到
tongweb
安装目录下bin
目录,编写config.yaml
文件
wercaseOutputLabelNames: true
lowercaseOutputName: true
whitelistObjectNames: ["java.lang:type=OperatingSystem", "TONGWEB:*","config:*"]
blacklistObjectNames: []
rules:
- pattern: ".*"
.
├── boot.sh
├── commandstool.sh
├── config.yaml # 配置文件
├── domain.sh
├── external.vmoptions
├── external.vmoptions.template
├── forcestopserver.sh
├── installservice.sh
├── jmx_prometheus_javaagent-0.17.0.jar # jmx_agent
├── password.sh
├── startdomain.sh
├── startserverbg.sh
├── startservernohup.sh
├── startserver-nohup-with-check.sh
├── startserver.sh
├── stopdomain.sh
├── stopserver.sh
├── thread-profiler.sh
└── version.sh
TongWeb安装目录/bin
目录下,修改external.vmoptions
文件,在#jvm_options
后添加javaagent
参数
# 说明 39081为端口号 jar都使用绝对路径。
-javaagent:"/data/tongweb/TongWeb7.0.4.9_Enterprise_Linux/bin/jmx_prometheus_javaagent-0.17.0.jar=39081:/data/tongweb/TongWeb7.0.4.9_Enterprise_Linux/bin/config.yaml"
- 重启
TongWeb
服务,启动成功后访问http://127.0.0.1:39081/metrics
,验证是否采集到监控数据
📑Prometheus配置
在Prometheus
中配置target
即可。如果有其他服务发现,就不需要如下配置。
- job_name: tongweb
static_configs:
- targets: ['10.9.31.21:39081']
labels:
instance: 10.9.31.21
🎨面板展示
https://grafana.com/grafana/dashboards/19156
📖参考资料
- https://github.com/prometheus/jmx_exporter
- https://help.yunsuo.qianxin.com/guide/rasp/TongWeb.html