详解springcloudalibaba采用prometheus+grafana实现服务监控

1.官网下载安装 prometheus和grafana

promethus

官网:https://prometheus.io/

1.下载windows版本安装包

2.双击启动

3.访问地址
http://localhost:9090

grafana

官网:https://grafana.com/

1.下载windows版本安装包

2.启动 ,默认windows安装完成自动启动

3.访问地址

http://localhost:3000/

默认第一次登录账户 admin admin,需要更改密码

更改之后登录账户:admin admin123

默认登录首页如下:

2. 搭建springcloudalibaba集成prometheus、grafana

  1. 引入依赖,springboot3.2之后引入如下

    xml 复制代码
      <dependency>
                <groupId>io.micrometer</groupId>
                <artifactId>micrometer-registry-prometheus-simpleclient</artifactId>
                <version>1.13.6</version>
        </dependency>
        <!--暴露指标数据端点-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>

    springboot3.2之前引入如下

    xml 复制代码
          <!--暴露指标数据端点-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
            <dependency>
                <groupId>io.micrometer</groupId>
                <artifactId>micrometer-registry-prometheus</artifactId>
                <version>1.14.5</version>
            </dependency>
  2. 在yml文件配置监控端点暴露配置

    yaml 复制代码
    management:
      endpoints:
        web:
          exposure:
            include: "*"
        health:
          show-details: always #暴露所有端点信息
        enabled-by-default: true
      endpoint:
        prometheus:
          enabled: true
      prometheus:
        metrics:
          export:
            enabled: true
  3. 在当前启动的应用代码中添加,在prometheus显示的时候附加当前应用名称

    java 复制代码
    @EnableFeignClients
    @SpringBootApplication
    @EnableDiscoveryClient
    public class UserApplication {
        public static void main(String[] args) {
            SpringApplication.run(UserApplication.class, args);
        }
    
        /**
         *在prometheus显示的时候附加当前应用名
         * @param applicationName
         * @return
         */
        @Bean
       MeterRegistryCustomizer<MeterRegistry> configurer(@Value("${spring.application.name}") String applicationName) {
            return (registry) -> registry.config().commonTags("application", applicationName);
        }
    }

4.访问微服务暴露的prometheus端点

  1. 修改nacos注册中心配置文件,暴露prometheus监控点,重启nacos server

  2. 修改nacos注册中心配置文件,暴露prometheus监控点,重启nacos server

properties 复制代码
management.endpoints.web.exposure.include=*   #打开prometheus暴露点
nacos.prometheus.metrics.enabled=true  #开启nacos支持prometheus

访问nacos 暴露端点:

  1. 修改prometheus.yml配置文件如下:
yaml 复制代码
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus" #配置抓取任务的名称
      # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    static_configs:
      - targets: ["localhost:9090"] #静态目标列表,指定Prometheus自己
       
 #以下内容为springboot应用配置      
  - job_name: "wemedia-oss-user" #配置抓取任务的名称    
    scrape_interval: 5s #间隔5秒拉取微服务总数据
    metrics_path: '/actuator/prometheus' #设置微服务给prometheus暴露的端点
    static_configs:
      - targets: ["localhost:8890"] #指定微服务的地址   
        labels: #自定义的额外标签
          app: "wemedia-oss-user"
          instance: "wemedia-oss-user_server"  #添加一个自定义标签,标记目标实例
  1. 在prometheus上查看暴露端点

  2. 在grafana上导入数据源,来自prometheus server的地址

    导入jvm(micrometer)可视化看板

    接着出现如下界面:

    点击导入Import按钮,出现可视化jvm监控界面如下:

    备注说明:
    上面输入的4701为jvm可视化编号

    其他的可视化模版ID都可以在这个地址里找到 https://grafana.com/grafana/dashboards

  3. 配置nacos server监控
    配置prometheus.yml文件中新增nacos server配置

    yaml 复制代码
     #以下内容为nacos server配置      
      - job_name: "nacos-server" #配置抓取任务的名称    
        scrape_interval: 5s #间隔5秒拉取微服务总数据
        metrics_path: '/nacos/actuator/prometheus' #设置nacos server给prometheus暴露的端点
        static_configs:
          - targets: ["localhost:8848"] #指定nacos server的地址   
            labels: #自定义的额外标签
              app: "nacos-server"
              instance: "nacos-server_instance"  #添加一个自定义标签,标记目标实例

    输入nacos 可视化ID:1322

    查看nacos 指标监控

导入SpringBoot APM Dashboard(中文版本)可视化面板

导入Monitor Statistics dashboard:springboot 监控统计模版

相关推荐
爱吃生蚝的于勒1 分钟前
【Linux】线程概念(一)
java·linux·运维·服务器·开发语言·数据结构·vim
kong79069283 分钟前
Nginx性能优化
java·nginx·性能优化
Pluchon4 分钟前
硅基计划4.0 算法 简单模拟实现位图&布隆过滤器
java·大数据·开发语言·数据结构·算法·哈希算法
我命由我123454 分钟前
Java 泛型 - Java 泛型通配符(上界通配符、下界通配符、无界通配符、PECS 原则)
java·开发语言·后端·java-ee·intellij-idea·idea·intellij idea
Seven974 分钟前
AQS深度探索:以ReentrantLock看Java并发编程的高效实现
java
4311媒体网13 分钟前
C语言操作符全解析 C语言操作符详解
java·c语言·jvm
淡忘_cx13 分钟前
使用Jenkins自动化部署spring-java项目+宝塔重启项目命令(2.528.2版本)
java·自动化·jenkins
毕设源码-钟学长18 分钟前
【开题答辩全过程】以 基于SSM的孤儿救助信息管理系统设计与实现为例,包含答辩的问题和答案
java
独自破碎E18 分钟前
【曼哈顿距离】BISHI25 最大 FST 距离
java·开发语言
苏涵.18 分钟前
Java三大集合:List、Set、Map
java·开发语言