您的位置:首页 > 健康 > 养生 > JVM线上监控环境搭建Grafana+Prometheus+Micrometer

JVM线上监控环境搭建Grafana+Prometheus+Micrometer

2025/1/11 23:57:01 来源:https://blog.csdn.net/weixin_46203834/article/details/140019233  浏览:    关键词:JVM线上监控环境搭建Grafana+Prometheus+Micrometer

架构图

一: SpringBoot自带监控Actuator

        SpringBoot自带监控功能Actuator,可以帮助实现对程序内部运行情况监控,比如监控内存状况、CPU、Bean加载情况、配置属性、日志信息、线程情况等。

使用步骤:

1. 导入依赖坐标

   <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency>

2. 访问监控地址: http://127.0.0.1:8086/actuator

监控应用endpoint:

路径描述默认开启
/beans显示容器的全部的Bean,以及它们的关系Y
/env获取全部环境属性Y
/env/{name}根据名称获取特定的环境属性值Y
/health显示健康检查信息Y
/info显示设置好的应用信息Y
/mappings显示所有的@RequestMapping信息Y
/metrics显示应用的度量信息Y
/scheduledtasks显示任务调度信息Y
/httptrace显示Http Trace信息Y
/caches显示应用中的缓存Y
/conditions显示配置条件的匹配情况Y
/configprops显示@ConfigurationProperties的信息Y
/loggers显示并更新日志配置Y
/shutdown关闭应用程序N
/threaddump执行ThreadDumpY
/headdump返回HeadDump文件,格式为HPROFY
/prometheus返回可供Prometheus抓取的信息Y

配置:

management:endpoints:web:exposure:include: "*" #用于选择公开所有接口endpoint:health:show-details: ALWAYS #显示所有健康状态shutdown:enabled: true  #启用接口关闭 Spring Boot

二: Micrometer

        Spring Boot 2.0以上,使用了micrometer作为底层的度量工具,micrometer是监控度量的门面,它能支持按照各种格式来暴露数据,其中就有Prometheus。

我们引入一个依赖来暴露Prometheus数据:

<dependency><groupId>io.micrometer</groupId><artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

这个依赖的作用就是会开启一个endpoint,输出兼容Prometheus exporter的结果,方便Prometheus来采集。修改SpringBoot配置:

management:endpoints:web:exposure:include: "*" #用于选择公开所有接口endpoint:health:show-details: ALWAYS #显示所有健康状态shutdown:enabled: true  #启用接口关闭 Spring Bootmetrics:tags:application: ${spring.application.name} #暴露的数据中添加应用名称

然后启动应用, 访问http://127.0.0.1:8086/actuator/prometheus 应该会得到如下结果:

这就是Prometheus exporter的格式,可以看到里面暴露了很详细的JVM指标。接下来,配置Prometheus抓取监控数据。

三: 安装node_exporter

1) 下载 node_exporter

wget -c https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz

2) 解压

tar zxvf node_exporter-0.18.1.linux-amd64.tar.gz 

3) 启动

nohup ./node_exporter > node.log 2>&1 &

 4) 校验是否启动成功

    访问接口是否成功

http://192.168.18.205:9100/metrics

四: 安装 Prometheus

1) 下载 Prometheus

wget -c https://github.com/prometheus/prometheus/releases/download/v2.15.1/prometheus-2.15.1.linux-amd64.tar.gz

2) 解压

tar zxvf prometheus-2.15.1.linux-amd64.tar.gz

3) 配置 Prometheus

 # sms-demo 应用程序配置
- job_name: 'sms-demo'metrics_path: '/actuator/prometheus'static_configs:- targets: ['192.168.18.205:8086']# node-exporter 配置- job_name: 'sms-Linux'static_configs:- targets: ['192.168.18.205:9100']

4)  运行

nohup ./prometheus > prometheus.log 2>&1 &

4) 校验是否启动成功

测试Prometheus是否安装配置成功

http://192.168.18.205:9090/targets


五: 安装 Grafana

1)下载Grafana镜像:

docker pull grafana/grafana

2)启动Grafana容器:

启动Grafana容器,将3000端口映射出来

docker run -d --name grafana -p 3000:3000 grafana/grafana

3)验证部署成功

网页端访问http://192.168.18.205:3000/验证部署成功

默认账户密码:admin\admin

 4) Prometheus整合Grafana

增加数据源Data sources

 点击 Add data source

 选择Prometheus进行配置,点击 Select

 配置Prometheus链接, 并点击Save & test 保存

 5) 导入模版

点击Import

 输入 模版ID 进行加载

 JVM监控模版: dashboad-ID:12856

Linux系统监控模版:

  • Node Exporter for Prometheus Dashboard EN 20201010

    • dashboard-ID: 11074

  • Node Exporter Dashboard

    • dashboard-ID: 16098

配置上述模版, JVM模版是用来监控我们应用JVM的详情信息, 而Linux系统模版是用来监控我们的服务器.

完整效果如下图:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com