号称下一代可视化监控系统,结合SpringBoot使用,贼爽!

当面对一个复杂的系统时,我们往往需要监控工具来帮助我们解决一些性能问题。比如之前我们使用SpringBoot Admin来监控应用,从而获取到SpringBoot Actuator暴露的指标信息。今天给大家介绍一个功能强大的监控工具Grafana,只要需要用到监控的地方,用它做可视化就对了!

Grafana简介

  • Grafana是一款开源的数据可视化和分析工具,不管你的指标信息存储在哪里,你都可以用它来可视化这些数据。同时它还具有告警功能,当指标超出指定范围时会提醒你。

Prometheus简介

  • Prometheus是一款时序数据库,可以简单理解为带时间的MySQL数据库。由于Grafana只能将数据转换成可视化图表,并没有存储功能,所以我们需要结合Prometheus这类时序数据库一起使用。

安装

  • 使用Docker安装Grafana和Prometheus无疑是最简单的,我们接下来将采用此种方式。

首先下载Grafana的Docker镜像;

docker pull grafana/grafana

下载完成后运行Grafana;

docker run -p 3000:3000 --name grafana \
-d grafana/grafana

接下来下载Prometheus的Docker镜像;

docker pull prom/prometheus

在 /mydata/prometheus/目录下创建Prometheus的配置文件 prometheus.yml:

global:
  scrape_interval: 5s

运行Prometheus,把宿主机中的配置文件 prometheus.yml挂载到容器中去;

docker run -p 9090:9090 --name prometheus \
-v /mydata/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
-d prom/prometheus

至此安装完成,是不是很简单!可以通过如下地址访问Grafana,登录账号密码为 admin:admin,访问地址:http://192.168.5.78:3000/
登录Grafana后显示界面如下;
在这里插入图片描述

其实Prometheus也是有可视化界面的,就是有点简陋,访问地址:http://192.168.5.78:9090/
olor_FFFFFF,t_70)
在这里插入图片描述

使用

  • Grafana已经安装完后,是时候来波实践了,接下来我们来介绍下使用Grafana来监控Linux系统和SpringBoot应用。

监控系统信息

  • 使用node_explorer可以暴露Linux系统的指标信息,然后Prometheus就可以通过定时扫描的方式获取并存储指标信息了。

下载 node_explorer的安装包,下载地址:https://prometheus.io/download/#node_exporter
在这里插入图片描述

这次我们直接把 node_explorer安装到Linux服务器上(如果使用Docker容器安装,监控的会是Docker容器的指标信息),将下载的安装包解压到指定目录,并修改文件夹名称:

cd /mydata
tar -zxvf node_exporter-1.1.2.linux-amd64.tar.gz
mv node_exporter-1.1.2.linux-amd64 node_exporter

进入解压目录,使用如下命令运行 node_explorer,服务将运行在 9100端口上;

cd node_exporter
./node_exporter >log.file 2>&1 &

使用 curl命令访问获取指标信息接口,获取到信息表示运行成功;

curl http://localhost:9100/metrics

 HELP promhttp_metric_handler_requests_in_flight Current number of scrapes being served.
 TYPE promhttp_metric_handler_requests_in_flight gauge
promhttp_metric_handler_requests_in_flight 1
 HELP promhttp_metric_handler_requests_total Total number of scrapes by HTTP status code.
 TYPE promhttp_metric_handler_requests_total counter
promhttp_metric_handler_requests_total{code="200"} 2175
promhttp_metric_handler_requests_total{code="500"} 0
promhttp_metric_handler_requests_total{code="503"} 0
接下来修改Prometheus的配置文件 prometheus.yml,创建一个任务定时扫描 node_explorer暴露的指标信息;
scrape_configs:
  - job_name: node
    static_configs:
    - targets: ['192.168.5.78:9100']

接下来修改Prometheus的配置文件 prometheus.yml,创建一个任务定时扫描 node_explorer暴露的指标信息;

scrape_configs:
 - job_name: node
   static_configs:
   - targets: ['192.168.5.78:9100']

重启Prometheus容器,可以通过 加号->Dashboard来创建仪表盘;

在这里插入图片描述

当然你还可以选择去Grafana的仪表盘市场下载一个Dashboard,市场地址:https://grafana.com/grafana/dashboards
在这里插入图片描述

这里选择了 Node Exporter Full这个仪表盘,记住它的ID,访问地址:https://grafana.com/grafana/dashboards/1860
在这里插入图片描述
选择导入Dashboard并输入ID,最后点击 Load即可;
在这里插入图片描述

选择数据源为Prometheus,最后点击 Import;
号称下一代可视化监控系统,结合SpringBoot使用,贼爽!
导入成功后就可以在Grafana中看到实时监控信息了,是不是够炫酷!
号称下一代可视化监控系统,结合SpringBoot使用,贼爽!
监控SpringBoot应用
监控SpringBoot应用需要依靠actuator及micrometer,通过暴露actuator的端点,Prometheus可以定时获取并存储指标信息。

修改项目的 pom.xml文件,添加 actuator及 micrometer依赖;


org.springframework.boot
spring-boot-starter-actuator



io.micrometer
micrometer-registry-prometheus


修改应用配置文件 application.yml,通过 actuator暴露监控端口 /actuator/prometheus;
management:
endpoints:
web:
exposure:
# 暴露端点/actuator/prometheus
include: ‘prometheus’
metrics:
tags:
application: ${spring.application.name}
在监控SpringBoot应用之前,我们需要先运行一个SpringBoot应用,使用如下命令运行即可;
docker run -p 8088:8088 --name mall-tiny-grafana
-v /etc/localtime:/etc/localtime
-v /mydata/app/mall-tiny-grafana/logs:/var/logs
-e TZ=“Asia/Shanghai”
-d mall-tiny/mall-tiny-grafana:1.0-SNAPSHOT
修改Prometheus的配置文件 prometheus.yml,创建一个任务定时扫描 actuator暴露的指标信息,这里需要注意下,由于SpringBoot应用运行在Docker容器中,需要使用 docker inspect mall-tiny-grafana |grep IPAddress来获取容器IP地址;
scrape_configs:

采集任务名称

  • job_name: ‘mall-tiny-grafana’

    采集时间间隔

    scrape_interval: 5s

    采集超时时间

    scrape_timeout: 10s

    采集数据路径

    metrics_path: ‘/actuator/prometheus’

    采集服务的地址

    static_configs:
    • targets: [‘172.17.0.5:8088’]
      我们可以通过Prometheus的可视化界面,来确定Prometheus是否能获取到指标信息;
      号称下一代可视化监控系统,结合SpringBoot使用,贼爽!
      同样,我们可以从仪表盘市场导入仪表盘,访问地址:https://grafana.com/grafana/dashboards/14370
      号称下一代可视化监控系统,结合SpringBoot使用,贼爽!
      导入成功后就可以在Grafana中看到SpringBoot实时监控信息了,果然够炫酷!
      号称下一代可视化监控系统,结合SpringBoot使用,贼爽!
      总结
      通过对Grafana的一波实践,我们可以发现,使用Grafana来进行数据可视化的过程是这样的:首先我们得让被监控方将指标信息暴露出来,然后用Prometheus定时获取并存储指标信息,最后将Prometheus配置为Grafana的可视化数据源。

参考资料
Grafana官方文档:https://grafana.com/docs/grafana/latest/getting-started/getting-started-prometheus/
node-exporter的使用:https://prometheus.io/docs/guides/node-exporter/
项目源码地址
https://github.com/macrozheng/mall-learning/tree/master/mall-tiny-grafana

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值