基于docker进行Grafana + prometheus实现服务监听

基于docker进行Grafana + Prometheus实现服务监听

  • Grafana安装
  • Prometheus安装
  • Jvm监控配置


Grafana安装

docker pull grafana/grafana
mkdir /server/grafana
chmod 777 /server/grafana
docker run -d -p 3000:3000 --name=grafana -v /server/grafana:/var/lib/grafana grafana/grafana

访问 http://IP:3000


Prometheus安装

mkdir /server/prometheus
cd /server/prometheus
vim prometheus.yml

prometheus.yml文件内容如下
注意: 格式很容易出错,后续如果 启动容器失败的话 使用 docker logs PID 进行检查运行失败的原因
基于docker进行Grafana + prometheus实现服务监听_第1张图片

global:
  scrape_interval: 15s
  evaluation_interval: 15s
scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['114.115.153.33:9090']
      
  # 采集xxxx平台(示例)
  - job_name: 'tracking'
    metrics_path: '/actuator/prometheus'
    static_configs:
      - targets: ['114.116.41.107:10000']

创建yml文件后指定 run 启动,此时 image 不存在会自动下载

docker run -d --name=prometheus -p 9090:9090 -v /server/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus:latest

验证 docker run 的结果

docker logs 

访问 http://IP:9090


Jvm监控配置

Springboot版本: 2.7.12

引入依赖(2.7.12 可不写,根据实际情况填写)


<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-actuatorartifactId>
    <version>2.7.12version>
dependency>

<dependency>
    <groupId>io.micrometergroupId>
    <artifactId>micrometer-registry-prometheusartifactId>
    <version>1.9.11version>
dependency>

<dependency>
    <groupId>io.micrometergroupId>
    <artifactId>micrometer-coreartifactId>
    <version>1.9.11version>
dependency>

<dependency>
    <groupId>io.github.mweirauchgroupId>
    <artifactId>micrometer-jvm-extrasartifactId>
    <version>0.2.2version>
dependency>

配置 yml 信息

# 普罗米修斯配置
management:
  health:
    db:
      # 关闭DB健康度检查(sharding jdbc不支持健康度检查),此处根据实际情况调整
      enabled: false
  endpoint:
    health:
      probes:
        enabled: true
      show-details: always
    metrics:
      enabled: true
    prometheus:
      enabled: true
  endpoints:
    web:
      base-path: /actuator
      exposure:
        include: '*'
  metrics:
    distribution:
      maximum-expected-value:
        http:
          server:
            requests: 200ms
      minimum-expected-value:
        http:
          server:
            requests: 20ms
      percentiles-histogram:
        http:
          server:
            requests: false
    export:
      jmx:
        enabled: true
      prometheus:
        enabled: true
      simple:
        enabled: true
    tags:
      application: ${spring.application.name}
      tag: ${spring.application.name}

新建 ActuatorMetricsConfig 配置类

import io.micrometer.prometheus.PrometheusMeterRegistry;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class ActuatorMetricsConfig {

    @Bean
    InitializingBean forcePrometheusPostProcessor(BeanPostProcessor meterRegistryPostProcessor, PrometheusMeterRegistry registry) {
        return () -> meterRegistryPostProcessor.postProcessAfterInitialization(registry, "");
    }

}

启动springboot服务,访问 http://IP:端口/actuator/prometheus 是否正常
如出现下面的指标信息,则说明成功

配置 prometheus.yml 文件 新增如下配置(注意缩进)

      
  # 采集xxxx平台(springboot 健康)
  - job_name: 'tracking'
    metrics_path: '/actuator/prometheus'
    static_configs:
      - targets: ['114.116.41.107:10000']

如果 targets 此处出现了 采集的配置的 数据,则说明成功
基于docker进行Grafana + prometheus实现服务监听_第2张图片
切换到 Grafana 中下载 普罗米修斯 插件
基于docker进行Grafana + prometheus实现服务监听_第3张图片
普罗米修斯 插件下载后,新增 数据源配置 prometheus 的访问地址
基于docker进行Grafana + prometheus实现服务监听_第4张图片
选导入仪表盘
基于docker进行Grafana + prometheus实现服务监听_第5张图片
填写仪表盘模版编号: 4701
------- grafana常用模板记录 --------
服务器系统性能监控:8919
微服务性能监控:4701
docker环境性能监控:893
nacos性能监控:13221
mysql性能监控:9362
elasticsearch:266
基于docker进行Grafana + prometheus实现服务监听_第6张图片
选择对应的 普罗米修斯 数据源基于docker进行Grafana + prometheus实现服务监听_第7张图片
成功后可以看到如下界面
基于docker进行Grafana + prometheus实现服务监听_第8张图片

你可能感兴趣的:(docker,grafana,prometheus)