Grafana+Prometheus打造springboot监控平台

1. 环境

springboot 1.5.4

Grafana 5.2.3

Prometheus 2.3.2

jdk 1.8

2.为springboot添加endpoint

在项目pom.xml中添加如下依赖

<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-actuator</artifactId>
      <version>1.5.4.RELEASE</version>
    </dependency>
    <!--<dependency>
      <groupId>io.prometheus</groupId>
      <artifactId>simpleclient_spring_boot</artifactId>
      <version>0.5.0</version>
    </dependency>-->
    <dependency>
      <groupId>io.micrometer</groupId>
      <artifactId>micrometer-registry-prometheus</artifactId>
      <version>1.0.3</version>
    </dependency>
    <dependency>
      <groupId>io.micrometer</groupId>
      <artifactId>micrometer-spring-legacy</artifactId>
      <version>1.0.3</version>
    </dependency>

在 application.yml中添加如下配置(因为是测试,所以我把所有端点都暴露了,生产环境自行选择打开端点)

management:
  endpoints:
    web:
      exposure:
        include: '*'
    jmx:
      exposure:
        include: '*'
    shutdown:
      enabled: true
  metrics:
    distribution:
      percentiles-histogram[http.server.requests]: true
  security:
    enabled: false

项目中新建一个配置类如下 

import io.micrometer.core.instrument.MeterRegistry;
import io.micrometer.spring.autoconfigure.MeterRegistryCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MicrometerConfiguration {

    @Bean
    MeterRegistryCustomizer meterRegistryCustomizer(MeterRegistry meterRegistry) {
        return meterRegistry1 -> {
          meterRegistry.config()
          .commonTags("application", "micrometer-youtube-example");
        };
    }

}

 

启动项目,在idea中可以看到接口 /prometheus 如下图

 

代码地址:https://github.com/liufei198613/spring-boot-1.5-micrometer-prometheus-example

3.安装prometheus

在某目录创建 prometheus.yml文件内容如下

global:
  scrape_interval: 10s
  scrape_timeout: 10s
  evaluation_interval: 10m
scrape_configs:
  - job_name: simple
    scrape_interval: 5s
    scrape_timeout: 5s
    metrics_path: /prometheus 
    scheme: http
    basic_auth:
      username: user
      password: user
    static_configs:
      - targets:
        - 10.0.116.13:8080  #此处填写 Spring Boot 应用的 IP + 端口号

 在当前目录输入如下命令,启动docker ,也可以先用docker pull prom/prometheus先下载镜像

docker run -d --name prometheus -p 9090:9090 -m 500M -v /opt/soft/prometheus/prometheus.yml:/prometheus.yml -v /opt/soft/prometheus/data:/data prom/prometheus --config.file=/prometheus.yml --log.level=info

访问 http://ip:9090 如下图

 

Status->Targets页面下,我们可以看到我们配置的Target,它们的State为UP ,如下图

4.安装Grafana

docker run --name grafana -d -p 3000:3000 -v /opt/soft/grafana:/var/lib/grafana -e "GF_SMTP_ENABLED=true" grafana/grafana
注意: 一定要将/opt/soft/grafana 这个目录授权为777 否则会报没有权限错误,这个目录是为了存储相关配置信息,防止镜像删除后,配置信息也丢失

我们可通过http://ip:3000访问Grafana网页界面(缺省的帐号/密码为admin/admin)

使ç¨Dockerå®è£Prometheus

5.grafana添加数据源,配置如下

 6.创建看板

grafana支持很多种看板,你可以根据不同的指标生成图表,

因为图表的配置比较复杂,这里没有深入的研究,而是选用了大神 们做好的模板,对接数据源进行展示

 https://grafana.com/dashboards 在这里可以搜索不同的模板

选择一个你想要的点击去,然后复制id

打开下图页面,并将id粘贴进去,光标离开输入框,会自动加载模板配置

然后选取数据源,点击import按钮,完成模板添加

可以看到如下图

完成。

 

 

没有更多推荐了,返回首页