使用Prometheus+Grafana的方法监控Springboot应用教程详解

1 简介

项目越做越发觉得,任何一个系统上线,运维监控都太重要了。关于Springboot微服务的监控,之前写过【Springboot】用Springboot Admin监控你的微服务应用,这个方案可以实时监控并提供告警提醒功能,但不能记录历史数据,无法查看过去1小时或过去1天等运维情况。本文介绍Prometheus + Grafana的方法监控Springboot 2.X,实现美观漂亮的数据可视化。

2 Prometheus

Prometheus是一套优秀的开源的监控、报警和时间序列数据库组合系统,在现在最常见的Kubernetes容器管理系统中,通常会搭配Prometheus进行监控。

2.1 引入到Springboot

Prometheus引入依赖如下:

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

对于Springboot,要开启Actuator,并打开对应的Endpoint

management.endpoints.web.exposure.include=*
# 或者
management.endpoints.web.exposure.include=prometheus

启动Springboot后,可以通过下面URL看能不能正确获取到监控数据:

localhost:8080/actuator/prometheus

获取数据成功,说明Springboot能正常提供监控数据。

2.2 Docker方式使用

为了方便,使用Docker启动Prometheus

# 拉取docker镜像
docker pull prom/prometheus

准备配置文件prometheus.yml

scrape_configs:
# 可随意指定
- job_name: 'spring'
 # 多久采集一次数据
 scrape_interval: 15s
 # 采集时的超时时间
 scrape_timeout: 10s
 # 采集的路径
 metrics_path: '/actuator/prometheus'
 # 采集服务的地址,设置成Springboot应用所在服务器的具体地址
 static_configs:
 - targets: ['hostname:9000','hostname:8080']

启动docker实例:

# 端口为9090,指定配置文件
docker run -d -p 9090:9090 -v ~/temp/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus --config.file=/etc/prometheus/prometheus.yml

2.3 测试与查看

成功启动后,就可以打开网页查看了,并且能图形化展示,URL为http://localhost:9090/。

如上图所示,打开网页后,随便选取一个对应的监控指标与参数,点击Execute就可以查看了。

3 Grafana

Grafana是一个开源的度量分析与可视化套件,纯JavaScript开发的前端工具,通过访问库(如InfluxDB),展示自定义报表、显示图表等。它的UI十分灵活,有丰富的插件和模板,功能强大。一般用在时序数据的监控方面。

3.1 Docker安装与启动

# 拉取镜像
docker pull grafana/grafana
# 运行实例
docker run -d -p 3000:3000 grafana/grafana

启动成功后,访问http://localhost:3000 检查是否成功,初始管理员账号密码为admin/admin

3.2 配置数据源

Grafana展示数据,则需要配置对应的数据源,本文中配置之前安装启用的Prometheus数据源,具体配置如下图所示:

需要注意的是Access要选Browser模式,否则无法正常获取数据。配置完成后,点击Save & Test即可。

3.3 模板套用

能够获取数据后,就可以自定义数据可视化展示了。但如果自己一条指标一条指标的加,就会很麻烦。实际上,Grafana提供了许多优秀的模板,可以网页https://grafana.com/grafana/dashboards 查找。

本文使用Spring Boot 2.1 Statistics模板,导入方法如下:

点击+号 --> Import --> 输入模板链接或ID --> 点击Load。

成功导入后,就能监控数据了,而且,界面真的很好看:

4 总结

本文介绍了如何使用Prometheus + Grafana监控Springboot应用,实际上,Prometheus + Grafana十分强大,值得花时间好好研究。

本文例子中软件版本信息如下:

springboot.version=2.2.5
micrometer-registry-prometheus=1.3.5
prometheus.version=2.16
grafana.version=6.7.0-beta1

