Spring Boot+Prometheus+Grafana实现可视化监控
Spring Boot+Prometheus+Grafana实现可视化监控
1.概述
本文将介绍如何使用Spring Boot、Prometheus和Grafana实现可视化监控。作为Java监控技术系列的第四篇,本文将基于Spring actuator,结合监控组件Prometheus和数据可视化组件Grafana,实现对Spring Boot应用的可视化监控。
2.Spring Actuator
Spring Actuator是Spring体系中自带的监控组件,用于监测应用本身以及所处环境等内容。在使用前需要添加以下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
配置如下:
management:
endpoints:
web:
exposure:
include: "*"
3.Prometheus
3.1.介绍
Prometheus的架构如下图所示:
Prometheus的核心组件是Prometheus Server,它内置一个时序数据库,用于存储采集上来的监控指标。Prometheus提供了多种client端,可以部署在应用侧采集监控指标,并将采集到的监控指标推送给Prometheus Server。此外,Prometheus还支持对接多种图形化界面(如Grafana)进行图形化展示,并支持各种方式的告警,如发送邮件等。
3.2.使用
- Client端配置
在应用中添加Prometheus的适配层依赖:
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
<scope>runtime</scope>
</dependency>
配置如下:
management:
endpoints:
web:
exposure:
include: "*"
endpoint:
prometheus:
enabled: true
health:
show-details: always
在主启动类中,将应用的名字告诉Prometheus:
@SpringBootApplication
public class Main {
public static void main(String[] args) {
SpringApplication.run(Main.class);
}
@Bean
MeterRegistryCustomizer<MeterRegistry> configure(@Value("${spring.application.name}") String applicationName){
return register -> {
register.config().commonTags("application", applicationName);
};
}
}
配置应用名:
spring:
application:
name: myApplicationDemo
- Server端配置
下载并解压Prometheus,然后配置prometheus.yml
文件:
scrape_configs:
- job_name: 'spring_boot'
static_configs:
- targets: ['localhost:8080']
启动Prometheus:
./prometheus
4.Grafana
Grafana是一个流行的开源数据可视化和监控工具,提供了丰富的图表和仪表盘功能,用于展示和分析时间序列数据以及其他类型的数据。
下载地址:Download Grafana | Grafana Labs
Linux的下载方式如下:
wget https://dl.grafana.com/oss/release/grafana-<version>.linux-amd64.tar.gz
tar -zxvf grafana-<version>.linux-amd64.tar.gz
cd grafana-<version>
./bin/grafana-server web
默认访问地址是IP:3000
,默认账号密码都是admin
。首次登录会要求修改密码。
登录后,新建一个Prometheus数据源,配置好Prometheus的地址和端口号:
在配置数据源的同时,可以选择Grafana提供的几套Prometheus监控面板:
5.留个尾巴
本文介绍了如何使用Spring Actuator、Prometheus和Grafana实现基础的可视化监控。接下来将详细介绍Prometheus和Grafana的使用方法,包括如何自定义Prometheus的监控指标等高级功能。