本文章记录Grafana和Prometheus搭建过程,以及如何监控SpringBoot项目指标。
- Prometheus:一个开源系统监控和警报工具包。
- Grafana:Go语言开发的开源数据可视化工具,可以做数据监控和数据统计,带有告警功能。
- Micrometer:收集Java性能数据
SpringBoot集成Micrometer
首先,要想我们的SpringBoot可以被监控,首先要暴露监控指标接口。
Pom文件引入依赖
1 | <!-- prometheus相关 --> |
yml配置文件暴露监控端点
1 | server: |
编写配置类,注册监控配置
1 | package com.itjing.monitor.config; |
启动应用,访问
http://127.0.0.1:9000/actuator/prometheus
部署Grafana和Prometheus
本次部署使用docker-compose进行容器编排
编写docker-compose编排文件
docker-compose-prometheus.yml
下面的grafana中的mysql配置信息,在实际使用的时候,可能并不是在这里启动的,可能有一个公共的数据库,这时只需要将下面grafana中的mysql配置信息改为相应的即可,记得建对应的数据库
1 | version: "3" |
在编排文件中,由于需要挂载prometheus.yml文件,可以事先在宿主机上配置好,需要挂载的配置文件信息
prometheus.yml
1 | # 可参考 https://prometheus.io/docs/prometheus/latest/getting_started |
同理mysql的配置文件,也可以事先配置好
my.cnf
1 | # 服务端参数配置 |
同理Grafana的配置文件也可以挂载出来,在里面可以配置邮件相关信息
grafana.ini
1 | ##################### Grafana Configuration Example ##################### |
需要将grafana.ini中的邮箱配置信息改为自己的。
运行服务
1 | docker-compose -f docker-compose-prometheus.yml -p prometheus up -d |
- grafana访问地址
ip地址:3000
默认登录账号密码:admin/admin
- prometheus访问地址:
ip地址:9090
- exporter访问地址:
ip地址:9100/metrics
Prometheus
Exporter
Grafana
监控SpringBoot
新建数据源
Configuration
-> Data sources
-> Add data source
-> Prometheus
导入监控dashboard
grafana面板资源:https://grafana.com/grafana/dashboards
去上述网址,查找需要的dashboard,直接复制dashboard id粘贴导入,或者下载对应的json文件进行导入都可。
Create
-> Import
-> 输入dashboard id
-> load
-> Import
邮件告警
配置grafana.ini
在Grafana.ini中配置邮箱相关信息
1 | #################################### SMTP / Emailing ########################## |
在 grafana 系统中配置
Alerting
-> Notification channels
-> Add channel
上面添加了channel以后,可以点击Test测试发送邮件。
配置告警相关
注意:
以下内容,我并未验证其正确性,直接截取郑清大佬的,按道理是可以使用的,需要使用告警功能的,可以去配置相关的规则。原文案例源码:郑清
Add panel
仿造Heap used
配置一个
tips:
Metrics browser
中不支持模板变量
( ex:$application
)
1 | sum(jvm_memory_used_bytes{application="demo", instance="192.168.101.88:9200", area="heap"})*100/sum(jvm_memory_max_bytes{application="demo",instance="192.168.101.88:9200", area="heap"}) |
Apply
超标告警通知