集成Springboot+Prometheus+Grafana

Springboot

pom.xml导入prometheus依赖

	<!--prometheus-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
        </dependency>

application.yml

spring:
  application:
    name: monitor

server:
  port: 88

management:
  server:
    port: 9003
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    metrics:
      enabled: true
    health:
      show-details: always
    prometheus:
      enabled: true
  metrics:
    export:
      prometheus:
        enabled: true
    tags:
      application: voice-qc-backend

启动类

@SpringBootApplication
public class GrafanaApplication {

    public static void main(String[] args) {
        SpringApplication.run(GrafanaApplication.class, args);
    }

    @Bean
    MeterRegistryCustomizer<MeterRegistry> configurer(@Value("${spring.application.name}") String applicationName) {
        return (registry) -> registry.config().commonTags("application", applicationName);
    }
}

写个测试接口

@RestController
@RequestMapping("prometheus")
public class PrometheusController {
    @GetMapping("hello")
    public String hello(){
        return "hello";
    }
}

访问接口
在这里插入图片描述
查看prometheus是否有捕获消息
在这里插入图片描述

Prometheus

拉取镜像

docker pull prom/prometheus:v2.40.5
mkdir -p /docker_data/prometheus/config/
vim /docker_data/prometheus/config/prometheus.yml

宿主机创建配置文件

global:
  scrape_interval: 15s
  evaluation_interval: 15s

alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

scrape_configs:
  - job_name: 'prometheus'

    static_configs:
    # prometheus的IP地址
    - targets: ['192.168.1.11:9090']

使用宿主机的配置文件启动容器

docker run -d --network=host --privileged=true --restart=always  -v /docker_data/prometheus/config/prometheus.yml:/etc/prometheus/prometheus.yml --name prometheus-v2.40.5 prom/prometheus:v2.40.5

访问ip:9090
在这里插入图片描述
修改配置文件

scrape_configs:
  - job_name: "prometheus"
    static_configs:
    # prometheus的ip:port
    - targets: ["192.168.1.11:9090"]
  - job_name: "metricsLocalTest"
    metrics_path: "/actuator/prometheus"
    static_configs:
    # springboot项目的ip:port
    - targets: ["192.168.1.117:9003"]

重启容器使配置文件生效

docker restart prometheus-v2.40.5

在这里插入图片描述

Grafana

拉取镜像

docker pull grafana/grafana:7.3.7

需要指定root用户启动并映射文件到宿主机,如果不用-u root则可能会报错mkdir: can’t create directory ‘/var/lib/grafana/plugins’: Permission denied

docker run -d --network=host --privileged=true --restart=always -u root -v /docker_data/grafana:/var/lib/grafana --name grafana-7.3.7 grafana/grafana:7.3.7

访问ip:3000,用户名和密码都是admin
在这里插入图片描述
配置prometheus数据源
在这里插入图片描述
选择prometheus,填写prometheus的ip和port
在这里插入图片描述
导入4701模板(其它模板也是可以的)
在这里插入图片描述
选择prometheus,然后再点击import
在这里插入图片描述
在这里插入图片描述

查找模板

《Grafana官网查找模板》
如果联网直接使用ID,没有联网就可以选择下载JSON,导入。我们上面就是直接使用ID,现在使用JSON导入。
进入官网搜索模板,如:node exporter,选择含有中文的那个。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选择下载的JSON文件导入,然后再选择prometheus,点击最下方的Load即可。
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值