使用Prometheus+Grafana监控JVM

21次阅读

共计 2142 个字符,预计需要花费 6 分钟才能阅读完成。

原文地址
摘要
用到的工具:

Docker,本文大量使用了 Docker 来启动各个应用。

Prometheus,负责抓取 / 存储指标信息,并提供查询功能。

Grafana,负责数据可视化。

JMX exporter,提供 JMX 中和 JVM 相关的信息。
Tomcat,用来模拟一个 Java 应用。

先讲一下大致步骤:

利用 JMX exporter,在 Java 进程内启动一个小型的 Http server
配置 Prometheus 抓取那个 Http server 提供的数据。
配置 Grafana 连接 Prometheus,配置 Dashboard。

第一步:启动几个 Java 应用
1) 新建一个目录,名字叫做 prom-jvm-demo。
2) 下载 JMX exporter 到这个目录
3) 新建一个文件 simple-config.yml 内容如下:

blacklistObjectNames: [“*:*”]
4) 运行以下命令启动 3 个 Tomcat,记得把 <path-to-prom-jvm-demo> 替换成正确的路径:
docker run -d \
–name tomcat-1 \
-v <path-to-prom-jvm-demo>:/jmx-exporter \
-e CATALINA_OPTS=”-Xms64m -Xmx128m -javaagent:/jmx-exporter/jmx_prometheus_javaagent-0.3.1.jar=6060:/jmx-exporter/simple-config.yml” \
-p 6060:6060 \
-p 8080:8080 \
tomcat:8.5-alpine

docker run -d \
–name tomcat-2 \
-v <path-to-prom-jvm-demo>:/jmx-exporter \
-e CATALINA_OPTS=”-Xms64m -Xmx128m -javaagent:/jmx-exporter/jmx_prometheus_javaagent-0.3.1.jar=6060:/jmx-exporter/simple-config.yml” \
-p 6061:6060 \
-p 8081:8080 \
tomcat:8.5-alpine

docker run -d \
–name tomcat-3 \
-v <path-to-prom-jvm-demo>:/jmx-exporter \
-e CATALINA_OPTS=”-Xms64m -Xmx128m -javaagent:/jmx-exporter/jmx_prometheus_javaagent-0.3.1.jar=6060:/jmx-exporter/simple-config.yml” \
-p 6062:6060 \
-p 8082:8080 \
tomcat:8.5-alpine
5) 访问 http://localhost:8080|8081|8082 看看 Tomcat 是否启动成功。
6) 访问对应的 http://localhost:6060|6061|6062 看看 JMX exporter 提供的 metrics。
备注:这里提供的 simple-config.yml 仅仅提供了 JVM 的信息,更复杂的配置请参考 JMX exporter 文档。
第二步:启动 Prometheus
1) 在之前新建目录 prom-jvm-demo,新建一个文件 prom-jmx.yml,内容如下:
crape_configs:
– job_name: ‘java’
static_configs:
– targets:
– ‘<host-ip>:6060’
– ‘<host-ip>:6061’
– ‘<host-ip>:6062’
2) 启动 Prometheus:
docker run -d \
–name=prometheus \
-p 9090:9090 \
-v <path-to-prom-jvm-demo>:/prometheus-config \
prom/prometheus –config.file=/prometheus-config/prom-jmx.yml
3) 访问 http://localhost:9090 看看 Prometheus 是否启动成功,在输入框里输入 jvm_info 然后执行,应该可以看到如下图的结果:

如果没有看到三个 instance,那么等一会儿再试。
第三步:配置 Grafana
1) 启动 Grafana:
docker run -d –name=grafana -p 3000:3000 grafana/grafana
2) 访问 http://localhost:3000,使用 admin/admin 登录。
3) 添加 Prometheus 数据源,如下图所示到添加数据源页面:

4) 配置数据源信息:

Name:随便取
Type:Prometheus
URL:http://<host-ip>:9090

其余不要设置,点击 Save & Test,应该会返回成功结果

5) 导入 Dashboard。我们不需要重头自己做 Dashboard,用现成的就行,按下图所示进入导入页面

6) 使用我制作的 JVM Dashboard,页面右侧出现的 ID 号是 8563,记住这个号,填在如下图所示的位置:

7) 然后鼠标点击别处稍等一下,出现下图,选择一下数据源就可以了

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

正文完
 0