使用Prometheus监控你的SpringBoot项目

1、依赖的maven包

其实我们市面上的springboot项目基本都是基于此actutor做监控的。或者是直接用或者是代理一层做的,所以说prometheus的监控也是通过此包进行的,所以说上边我们不仅要导入actuator这个包还要导入prometheus的包,因为prometheus是对actuator进行一层代理。至于这里的第三个包micrometer-jvm-extrs其实要不要都不要紧,第三个包主要用来监控jvm的应该是。

  <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-actuator</artifactId>
  </dependency>
  <dependency>
      <groupId>io.micrometer</groupId>
      <artifactId>micrometer-registry-prometheus</artifactId>
  </dependency>
  <dependency>
      <groupId>io.github.mweirauch</groupId>
      <artifactId>micrometer-jvm-extras</artifactId>
      <version>0.2.0</version>
  </dependency>

2.暴露springboot项目的监控点

我们做监控的时候都是通过打点做的,在springBoot中提供了

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

做监控,对于监控来说必然要配置一些配置信息,这些信息往往到和prometheus的监控面板相对应,故此我们看到我们需要添加的配置文件如下所示:

server.port=8081
spring.application.name=tianjl


## 暴露所有的actuator endpoints
management.endpoints.web.exposure.include=*


## Grafana上的应用名字
management.metrics.tags.application=${spring.application.name}

在配置好上述prometheus的配置之后,相当于我们配置好了内外呼应的外,那么剩下的内就是我们的prometheus了。

3.配置promethues工作任务

我上次说过prometheus监控的时候有个配置文件,这个配置文件中需要配置任务,然后才是prometheus去拉去监控信息,因此我们就需要在配置文件中添加我们刚刚创建的springboot项目的地址信息,这个地址信息就是我们向外暴露的endPoints。我们看下配置文件如何编写。

            配置文件如下:

  - job_name: 'bounter-monitor'   #prometheus任务名称
    scrape_interval: 5s  #每五秒抓取一次数据
    metrics_path: '/actuator/prometheus'   #数据来源的地址
    static_configs:
      - targets: ['localhost:8081']   #拉去数据的地址

这块其实拉监控信息的地址是localhost:8081/actuator/prometheus,您可以在浏览器中打开这个地址,是会出现很多监控信息的。prometheus就是拉的这些数据。

在配置好prometheus的配置信息之后,我们重启prometheus,并查看服务状态。

之前我们说promethues仅仅相当于一个数据拉取和存储的地方,其提供了强大的数据查询能力。但他的监控WEB端做的不是很好,所以经常需要让配合grafana做监控处理。所以这块我们在gafana中添加我们springboot相关的监控面板。

4、导入监控面板和监控

首先要说的是gafana并不是说什么监控面板都有,很多监控面板还是需要从网上获取,或者将其下载下载,然后再传上去,第二种形式就是说针对gafana的机房部署。这块我们还是简单介绍一下直接从网上下载吧。

首先我们到gafana官网上。https://grafana.com/grafana/dashboards

首先到其官方网站上,找到面板这个栏目。

我们在筛选框找中输入springboot

发现面板好多呀。我们就选择第一个进去看看吧。

发现里边有详细的教程,就是咋进行讲解的这个教程。所以你知道以后添加任意的监控面板了吗?不晓得你们会了没,反正我大概是会了。之后呐,我们在我们的gafana中添加这个监控面板。

添加好gafana面板之后,我们就在home中刷新一下,发现我们的项目已经被监控了。哈哈,这个效果怎么样?

总结:通过上述文章,我们可能大概了解了prometheus监控服务的一个基本的过程,但是可能还不够深入,具体来说你既然监控了springBoot,但是我总不能时时刻刻就这么盯着这个美丽的大屏幕吧,咋不是拍网络大片的呀,故此我们注重的是如何报警,这个后边再说吧,先这样吧!

早呀~

要解决 Prometheus 监控 Spring Boot 项目无法访问 /actuator/prometheus 的权限问题,可以按照以下步骤进行操作: 1. 确认 Prometheus 已正确配置和运行。确保 Prometheus 的配置文件中已添加正确的目标 URL,即 Spring Boot 应用程序的 /actuator/prometheus 端点。 2. 在 Spring Boot 项目中,确保已添加合适的依赖。在项目的 pom.xml 文件中,添加以下依赖项: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> </dependency> ``` 3. 确认 Spring Boot 项目的配置文件中已启用 Prometheus 监控。在 application.properties 文件中,添加以下配置: ``` # 启用 Prometheus endpoint management.endpoints.web.exposure.include=prometheus ``` 4. 如果项目使用了安全框架(如 Spring Security),则需要为 Prometheus 端点添加访问权限。在项目的安全配置文件中,添加以下配置: ```java @Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers("/actuator/prometheus").permitAll() // 允许所有用户访问 Prometheus 端点 .anyRequest().authenticated(); // 其他端点需要身份验证 } } ``` 执行以上步骤后,重新启动 Spring Boot 项目Prometheus,然后可以尝试访问 /actuator/prometheus 端点。现在,应该能够成功访问该端点,并获取到 Prometheus 所需的监控数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值