【Springboot】用Prometheus+Grafana监控Springboot应用
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
欢迎关注公众号<南瓜慢说>,将持续为你更新...
多读书,多分享;多写作,多整理。
【Springboot】用Prometheus+Grafana监控Springboot应用的更多相关文章
- Prometheus+Grafana监控SpringBoot
Prometheus+Grafana监控SpringBoot 一.Prometheus监控SpringBoot 1.1 pom.xml添加依赖 1.2 修改application.yml配置文件 1. ...
- 基于Docker+Prometheus+Grafana监控SpringBoot健康信息
在微服务体系当中,监控是必不可少的.当系统环境超过指定的阀值以后,需要提醒指定的运维人员或开发人员进行有效的防范,从而降低系统宕机的风险.在CNCF云计算平台中,Prometheus+Grafana是 ...
- Prometheus + Grafana 监控SpringBoot应用
一.用到的工具 Prometheus Grafana Micrometer Grafana Dashboard (4701) 二.安装和运行Prometheus 官网下载prometheus- ...
- cAdvisor+Prometheus+Grafana监控docker
cAdvisor+Prometheus+Grafana监控docker 一.cAdvisor(需要监控的主机都要安装) 官方地址:https://github.com/google/cadvisor ...
- [转帖]Prometheus+Grafana监控Kubernetes
原博客的位置: https://blog.csdn.net/shenhonglei1234/article/details/80503353 感谢原作者 这里记录一下自己试验过程中遇到的问题: . 自 ...
- prometheus+grafana监控redis
prometheus+grafana监控redis redis安装配置 https://www.cnblogs.com/autohome7390/p/6433956.html redis_export ...
- prometheus+grafana监控mysql
prometheus+grafana监控mysql 1.安装配置MySQL官方的 Yum Repository(有mysql只需设置监控账号即可) [root@localhost ~]# wget - ...
- [转帖]安装prometheus+grafana监控mysql redis kubernetes等
安装prometheus+grafana监控mysql redis kubernetes等 https://www.cnblogs.com/sfnz/p/6566951.html plug 的模式进行 ...
- Prometheus + Grafana 监控系统搭
本文主要介绍基于Prometheus + Grafana 监控Linux服务器. 一.Prometheus 概述(略) 与其他监控系统对比 1 Prometheus vs. Zabbix Zabbix ...
随机推荐
- 云服务器 ECS--查找公网ip使用终端连接云服务
前段时间购买了阿里云服务器,购买之后一直没用使用,今天来操作一波,可谓一波三折,只能说,不看他们的操作指南你可能连地方都找不到,所以,在这里,我想给初次购买阿里云服务的童鞋门,写写我是怎么使用阿里云服 ...
- Jmeter之Beanshell---使用Java处理JSON块
原文出处:https://www.cnblogs.com/xpp142857/p/7374281.html [环境] ①Jmeter版本:3.1,JDK:1.7 ②前置条件:将json.jar包置于. ...
- Django学习之路02
静态文件配置 html文件默认全都放在templates文件夹下 对于前段已经写好了的文件, 我们只是拿过来使用 那么这些文件都可以称之为叫"静态文件"静态文件可以是 bootst ...
- myecplise上将工程部署到应用下时,经常出现 An internal error occurred during: "Add Deployment". java.lang.NullPointEx
myecplise上将工程部署到应用下时,经常出现 An internal error occurred during: "Add Deployment". java.lang.N ...
- redis笔记之一
NoSQL简介 全称是Not Only SQL,泛指菲关系型数据库,它是通过键值对存储数据并且将数据存储在内存中.而像mysql,sql server这些通过关系表存数据的就叫关系型数据库 为什么需要 ...
- Protobuf 简介及简单应用
Protobuf 是 protocol buffers 的缩写. 根据官网的说法, protocol buffers 与平台无关, 与语言无关, 实现数据序列化的一种手段. 正如名字一样, proto ...
- 你会选永生吗?NASA实验为火星宇航员提供年龄逆转药
宇宙辐射不仅是宇航员面临的问题.在乘坐飞机的过程中,我们所有人都会暴露在宇宙辐射中.一趟从伦敦到新加坡再到墨尔本的飞行中,人体受到的辐射量就相当于进行一次胸部X射线透视. 在去年12月NASA举 ...
- Android系统使用Shell脚本预装apk
客户需求:需要在Android系统预安装一个或者若干个apk,客户可以选择自行卸载并且卸载后系统再次启动并不会再次自动安装. 考虑到需要批量安装应用,我这里考虑到使用灵活的shell脚本.shell脚 ...
- brup安装证书抓取https
brup安装证书抓取https 0x00下载 下载安装brup 前提是需要java环境 0X01配置brup 配置brup的代理设置 0X02设置浏览器 我使用的是火狐,以下都以火狐为例 0X03证书 ...
- 什么是HDFS?算了,告诉你也不懂。
前言 只有光头才能变强. 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 上一篇已经讲解了「大数据入门」的相关基础概念和知 ...