使用Prometheus+Grafana监控JVM

一、概述

JMX Exporter

https://github.com/prometheus/jmx_exporter


它是Prometheus官方组件,作为一个JAVA Agent来提供本地JVM的metrics,并通过http暴露出来。这也是官方推荐的一种方式,可以获取进程的信息,比如CPU和内存使用情况。

Jmx_exporter是以代理的形式收集目标应用的jmx指标,这样做的好处在于无需对目标应用做任何的改动。
运行JMX exporter的方式:

java XXX -javaagent:/root/jmx_exporter/jmx_prometheus_javaagent-0.12.0.jar=3010:/root/jmx_exporter/config.yaml  -jar XXX.jar

 

下载

目前最新版是0.12.0,下载链接为:

https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.12.0/jmx_prometheus_javaagent-0.12.0.jar

 

二、JMX Exporter配置

simple-config.yml

我的prometheus安装路径为:/data/prometheus

新建配置文件simple-config.yml

mkdir /data/prometheus/jmx_exporter
cd /data/prometheus/jmx_exporter
wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.12.0/jmx_prometheus_javaagent-0.12.0.jar
vim simple-config.yml

内容如下:

---
lowercaseOutputLabelNames: true
lowercaseOutputName: true
whitelistObjectNames: ["java.lang:type=OperatingSystem"]
rules:
 - pattern: 'java.lang<type=OperatingSystem><>((?!process_cpu_time)\w+):'
   name: os_$1
   type: GAUGE
   attrNameSnakeCase: true

 

比如我有一个rms的java应用,启动方式为:

java -jar /data/rms/RMS.jar

使用JMX Exporter插件收集数据,需要改成这样:

java -javaagent:/data/prometheus/jmx_exporter/jmx_prometheus_javaagent-0.12.0.jar=3010:/data/prometheus/jmx_exporter/simple-config.yml -jar /data/rms/RMS.jar

注意:3010是代理端口,可以随意指定。

 

prometheus.yml

修改配置文件,增加一个job_name

vim /data/prometheus/prometheus.yml

最后一行增加

  - job_name: 'java'
    scrape_interval: 30s
    static_configs:
    - targets: ['localhost:3010']

重启prometheus

/etc/init.d/prometheus-server restart

 

三、Grafana配置

导入Dashboard

模板链接为:

https://grafana.com/grafana/dashboards/8563/revisions

点击下面的Download,进行下载。

 

 

登录Grafana,点击import

 

 

上传json

 

 

数据源选择 Prometheus

 

 

最后打开刚刚导入的Dashboard,如下图

 

 

本文参考链接:

https://chanjarster.github.io/post/prom-grafana-jvm/

为了使用 PrometheusGrafana 监控 Java 虚拟机(JVM)性能指标,可以按照以下步骤进行配置。 ### 1. 部署 Prometheus Prometheus 是一个开源的系统监控和警报工具,它可以从目标服务中拉取指标数据。你需要首先安装 Prometheus 并配置其抓取 JVM 指标。 #### 下载 Prometheus 你可以从 [Prometheus 官网](https://prometheus.io/download/) 下载适合你操作系统的版本。解压后,进入 Prometheus 的安装目录。 #### 配置 Prometheus 抓取 JVM 指标 编辑 `prometheus.yml` 文件,在 `scrape_configs` 中添加一个任务来抓取 JVM 指标。JVM 指标通常通过 JMX Exporter 暴露出来,你需要确保 Java 应用程序已经配置了 JMX Exporter。 ```yaml scrape_configs: - job_name: 'jvm' static_configs: - targets: ['<java-application-host>:<port>'] # 替换为你的 Java 应用的地址和端口 ``` #### 启动 Prometheus 在命令行中运行 Prometheus: ```bash ./prometheus --config.file=prometheus.yml ``` Prometheus 现在将开始抓取 JVM 指标,并存储在本地数据库中。 ### 2. 配置 Java 应用以暴露 JVM 指标 为了使 Prometheus 能够抓取 JVM 指标,你需要使用 JMX Exporter 来暴露这些指标。JMX Exporter 是一个 Java 代理,它可以将 JVM 的 JMX 指标转换为 Prometheus 可以理解的格式。 #### 下载 JMX Exporter 从 [JMX Exporter GitHub 页面](https://github.com/prometheus/jmx_exporter) 下载最新的 `jmx_prometheus_javaagent`。 #### 配置 Java 应用 在启动 Java 应用时,添加 JMX Exporter 作为 JVM 参数。例如: ```bash java -javaagent:/path/to/jmx_prometheus_javaagent-0.16.1.jar=<port>:<config-file> -jar your-application.jar ``` - `<port>`:JMX Exporter 暴露指标的端口,例如 `5556`。 - `<config-file>`:JMX Exporter 的配置文件路径,你可以使用默认的 `config.yaml` 或者自定义配置文件。 #### 示例配置文件 `config.yaml` ```yaml startDelaySeconds: 0 hostPort: localhost:12345 username: user password: pass ssl: true rules: - pattern: "java.lang<type=Memory><>HeapMemoryUsage.(used|committed|max|init)" name: "jvm_memory_bytes_$1" labels: region: "heap" help: "JVM Heap Memory Usage" type: GAUGE ``` ### 3. 部署 Grafana Grafana 是一个开源的可视化工具,支持多种数据源,包括 Prometheus。你可以通过 Grafana 创建仪表板来可视化 JVM 指标。 #### 下载并安装 Grafana 你可以从 [Grafana 官网](https://grafana.com/grafana/download/) 下载适合你操作系统的版本。安装完成后,启动 Grafana。 #### 配置 Prometheus 数据源 1. 打开 Grafana 的 Web 界面(默认地址为 `http://localhost:3000`)。 2. 登录后,进入 **Configuration > Data Sources**。 3. 点击 **Add data source**,选择 **Prometheus**。 4. 输入 Prometheus 的地址(例如 `http://localhost:9090`)。 5. 点击 **Save & Test**,确保数据源配置正确。 ### 4. 创建 Grafana 仪表板 1. 在 Grafana 中,点击 **Create > Dashboard**。 2. 点击 **Add new panel**。 3. 在 **Query** 部分,选择 Prometheus 数据源,并输入 Prometheus 查询语句来获取 JVM 指标。例如,查询 JVM 堆内存使用情况: ```promql jvm_memory_bytes_used{region="heap"} ``` 4. 配置可视化选项,如图表类型、单位、颜色等。 5. 点击 **Apply** 保存面板。 你还可以从 Grafana 的官方模板库中导入现成的 JVM 监控仪表板。例如,搜索并导入 [JVM (via JMX) 模板](https://grafana.com/grafana/dashboards/8563)。 ### 5. 验证监控效果 1. 确保 Prometheus 正在抓取 JVM 指标。 2. 在 Grafana 中查看仪表板,确认 JVM 指标已经正确显示。 3. 如果需要,可以设置警报规则,以便在 JVM 指标超出正常范围时触发通知。 通过以上步骤,PrometheusGrafana 可以成功监控 JVM 的性能指标,并提供直观的可视化展示,帮助你实时监控 Java 应用的运行状态 [^1]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值