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監控搭建完畢。