Springboot整合Prometheus+grafana实现系统监控
前言
Prometheus是一个开源的服务监控系统和时序数据库,它提供了强大的功能和灵活的架构,是目前主流的监控和管理应用系统的工具。
而Grafana是一个开源的数据可视化工具,与Prometheus集成,就可以可视化地监控系统的各个指标。
原理
首先Springboot整合actuator将服务的各种参数暴露出来,Prometheus定期通过接口查询这些参数,然后将参数存储在Prometheus内置的数据库内,然后再
一、Springboot整合actuator暴露数据
引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
配置yml暴露数据
spring:
application:
name: my-app
server:
port: 8081
servlet:
context-path: /myApp
management:
endpoints:
web:
exposure:
include: "*" #放行数据
endpoint:
prometheus:
enabled: true #开启普罗米修斯,对上面放行的数据进行格式转换
health:
show-details: always #展示服务监控更多细节
metrics:
export:
prometheus:
enabled: true #上面的指标允许被导出
配置文件配置prometheus服务名
创建一个配置文件,注入bean
import io.micrometer.core.instrument.MeterRegistry;
import org.redisson.config.Config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class RedissonConfig {
@Bean
MeterRegistryCustomizer<MeterRegistry> configurePrometheus(@Value("${spring.application.name}") String name){
return (registry -> registry.config().commonTags("application",name));
}
}
验证结果
启动springboot项目,然后服务名+/actutor,没有定义服务名的记得把前面部分去掉。如下,代表成功放行服务数据。
再拼接/prometheus,如下,是经过prometheus转换的数据。
二、安装并配置prometheus
下载官网
选择对应的系统下载,我这里用的是window,下载之后解压。
解压后可以看到如下目录,data文件夹在第一次启动的时候会自动创建。
编辑prometheus.yml
在最后面加入如下代码,job_name可以自定义,metrics_path配置的是prometheus的相对访问路径,targets配置ip+端口
总的来说,要确保拼接之后能访问到前面暴露的数据即可。访问路径=targets+metrics_path
我的访问路径拼接后是http://127.0.0.1:8081/myApp/actuator/prometheus
### 配置拉取springboot数据
- job_name: "my_app_prometheus"
scrape_interval: 5s
metrics_path: '/myApp/actuator/prometheus'
# scheme defaults to 'http'.
static_configs:
- targets: ["127.0.0.1:8081"]
保存之后,双击prometheus.exe启动,如果启动之后闪一下就没有反应了,肯定是配置文件的问题。可以尝试先把上面加的去掉再启动来判断是否是添加的内容的问题。如果能正常启动,则检查配置的路径targets+metrics_path的路径是否能访问到数据。
验证
启动之后,打开127.0.0.1:9090,跳转如下页面说明启动成功。
点击status/target health,可以看到如下,说明成功读取到项目的数据
三、安装并配置grafana
下载官网
选择window,点击下载,然后解压。
解压后进入bin目录下,启动grafana-server.exe然后等待启动完成。
grafana的默认端口是3000,默认账号密码都是admin,登录之后会让你设置新密码,可以设置,也可以跳过。
进入如下界面,想要展示prometheus的数据,则需要配置数据源。
选择prometheus数据源,默认第一个就是
设置prometheus服务的地址
自定义数据源名称
拉到最下方点击,点击seve&test,如果出现绿色箭头,说明连接成功
创建仪表盘
选择一个仪表盘
4701是JVM的专属仪表盘,想查看更多仪表盘样式,可以在仪表盘官网查看。
选择数据源,然后导入
最终得到如下仪表盘,点击右上角保存仪表盘,至此配置完成
仪表盘布局支持拉拽进行布局,也支持删除编辑仪表盘等。