服务监控系统项目整合

68 阅读1分钟

一、构建和配置微服务

1、导入pom坐标依赖

<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.1.4</version>
</dependency>

这里引入了 io.micrometer 的 micrometer-registry-prometheus 依赖以及 spring-boot-starter-actuator 依赖,因为该包对 Prometheus 进行了封装,可以很方便的集成到项目中
2、配置application.yml

management:
  endpoints:
    web:
      exposure:
        include:
          - metrics
          - prometheus
  metrics:
    tags:
      application: ${spring.application.name}
    export: 
      prometheus:
        step: 1m
        descriptions: true

这里 management.endpoints.web.exposure.include 配置为开启 Actuator 服务,因为Spring Boot Actuator 会自动配置一个 URL 为 /actuator/Prometheus 的 HTTP 服务来供 Prometheus 抓取数据,不过默认该服务是关闭的,该配置将打开 Actuator 服务。management.metrics.tags.application 配置会将该工程应用名称添加到计量器注册表的 tag 中去,方便后边 Prometheus 根据应用名称来区分不同的服务

3、在工程启动主类中添加 Bean

//监控 JVM 性能指标信息
@Bean
MeterRegistryCustomizer<MeterRegistry> configurer(@Value("${spring.application.name}") String applicationName){
    return registry -> registry.config().commonTags("application", applicationName);
}

最后,启动服务,浏览器访问 http://ip:port/actuator/prometheus
在这里插入图片描述

如果可以看到应用的 一系列不同类型 metrics 信息,代表已经配置好了

二、配置 Prometheus 监控

配置prometheus .yml

- job_name: 'application'
    scrape_interval: 5s
    metrics_path: '/actuator/prometheus'
    file_sd_configs:
      -files:['/usr/local/prometheus/applicationgroups/*.json']

这里采用 file_sd_configs 方式动态服务发现

$ vim applicationgroups/application.json
[
    {
        "targets": [
#微服务ip和端口
            "ip:port"
        ],
        "labels": {
#微服务名称
            "instance": "springboot2-prometheus",
            "service": "springboot2-prometheus-service"
        }
    }
]

重启 Prometheus 服务
systemctl restart prometheus
访问Prometheus——》status——》targets
查看 Prometheus UI 界面确认 Target 是否添加成功。
在这里插入图片描述

三、导入监控 的 Dashboard 模板

模板编号为 4701

在这里插入图片描述

导入完毕后,就可以看到 JVM (Micrometer) 各种类型指标监控图形化以后的页面。
在这里插入图片描述