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
-
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>
-
Application啟動類中新增micrometer監控輸出
@Bean MeterRegistryCustomizer<MeterRegistry> configurer(@Value("${spring.application.name}")String applicationName) { return registry -> registry.config().commonTags("application", applicationName); }
-
新增配置
-
配置中將
/actuator/prometheus
訪問開發出來, 設定標籤名management.endpoints.web.exposure.include = prometheus management.metrics.tags.application = ${spring.application.name}
-
actuator包下的actuate.jdbc.DataSourceHealthIndicator會在啟動時進行一次jdbc配置的健康檢查,對於某些系統可能會產生warning級別的報警。因此需要在配置中禁用
management.health.db.enabled=false
-
-
啟動專案, 開啟本地介面
localhost:8090/actuator/prometheus
檢視輸出
prometheus
-
建立docker配置
-
建立docker目錄prometheus-docker
-
在目錄下建立
docker-compose.yml
version: "3" services: prometheus_server: image: prom/prometheus ports: - "9090:9090" volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml
-
在目錄下建立
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那隻會訪問容器自身
-
-
建立完畢docker配置後, 在目錄下執行命令
docker-compose up -d
-
開啟
localhost:9090
, 點選status→target檢查job執行情況
grafana搭建
-
在docker上搭建grafana, 執行命令安裝部署
# 預設使用最新版本, 繫結3000埠 docker run -d --name=grafana -p 3000:3000 grafana/grafana
-
部署完畢後登入localhost:3000, 預設賬號密碼為admin, admin
-
配置Prometheus資料來源
-
點選Configuration→Prometheus進入,配置URL為本機IP,Access使用預設Server,配置HTTP為POST
-
配置完畢後點擊 Save & test 進行檢查
-
-
配置儀表盤,可以自行進行設定或匯入其他人的模板,這裡我們進行匯入
-
開啟https://grafana.com/grafana/dashboards, 可以從官網中選擇其他人上傳的模板, 可以選擇ID進行聯網匯入或是下載json離線匯入。本文中使用的模板是https://grafana.com/grafana/dashboards/4701
-
匯入完畢後選擇Prometheus資料來源
-
-
資料來源和儀表盤配置完畢後,開啟儀表盤進行檢視
以上JVM監控搭建完畢。