性能测试监控平台搭建-jxm_exporter(七)

7.jxm_exporter实现对java程序的监控

7.1 下载jmx_exporter相关的jar包

官方地址:https://github.com/prometheus/jmx_exporter

官方的历史版本下载库地址:https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/

7.2 jxm_exporter的使用

7.2.1 创建 jar包的保存位置

[root@master ~]# mkdir -p /opt/app/jmx_prometheus_javaagent

7.2.2 下载对应的jar包

[root@master ~]# cd /opt/app/jmx_prometheus_javaagent
[root@master jmx_prometheus_javaagent]# wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/1.0.1/jmx_prometheus_javaagent-1.0.1.jar
--2024-10-14 21:05:30--  https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/1.0.1/jmx_prometheus_javaagent-1.0.1.jar
正在解析主机 repo1.maven.org (repo1.maven.org)... 146.75.92.209, 2a04:4e42:87::209
正在连接 repo1.maven.org (repo1.maven.org)|146.75.92.209|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:2886599 (2.8M) [application/java-archive]
正在保存至: “jmx_prometheus_javaagent-1.0.1.jar”

100%[=============================================================================================================================================================================>] 2,886,599   48.6KB/s 用时 36s    

2024-10-14 21:06:07 (78.0 KB/s) - 已保存 “jmx_prometheus_javaagent-1.0.1.jar” [2886599/2886599])

7。2.3 创建采集数据配置的yaml文件

[root@master jmx_prometheus_javaagent]# vim config.yaml

config.yaml文件内容如下:

rules:
- pattern: ".*"

7.2.4 使用方式

这里使用一个math-game.jar的为例,演示使用方式

格式 java -javaagent:{jmx_export.jar本机绝对路径}=自定义端口:{config.yaml本机绝对路径} -jar 需要监控的jar包

# 进入到 math-game的目录
[root@master jmx_prometheus_javaagent]# cd
[root@master ~]# cd /opt/app/math-game/
[root@master math-game]# ll
总用量 8
-rw-r--r-- 1 root root 4120 10月 14 20:30 math-game.jar

# 启动math-game,同时 javaagent 调用 jmx_exporter的包
[root@master math-game]# java -javaagent:/opt/app/jmx_prometheus_javaagent/jmx_prometheus_javaagent-1.0.1.jar=39081:/opt/app/jmx_prometheus_javaagent/config.yaml -jar math-game.jar

启动后,在浏览器执行 http://10.0.0.100:39081/metrics 可以看到对应的内容展示

修改prometheus的配置文件,用于添加对jmx_exporter的数据收集,在安装prometheus的目录下找到prometheus.yml的配置文件

[root@master ~]# cd /opt/app/prometheus-2.53.2/
[root@master prometheus-2.53.2]# ll
总用量 261328
drwxr-xr-x. 2 root root        38 8月   9 23:13 console_libraries
drwxr-xr-x. 2 root root       173 8月   9 23:13 consoles
drwxr-xr-x. 6 root root       138 10月 11 19:43 data
-rw-r--r--. 1 root root     11357 8月   9 23:13 LICENSE
-rw-r--r--. 1 root root      3773 8月   9 23:13 NOTICE
-rwxr-xr-x. 1 root root 137838575 8月   9 22:56 prometheus
-rw-r--r--. 1 root root       950 10月 11 16:14 prometheus.yml
-rwxr-xr-x. 1 root root 129735160 8月   9 22:56 promtool
-rw-r--r--. 1 root root        45 10月 11 16:11 reload-prometheus.sh

# 修改配置文件添加node_exporter的数据收集信息
[root@master prometheus-2.53.2]# vim prometheus.yml

在prometheus.yml文件中进行修改,在最后追加 jxm_exporter部分的jobname

# my global config
global:
  scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"
    static_configs:
      - targets: ["10.0.0.100:9090"]

  - job_name: "node_exporter"
    static_configs:
      - targets: ["10.0.0.100:9100"]

  - job_name: "mysqld_exporter"
    static_configs:
      - targets: ["10.0.0.100:9104"]

  - job_name: "jmx_exporter"
    static_configs:
      - targets: ["10.0.0.100:39081"]

对prometheus进行热加载修改的配置

[root@master prometheus-2.53.2]# curl -X POST http://10.0.0.100:9090/-/reload

通过浏览器地址访问 http://10.0.0.100:9090 的地址访问(ip地址使用实际的地址),在Status->Targets 下 看到 jmx_exporter启动成功的记录

posted @ 2024-12-15 15:37  tigerMao  阅读(95)  评论(0)    收藏  举报