使用Prometheus+Grafana的方法监控Springboot应用教程详解
作者:南瓜慢说 时间:2023-10-31 13:08:12
1 简介
项目越做越发觉得,任何一个系统上线,运维监控都太重要了。关于Springboot微服务的监控,之前写过【Springboot】用Springboot Admin监控你的微服务应用,这个方案可以实时监控并提供告警提醒功能,但不能记录历史数据,无法查看过去1小时或过去1天等运维情况。本文介绍Prometheus + Grafana的方法监控Springboot 2.X,实现美观漂亮的数据可视化。
2 Prometheus
Prometheus是一套优秀的开源的监控、报警和时间序列数据库组合系统,在现在最常见的Kubernetes
容器管理系统中,通常会搭配Prometheus
进行监控。
2.1 引入到Springboot
将Prometheus
引入依赖如下:
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
对于Springboot,要开启Actuator
,并打开对应的Endpoint
:
management.endpoints.web.exposure.include=*
# 或者
management.endpoints.web.exposure.include=prometheus
启动Springboot
后,可以通过下面URL看能不能正确获取到监控数据:
localhost:8080/actuator/prometheus
获取数据成功,说明Springboot
能正常提供监控数据。
2.2 Docker方式使用
为了方便,使用Docker
启动Prometheus
:
# 拉取docker镜像
docker pull prom/prometheus
准备配置文件prometheus.yml
:
scrape_configs:
# 可随意指定
- job_name: 'spring'
# 多久采集一次数据
scrape_interval: 15s
# 采集时的超时时间
scrape_timeout: 10s
# 采集的路径
metrics_path: '/actuator/prometheus'
# 采集服务的地址,设置成Springboot应用所在服务器的具体地址
static_configs:
- targets: ['hostname:9000','hostname:8080']
启动docker实例:
# 端口为9090,指定配置文件
docker run -d -p 9090:9090 -v ~/temp/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus --config.file=/etc/prometheus/prometheus.yml
2.3 测试与查看
成功启动后,就可以打开网页查看了,并且能图形化展示,URL为http://localhost:9090/。
如上图所示,打开网页后,随便选取一个对应的监控指标与参数,点击Execute
就可以查看了。
3 Grafana
Grafana
是一个开源的度量分析与可视化套件,纯JavaScript
开发的前端工具,通过访问库(如InfluxDB
),展示自定义报表、显示图表等。它的UI十分灵活,有丰富的插件和模板,功能强大。一般用在时序数据的监控方面。
3.1 Docker安装与启动
# 拉取镜像
docker pull grafana/grafana
# 运行实例
docker run -d -p 3000:3000 grafana/grafana
启动成功后,访问http://localhost:3000 检查是否成功,初始管理员账号密码为admin/admin
。
3.2 配置数据源
Grafana
展示数据,则需要配置对应的数据源,本文中配置之前安装启用的Prometheus
数据源,具体配置如下图所示:
需要注意的是Access
要选Browser
模式,否则无法正常获取数据。配置完成后,点击Save & Test
即可。
3.3 模板套用
能够获取数据后,就可以自定义数据可视化展示了。但如果自己一条指标一条指标的加,就会很麻烦。实际上,Grafana
提供了许多优秀的模板,可以网页https://grafana.com/grafana/dashboards 查找。
本文使用Spring Boot 2.1 Statistics模板,导入方法如下:
点击+
号 --> Import
--> 输入模板链接或ID --> 点击Load。
成功导入后,就能监控数据了,而且,界面真的很好看:
4 总结
本文介绍了如何使用Prometheus + Grafana监控Springboot应用,实际上,Prometheus + Grafana十分强大,值得花时间好好研究。
本文例子中软件版本信息如下:
springboot.version=2.2.5
micrometer-registry-prometheus=1.3.5
prometheus.version=2.16
grafana.version=6.7.0-beta1
来源:https://www.cnblogs.com/larrydpk/p/12563497.html
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
为什么阿里巴巴要求日期格式化时必须有使用y表示年
![](https://img.aspxhome.com/file/2023/7/84787_0s.jpg)
c#获取两个特定字符之间的内容并输出的方法
Android 遍历SDCARD的文件夹并显示目录信息
再谈异常处理try catch finally
Android 校验email是否合法实现代码
探讨:android项目开发 统筹兼顾 需要考虑的因素
spring @Conditional的使用与扩展源码分析
C++类静态成员与类静态成员函数详解
Android中利用matrix 控制图片的旋转、缩放、移动
![](https://img.aspxhome.com/file/2023/8/139148_0s.gif)
springboot使用redis对单个对象进行自动缓存更新删除的实现
![](https://img.aspxhome.com/file/2023/5/111445_0s.png)
java和 javaw 及 javaws的区别解析
![](https://img.aspxhome.com/file/2023/9/64749_0s.png)
在项目中直接使用hystrix的流程分析
![](https://img.aspxhome.com/file/2023/8/73048_0s.jpg)
java使用回溯法求解数独示例
Android使用手势监听器GestureDetector遇到的不响应问题
![](https://img.aspxhome.com/file/2023/0/88710_0s.jpg)
SpringBoot从yml配置文件中读常用参数值实例方法
java 请求跨域问题解决方法实例详解
response对象的使用(实例讲解)
Devexpress treelist 简介
C#多线程系列之线程的创建和生命周期
![](https://img.aspxhome.com/file/2023/2/77262_0s.jpg)
Android编程实现ActionBar的home图标动画切换效果
![](https://img.aspxhome.com/file/2023/8/137398_0s.gif)