1 Spring boot 2.0集成prometheus

 pom文件

SpringBoot 2.0+prometheus+Grafana

SpringBoot 2.0+prometheus+Grafana

对应的application.yml文件

SpringBoot 2.0+prometheus+Grafana

注意事项这边使用的是spring-boot 2.1.3这个版本,如果是其他spring-boot版本prometheus1.1.3可能出现某些错误,暂时不具体分析具体原因了。关于spring-boot-starter-actuator可以参考我以前写的文章(https://blog.csdn.net/str0708/article/details/81092536)

SpringBoot项目到这里就配置完成了,启动项目,访问

http://localhost:8080/proetheus_demo/actuator/

SpringBoot 2.0+prometheus+Grafana

2  http://localhost:8080/proetheus_demo/actuator/prometheus 

SpringBoot 2.0+prometheus+Grafana

2.prometheus介绍

    prometheus主要负责从接口采集数据,Prometheus 采取的方式是 PULL 模型,也叫服务端主动去拉取监控数据。

3 prometheus基础架构:

SpringBoot 2.0+prometheus+Grafana

从这个架构图,也可以看出 Prometheus 的主要模块包含, Server, Exporters, Pushgateway, PromQL, Alertmanager, WebUI 等。

它大致使用逻辑是这样:

  1. Prometheus server 定期从静态配置的 targets 或者服务发现的 targets 拉取数据。
  2. 当新拉取的数据大于配置内存缓存区的时候,Prometheus 会将数据持久化到磁盘(如果使用 remote storage 将持久化到云端)。
  3. Prometheus 可以配置 rules,然后定时查询数据,当条件触发的时候,会将 alert 推送到配置的 Alertmanager。
  4. Alertmanager 收到警告的时候,可以根据配置,聚合,去重,降噪,最后发送警告。
  5. 可以使用 API, Prometheus Console 或者 Grafana 查询和聚合数据。

本人使用的prometheus 2.5 ,然后 prometheus.yml

SpringBoot 2.0+prometheus+Grafana

注意事项由于prometheus  是使用yml 配置,如果是配置可以找一个在线yml文件去验证,特别主要空格对齐,关于prometheus可以自行去学习.

上面我配置一个对主机的监控 Exporter 采用的是 Node_Exporter

对应的node_monitor.sh

#!/bin/bash
ps -ef|grep node_exporter |grep -v grep|awk '{print $2}'|xargs -i kill -15 {}
echo " start the new node_exporter"
nohup ./node_exporter --collector.filesystem.ignored-fs-types="^(sys|proc|auto|rpc_pipe|cgroup|hugetlb|mqueue|nfsd|rpc_pipefs|autofs|binfmt_misc|devpts|hugetlbfs)$" --collector.filesystem.ignored-mount-points="^/(docker|sys)($|/)" --web.listen-address=":30001" >> ./node_monitor.log 2>&1 &
echo "end start"

启动后,就可以访问监控机的 30001 端口就能获取到监控指标信息

4.Grafana配置

启动Grafana,配置Prometheus数据源, 安装之后的默认账号为 admin/admin

SpringBoot 2.0+prometheus+Grafana

这里以ID是4701的Doshboard为例(地址:https://grafana.com/dashboards/4701)如图jvm监控。

SpringBoot 2.0+prometheus+Grafana

下载对应的json文件,下面可以导入对应的json文件

SpringBoot 2.0+prometheus+Grafana

然后指定数据源为Prometheus数据源

SpringBoot 2.0+prometheus+Grafana

下载node-exporter 的面板SpringBoot 2.0+prometheus+Grafana

 

相关文章: