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系统模版是用来监控我们的服务器.

完整效果如下图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/369340.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实验三 图像增强—灰度变换

一、实验目的&#xff1a; 1、了解图像增强的目的及意义&#xff0c;加深对图像增强的感性认识&#xff0c;巩固所学理论知识。 2、学会对图像直方图的分析。 3、掌握直接灰度变换的图像增强方法。 二、实验原理及知识点 术语‘空间域’指的是图像平面本身&#xff0c;在空…

工作助手VB开发笔记(2)

今天继续讲功能 2.功能 2.9开机自启 设置程序随windows系统启动&#xff0c;其实就是就是将程序加载到注册表 Public Sub StartRunRegHKLM()REM HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ Microsoft \ Windows \ CurrentVersion \ RunDim strName As String Applicat…

Netty学习(NIO基础)

NIO基础 三大组件 Channel and Buffer 常用的只有ByteBuffer Selector&#xff08;选择器&#xff09; 结合服务器的设计演化来理解Selector 多线程版设计 最早在nio设计出现前服务端程序的设计是多线程版设计,即一个客户端对应一个socket连接,一个连接用一个线程处理,每…

基于docker环境及Harbor部署{很简短一点了,耐心看吧}

用到的环境&#xff1a; docker 、nacos、compose、harbor&#xff08;自行安装 ,以下连接作为参考&#xff09; nacos&#xff1a;史上最全整合nacos单机模式整合哈哈哈哈哈_nacos 源码启动 单机模式-CSDN博客 docker、compose、harbor:史上最全的整合Harbor安装教程&#…

一览 Anoma 上的有趣应用概念

撰文&#xff1a;Tia&#xff0c;Techub News 本文来源香港Web3媒体&#xff1a;Techub News Anoma 的目标是为应用提供通用的意图机器接口&#xff0c;这意味着使用 Anoma&#xff0c;开发人员可以根据意图和分布式意图机编写应用&#xff0c;而不是根据事务和特定状态机进行…

技术成神之路:设计模式(二)建造者模式

1.定义 建造者模式&#xff08;Builder Pattern&#xff09;是一种创建型设计模式&#xff0c;它允许你分步骤创建复杂对象&#xff0c;而不必直接调用构造函数。建造者模式特别适合那些包含多个组成部分并且构造过程复杂的对象。 2. 结构 建造者模式的主要组成部分包括&#…

UE5 02-给物体一个扭矩力

需要注意的是: 1.弹簧臂 可以使用绝对旋转 这样就可以不跟随父物体Player的旋转 2.弹簧臂 进行碰撞测试勾选,当这个弹簧线被遮挡,摄像机会切换到碰撞点位置 进行碰撞测试勾选,当这个弹簧线被遮挡,摄像机不会切换到碰撞点位置

RAG 为什么需要文本分割(Chunking)

Picone上的一个博客&#xff0c;翻译过来学习一下&#xff0c;其中加入了一些个人的理解和调整&#xff0c;有兴趣更深入研究的可以看一下文章的原文。 为什么需要文本分割&#xff08;Chunking&#xff09; 在构建与LLM相关的应用程序时&#xff0c;Chunking是将大量文本分解…

Python酷库之旅-第三方库Pandas(004)

目录 一、用法精讲 5、pandas.DataFrame.to_csv函数 5-1、语法 5-2、参数 5-3、功能 5-4、返回值 5-5、说明 5-6、用法 5-6-1、代码示例 5-6-2、结果输出 6、pandas.read_fwf函数 6-1、语法 6-2、参数 6-3、功能 6-4、返回值 6-5、说明 6-6、用法 6-6-1、代码…

微信小程序渲染层与逻辑层交互原理

1. 网页开发与小程序开发有何不同&#xff1f; 2. 小程序运行环境 3. 页面渲染技术选型 1. 纯客户端技术&#xff1b; 2. 纯Web技术&#xff1b; 3. 用客户端原生技术与Web技术结合的混合技术&#xff08;Hybrid&#xff09;&#xff0c;小程序就是使用的这种技术&#xff1…

C++11 shared_ptr---面试常考

shared_ptr简介 共享对其所指堆内存空间的所有权&#xff0c;当最后⼀个指涉到该对象的shared_ptr不再指向他时&#xff0c;shared_ptr会⾃动析构所指对象如何判断⾃⼰是否指涉到该资源的最后⼀个&#xff1f;《引⽤计数》 shared_ptr构造函数&#xff0c;使引⽤计数析构函数&…

【YOLOv5/v7改进系列】改进池化层为ASPP

一、导言 Atrous Spatial Pyramid Pooling (ASPP)模块是一种用于多尺度特征提取的创新技术&#xff0c;旨在提升深度学习模型在语义图像分割任务中的表现。ASPP模块通过在不同的采样率下应用空洞卷积&#xff0c;可以捕获不同大小的对象以及图像的上下文信息&#xff0c;从而增…

Astro新前端框架首次体验

Astro新前端框架首次体验 1、什么是Astro Astro是一个静态网站生成器的前端框架&#xff0c;它提供了一种新的开发方式和更好的性能体验&#xff0c;帮助开发者更快速地构建现代化的网站和应用程序。 简单来说就是&#xff1a;Astro这个是一个网站生成器&#xff0c;可以直接…

Hyper-V克隆虚拟机教程分享!

方法1. 使用导出导入功能克隆Hyper-V虚拟机 导出和导入是Hyper-V服务器备份和克隆的一种比较有效的方法。使用此功能&#xff0c;您可以创建Hyper-V虚拟机模板&#xff0c;其中包括软件、VM CPU、RAM和其他设备的配置&#xff0c;这有助于在Hyper-V中快速部署多个虚拟机。 在…

前端引用vue/element/echarts资源等引用方法Blob下载HTML

前端引用下载vue/element/echarts资源等引用方法 功能需求 需求是在HTML页面中集成Vue.js、Element Plus&#xff08;Element UI的Vue 3版本&#xff09;、ECharts等前端资源&#xff0c;使用Blob下载HTML。 解决方案概述 直接访问线上CDN地址&#xff1a;简单直接&#xff0c…

计算机网络(2

计算机网络续 一. 网络编程 网络编程, 指网络上的主机, 通过不同的进程, 以编程的方式实现网络通信(或网络数据传输). 即便是同一个主机, 只要不同进程, 基于网络来传输数据, 也属于网络编程. 二. 网络编程套接字(socket) socket: 操作系统提供的网络编程的 API 称作 “soc…

【数据结构与算法】堆排序算法原理与实现:基于堆实现的高效排序算法

&#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a;《数据结构与算法》 期待您的关注 ​ 目录 一、引言 堆排序的简介 堆排序的特点 二、堆的概念 三、堆排序算法的原理 四、堆…

软件测试面试1000问(含答案)

1、自动化代码中,用到了哪些设计模式? 单例设计模式工厂模式PO设计模式数据驱动模式面向接口编程设计模式 2、什么是断言( Assert) ? 断言Assert用于在代码中验证实际结果是不是符合预期结果&#xff0c;如果测试用例执行失败会抛出异常并提供断言日志 3、什么是web自动化…

数据结构预科

在堆区申请两个长度为32的空间&#xff0c;实现两个字符串的比较【非库函数实现】 要求&#xff1a; 1> 定义函数&#xff0c;在对区申请空间&#xff0c;两个申请&#xff0c;主函数需要调用2次 2> 定义函数&#xff0c;实现字符串的输入&#xff0c;void input(char …