到此这篇关于用Prometheus+Grafana监控Springboot应用的文章就介绍到这了,更多相关Prometheus+Grafana监控Springboot内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 使用Grafana+Prometheus监控mysql服务性能

    Prometheus(也叫普罗米修斯)官网:https://prometheus.io/docs/introduction/overview/ Grafana官网:https://grafana.com/enterprise 特征 普罗米修斯的主要特点是: 具有由度量名称和键/值对标识的时间序列数据的多维数据模型 一个灵活的查询语言 来利用这一维度 不依赖分布式存储; 单个服务器节点是自治的 时间序列集合通过HTTP上的拉模型发生 推送时间序列通过中间网关支持 通过服务发现或静态配置发现目标 多

  • SpringBoot 监控管理模块actuator没有权限的问题解决方法

    SpringBoot 1.5.9 版本加入actuator依赖后,访问/beans 等敏感的信息时候报错,如下 Tue Mar 07 21:18:57 GMT+08:00 2017 There was an unexpected error (type=Unauthorized, status=401). Full authentication is required to access this resource. 肯定是权限问题了.有两种方式: 1.关闭权限:application.prop

  • 利用Prometheus与Grafana对Mysql服务器的性能监控详解

    概述 Prometheus是一个开源的服务监控系统,它通过HTTP协议从远程的机器收集数据并存储在本地的时序数据库上.它提供了一个简单的网页界面.一个功能强大的查询语言以及HTTP接口等等.Prometheus通过安装在远程机器上的exporter来收集监控数据,这里用到了以下两个exporter: node_exporter – 用于机器系统数据 mysqld_exporter – 用于Mysql服务器数据 Grafana是一个开源的功能丰富的数据可视化平台,通常用于时序数据的可视化.它内置了

  • springboot 使用Spring Boot Actuator监控应用小结

    微服务的特点决定了功能模块的部署是分布式的,大部分功能模块都是运行在不同的机器上,彼此通过服务调用进行交互,前后台的业务流会经过很多个微服务的处理和传递,出现了异常如何快速定位是哪个环节出现了问题? 在这种框架下,微服务的监控显得尤为重要.本文主要结合Spring Boot Actuator,跟大家一起分享微服务Spring Boot Actuator的常见用法,方便我们在日常中对我们的微服务进行监控治理. Actuator监控 Spring Boot使用"习惯优于配置的理念",采用包

  • SpringBoot实现项目健康检查与监控

    Spring Boot 最主要的特性就是AutoConfig(自动配置),而对于我们这些使用者来说也就是各种starter, Spring Boot-Actuator 也提供了starter,为我们自动配置,在使用上我们只需要添加starter到我们的依赖中,然后启动项目即可. <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-ac

  • 使用Prometheus+Grafana的方法监控Springboot应用教程详解

    1 简介 项目越做越发觉得,任何一个系统上线,运维监控都太重要了.关于Springboot微服务的监控,之前写过[Springboot]用Springboot Admin监控你的微服务应用,这个方案可以实时监控并提供告警提醒功能,但不能记录历史数据,无法查看过去1小时或过去1天等运维情况.本文介绍Prometheus + Grafana的方法监控Springboot 2.X,实现美观漂亮的数据可视化. 2 Prometheus Prometheus是一套优秀的开源的监控.报警和时间序列数据库组合

  • SpringBoot入门教程详解

    目录 一.SpringBoot简介 二.SpringBoot入门案例 1.创建项目 2.编写 Controller 类 3.启动项目 4.使用 Postman 测试 三.SpringBoot VS Spring 四.在官网中构建工程 六.SpringBoot 是如何实现简化开发的 1.启动依赖 2.引导类 七.切换 Web 一.SpringBoot简介 SpringBoot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化 Spring 应用的初始搭建以及开发过程. 我们在学习 S

  • Mybatis 创建方法、全局配置教程详解

    总体介绍:MyBatis实际上是Ibatis3.0版本以后的持久化层框架[也就是和数据库打交道的框架]! 和数据库打交道的技术有: 原生的JDBC技术--->Spring的JdbcTemplate技术 这些工具都是提供简单的SQL语句的执行,但是和我们这里学的MyBatis框架还有些不同, 框架是一整套的东西,例如事务控制,查询缓存,字段映射等等. 我们用原生JDBC操作数据库的时候都会经过: 编写sql---->预编译---->设置参数----->执行sql------->

  • 基于javamelody监控springboot项目过程详解

    JavaMelody是用来在QA和实际运行生产环境中监控Java或Java EE应用程序服务器的一个开源框架.它不是一个工具来模拟来自用户的请求,而是一个测量和计算用户在实际操作中应用程序的使用情况的工具,并以图表的形式显示,图表可以按天,周,月,年或自定义时间段查看. JavaMelody基础的监控包括Java内存和Java CPU使用情况,用户Session数量,JDBC连接数,和http请求.sql请求.jsp页面与业务接口方法(EJB3.Spring. Guice)的执行数量,平均执行时

  • SpringBoot+Prometheus+Grafana实现应用监控和报警的详细步骤

    背景 SpringBoot的应用监控方案比较多,SpringBoot+Prometheus+Grafana是目前比较常用的方案之一.它们三者之间的关系大概如下图: 开发SpringBoot应用 首先,创建一个SpringBoot项目,pom文件如下: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</art

  • SpringBoot整合Swagger和Actuator的使用教程详解

    前言 本篇文章主要介绍的是SpringBoot整合Swagger(API文档生成框架)和SpringBoot整合Actuator(项目监控)使用教程. SpringBoot整合Swagger 说明:如果想直接获取工程那么可以直接跳到底部,通过链接下载工程代码. Swagger 介绍 Swagger 是一套基于 OpenAPI 规范构建的开源工具,可以帮助我们设计.构建.记录以及使用 Rest API.Swagger 主要包含了以下三个部分: Swagger Editor:基于浏览器的编辑器,我们

  • Prometheus的安装和配置教程详解

    1. 从官网选择Prometheus版本进行下载 官网地址>> https://github.com/prometheus/prometheus/releases/ 2. 实验安排 在主机192.168.153.137上安装prometheus监控192.168.153.138上的mysql服务和主机状态 3. 上传软件包到137服务器并配置 3.1 将软件包解压到 /usr/local 目录下 tar xzf prometheus-2.24.1.linux-amd64.tar.gz -C /

  • tomcat 集群监控与弹性伸缩详解

    目录 如何给 tomcat 配置合适的线程池 如何监控 tomcat 线程池的工作情况 tomcat 线程池扩缩容 tomcat 是如何避免原生线程池的缺陷的 如何给 tomcat 配置合适的线程池 任务分为 CPU 密集型和 IO 密集型 对于 CPU 密集型的应用来说,需要大量 CPU 计算速度很快,线程池如果过多,则保存和切换上下文开销过高反而会影响性能,可以适当将线程数量调小一些 对于 IO 密集型应用来说常见于普通的业务系统,比如会去查询 mysql.redis 等然后在内存中做简单的

  • Spring Boot启动过程(五)之Springboot内嵌Tomcat对象的start教程详解

    标题和Spring Boot启动过程(四)之Spring Boot内嵌Tomcat启动很像,所以特别强调一下,这个是Tomcat对象的. 从TomcatEmbeddedServletContainer的this.tomcat.start()开始,主要是利用LifecycleBase对这一套容器(engine,host,context及wrapper)进行启动并发布诸如configure_start.before_init.after_start的lifecycleEvent事件给相应的监听器(如

  • springboot配置内存数据库H2教程详解

    业务背景:因soa系统要供外网访问,处于安全考虑用springboot做了个前置模块,用来转发外网调用的请求和soa返回的应答.其中外网的请求接口地址在DB2数据库中对应专门的一张表来维护,要是springboot直接访问数据库,还要专门申请权限等,比较麻烦,而一张表用内置的H2数据库维护也比较简单,就可以作为替代的办法. 环境:springboot+maven3.3+jdk1.7 1.springboot的Maven工程结构 说明一下,resource下的templates文件夹没啥用.我忘记

随机推荐