Springboot整合Prometheus+grafana实现系统监控

前言

Prometheus是一个开源的服务监控系统和时序数据库,它提供了强大的功能和灵活的架构,是目前主流的监控和管理应用系统的工具。

而Grafana是一个开源的数据可视化工具,与Prometheus集成,就可以可视化地监控系统的各个指标。

原理

首先Springboot整合actuator将服务的各种参数暴露出来,Prometheus定期通过接口查询这些参数,然后将参数存储在Prometheus内置的数据库内,然后再

一、Springboot整合actuator暴露数据

引入依赖

java 复制代码
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

配置yml暴露数据

java 复制代码
spring:
  application:
    name: my-app
server:
  port: 8081
  servlet:
    context-path: /myApp
management:
  endpoints:
    web:
      exposure:
        include: "*"   #放行数据
  endpoint:
    prometheus:
      enabled: true  #开启普罗米修斯,对上面放行的数据进行格式转换
    health:
      show-details: always #展示服务监控更多细节
  metrics:
    export:
      prometheus:
        enabled: true #上面的指标允许被导出

配置文件配置prometheus服务名

创建一个配置文件,注入bean

java 复制代码
import io.micrometer.core.instrument.MeterRegistry;
import org.redisson.config.Config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class RedissonConfig {
    @Bean
    MeterRegistryCustomizer<MeterRegistry> configurePrometheus(@Value("${spring.application.name}") String name){
        return (registry -> registry.config().commonTags("application",name));
    }
}

验证结果

启动springboot项目,然后服务名+/actutor,没有定义服务名的记得把前面部分去掉。如下,代表成功放行服务数据。

再拼接/prometheus,如下,是经过prometheus转换的数据。

二、安装并配置prometheus

下载官网

选择对应的系统下载,我这里用的是window,下载之后解压。

解压后可以看到如下目录,data文件夹在第一次启动的时候会自动创建。

编辑prometheus.yml

在最后面加入如下代码,job_name可以自定义,metrics_path配置的是prometheus的相对访问路径,targets配置ip+端口

总的来说,要确保拼接之后能访问到前面暴露的数据即可。访问路径=targets+metrics_path

我的访问路径拼接后是http://127.0.0.1:8081/myApp/actuator/prometheus

java 复制代码
### 配置拉取springboot数据
  - job_name: "my_app_prometheus"
    scrape_interval: 5s
    metrics_path: '/myApp/actuator/prometheus'
    # scheme defaults to 'http'.

    static_configs:
      - targets: ["127.0.0.1:8081"]

保存之后,双击prometheus.exe启动,如果启动之后闪一下就没有反应了,肯定是配置文件的问题。可以尝试先把上面加的去掉再启动来判断是否是添加的内容的问题。如果能正常启动,则检查配置的路径targets+metrics_path的路径是否能访问到数据。

验证

启动之后,打开127.0.0.1:9090,跳转如下页面说明启动成功。

点击status/target health,可以看到如下,说明成功读取到项目的数据

三、安装并配置grafana

下载官网

选择window,点击下载,然后解压。

解压后进入bin目录下,启动grafana-server.exe然后等待启动完成。

grafana的默认端口是3000,默认账号密码都是admin,登录之后会让你设置新密码,可以设置,也可以跳过。

进入如下界面,想要展示prometheus的数据,则需要配置数据源。

选择prometheus数据源,默认第一个就是

设置prometheus服务的地址

自定义数据源名称

拉到最下方点击,点击seve&test,如果出现绿色箭头,说明连接成功

创建仪表盘

选择一个仪表盘

4701是JVM的专属仪表盘,想查看更多仪表盘样式,可以在仪表盘官网查看。

选择数据源,然后导入

最终得到如下仪表盘,点击右上角保存仪表盘,至此配置完成

仪表盘布局支持拉拽进行布局,也支持删除编辑仪表盘等。

相关推荐
!!!5258 小时前
日志技术-LogBack入门程序&Log配置文件&日志级别
spring boot
feilieren11 小时前
SpringBoot 搭建 SSE
java·spring boot·spring
栗豆包12 小时前
w175基于springboot的图书管理系统的设计与实现
java·spring boot·后端·spring·tomcat
m0_7482394714 小时前
springBoot发布https服务及调用
spring boot·后端·https
计算机-秋大田15 小时前
基于SpringBoot的高校教师科研的设计与实现(源码+SQL脚本+LW+部署讲解等)
java·vue.js·spring boot·后端·课程设计
web1508509664115 小时前
Spring Boot整合WebSocket
spring boot·后端·websocket
m0_7482382716 小时前
SpringBoot最佳实践之 - 使用AOP记录操作日志
java·spring boot·后端
Q_274378510917 小时前
springboot基于微信小程序的健康管理系统
spring boot·后端·微信小程序
兩尛17 小时前
缓存商品、购物车(day07)
java·spring boot·缓存
m0_7482455217 小时前
Spring Boot中的404错误:原因、影响及处理策略
java·spring boot·后端