micrometer + grafana + prometheus搭建JVM監控


micrometer

在spring2.x中,spring-boot-actuator集成了micrometer, 可以直接導入

https://micrometer.io/docs/registry/prometheus

https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#actuator.metrics

  1. pom.xml導入包

    <dependency>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-actuator</artifactId>
    	<version>${spring.boot.version}</version>
    </dependency>
    <dependency>
    	<groupId>io.micrometer</groupId>
    	<artifactId>micrometer-registry-prometheus</artifactId>
    	<version>${micrometer.prometheus.version}</version>
    </dependency>
    
  2. Application啟動類中添加micrometer監控輸出

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

    1. 配置中將 /actuator/prometheus 訪問開放出來, 設置標簽名

      management.endpoints.web.exposure.include = prometheus
      management.metrics.tags.application = ${spring.application.name}
      
    2. actuator包下的actuate.jdbc.DataSourceHealthIndicator會在啟動時進行一次jdbc配置的健康檢查,對於某些系統可能會產生warning級別的報警。因此需要在配置中禁用

      management.health.db.enabled=false
      
  4. 啟動項目, 打開本地接口 localhost:8090/actuator/prometheus 查看輸出

prometheus

  1. 創建docker配置

    1. 創建docker目錄prometheus-docker

    2. 在目錄下創建 docker-compose.yml

      version: "3"
      services:
        prometheus_server:
          image: prom/prometheus
          ports:
            - "9090:9090"
          volumes:
            - ./prometheus.yml:/etc/prometheus/prometheus.yml
      
    3. 在目錄下創建 prometheus.yml

      https://prometheus.io/docs/prometheus/latest/getting_started/

      需要注意修改job的targets

      global:
        scrape_interval:     15s
        external_labels:
          monitor: 'codelab-monitor'
      scrape_configs:
        - job_name: 'prometheus'
          scrape_interval: 5s
          static_configs:
            - targets: ['localhost:9090']
      	- job_name: 'spring'
          scrape_interval: 5s
          metrics_path: '/actuator/prometheus'
          static_configs:
            - targets: ['192.168.180.17:8090'] #改成自己的內網/外網IP和端口, 如果設置為localhost那只會訪問容器自身
      
  2. 創建完畢docker配置后, 在目錄下運行命令

    docker-compose up -d
    
  3. 打開 localhost:9090 , 點擊status→target檢查job運行情況

grafana搭建

  1. 在docker上搭建grafana, 運行命令安裝部署

    # 默認使用最新版本, 綁定3000端口
    docker run -d --name=grafana -p 3000:3000 grafana/grafana
    
  2. 部署完畢后登錄localhost:3000, 默認賬號密碼為admin, admin

  3. 配置Prometheus數據源

    1. 點擊Configuration→Prometheus進入,配置URL為本機IP,Access使用默認Server,配置HTTP為POST

    2. 配置完畢后點擊 Save & test 進行檢查

  4. 配置儀表盤,可以自行進行設置或導入其他人的模板,這里我們進行導入

    1. 打開https://grafana.com/grafana/dashboards, 可以從官網中選擇其他人上傳的模板, 可以選擇ID進行聯網導入或是下載json離線導入。本文中使用的模板是https://grafana.com/grafana/dashboards/4701

    2. 導入完畢后選擇Prometheus數據源

  5. 數據源和儀表盤配置完畢后,打開儀表盤進行查看

以上JVM監控搭建完畢。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM