searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

SpringBoot 集成Prometheus学习

2023-06-29 06:03:35
15
0

Prometheus是一个监控系统,尤其在云原生的时代,Prometheus作为新一代的云原生监控,表现的非常亮眼,目前已经超过120+项的第三方集成。Prometheus监控架构一般分为采集层、存储计算层、应用层。

采集层:
    采集层分为两类,一类是生命周期比较短的作业,一类是生命周期较长的作业。所谓生命周期长短就是你的应用是长时间运行还是短时间运行

    短作业:直接通过Api,将指标推送给Pushgateway
   长作业:Retrieval组件直接从job或者Exporter拉取数据(比如SpringBoot应用程序)
存储计算层:

    Prometheus Server,里面包含了存储引擎和计算引擎
    Retrieval组件为取数组件,它会主动从Pushgateway或者Exporter拉取指标数据
    Service dicovery可以动态发现要监控的目标
应用层:
    分为两类,AlertManager和数据可视化(Grafana)

    AlertManager:告警组件,在Prometheus配置告警规则,一旦满足告警规则,将告警信息发送给AlertManager,AlertManager发送出告警信息
    Grafana:将Prometheus采集的指标数据可视化

1.部署客户端—SpringBoot应用

Prometheus分为客户端与服务端,客户端就是SpringBoot应用需要引入相关的依赖:

<!--springboot的监控端点 2.3.6-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!--prometheus的客户端依赖 1.5.7-->
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

配置文件配置打开Actuator服务

SpringBoot自带监控功能Actuator,可以帮助实现对程序内部运行情况监控,比如监控状况、Bean加载情况、环境变量、日志信息、线程信息等,配置如下:

properties配置文件配置:

management.endpoints.web.exposure.include=*

yml文件配置:

management:
endpoints:
web:
exposure:
include: '*'

配置完,启动就可以看到监控的数据了

2.部署客户端—node-exporter

node-exproter 它是最基本的节点监控客户端,负责监控机器的各个指标,包括节点存活、CPU、Mem、Network、IO 等等,方便后边演示 Alertmanager 报警时的触发条件,例如配置节点存活检测,当机器 Down 时,触发报警控制,那么就可以通过停止 node-exporter 来模拟实现了。

docker pull prom/node-exporter:latest
docker run --name node-exporter -d -p 9100:9100 prom/node-exporter:latest

 

访问地址:http://ip:9100/metrics,即可看到监控的指标

3.部署服务端—Prometheus Server

这里使用docker部署,因为国内有docker的镜像所有部署起来更容易一些

拉取镜像

docker pull prom/prometheus

准备prometheus.yml文件
可以配置需要监控的服务,可以配置收集springboot应用的actuator信息,收集node-exporter的信息,配置如下:

scrape_configs:
# 可随意指定
- job_name: 'spring'
  # 多久采集一次数据
  scrape_interval: 15s
  # 采集时的超时时间
  scrape_timeout: 10s
  # 采集的路径
  metrics_path: '/actuator/prometheus'
  # 采集服务的地址,设置成Springboot应用所在服务器的具体地址
  static_configs:
  - targets: ['ip:8090','ip:8090']

- job_name: 'node-exporter'
  # 多久采集一次数据
  scrape_interval: 15s
  # 采集时的超时时间
  scrape_timeout: 10s
  static_configs:
    - targets: ['ip:9100']
      labels:
        instance: redpack
        service: node-service

 

我测试只配置了收集node-exporter的信息。


创建docker容器,挂载并指定yml文件启动

docker run -d -p 9090:9090 -v /home/ctyun/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus --config.file=/etc/prometheus/prometheus.yml

访问服务http://{ip}:9090/即可

 

 

 

 

 

0条评论
作者已关闭评论
郑****团
2文章数
0粉丝数
郑****团
2 文章 | 0 粉丝
郑****团
2文章数
0粉丝数
郑****团
2 文章 | 0 粉丝
原创

SpringBoot 集成Prometheus学习

2023-06-29 06:03:35
15
0

Prometheus是一个监控系统,尤其在云原生的时代,Prometheus作为新一代的云原生监控,表现的非常亮眼,目前已经超过120+项的第三方集成。Prometheus监控架构一般分为采集层、存储计算层、应用层。

采集层:
    采集层分为两类,一类是生命周期比较短的作业,一类是生命周期较长的作业。所谓生命周期长短就是你的应用是长时间运行还是短时间运行

    短作业:直接通过Api,将指标推送给Pushgateway
   长作业:Retrieval组件直接从job或者Exporter拉取数据(比如SpringBoot应用程序)
存储计算层:

    Prometheus Server,里面包含了存储引擎和计算引擎
    Retrieval组件为取数组件,它会主动从Pushgateway或者Exporter拉取指标数据
    Service dicovery可以动态发现要监控的目标
应用层:
    分为两类,AlertManager和数据可视化(Grafana)

    AlertManager:告警组件,在Prometheus配置告警规则,一旦满足告警规则,将告警信息发送给AlertManager,AlertManager发送出告警信息
    Grafana:将Prometheus采集的指标数据可视化

1.部署客户端—SpringBoot应用

Prometheus分为客户端与服务端,客户端就是SpringBoot应用需要引入相关的依赖:

<!--springboot的监控端点 2.3.6-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!--prometheus的客户端依赖 1.5.7-->
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

配置文件配置打开Actuator服务

SpringBoot自带监控功能Actuator,可以帮助实现对程序内部运行情况监控,比如监控状况、Bean加载情况、环境变量、日志信息、线程信息等,配置如下:

properties配置文件配置:

management.endpoints.web.exposure.include=*

yml文件配置:

management:
endpoints:
web:
exposure:
include: '*'

配置完,启动就可以看到监控的数据了

2.部署客户端—node-exporter

node-exproter 它是最基本的节点监控客户端,负责监控机器的各个指标,包括节点存活、CPU、Mem、Network、IO 等等,方便后边演示 Alertmanager 报警时的触发条件,例如配置节点存活检测,当机器 Down 时,触发报警控制,那么就可以通过停止 node-exporter 来模拟实现了。

docker pull prom/node-exporter:latest
docker run --name node-exporter -d -p 9100:9100 prom/node-exporter:latest

 

访问地址:http://ip:9100/metrics,即可看到监控的指标

3.部署服务端—Prometheus Server

这里使用docker部署,因为国内有docker的镜像所有部署起来更容易一些

拉取镜像

docker pull prom/prometheus

准备prometheus.yml文件
可以配置需要监控的服务,可以配置收集springboot应用的actuator信息,收集node-exporter的信息,配置如下:

scrape_configs:
# 可随意指定
- job_name: 'spring'
  # 多久采集一次数据
  scrape_interval: 15s
  # 采集时的超时时间
  scrape_timeout: 10s
  # 采集的路径
  metrics_path: '/actuator/prometheus'
  # 采集服务的地址,设置成Springboot应用所在服务器的具体地址
  static_configs:
  - targets: ['ip:8090','ip:8090']

- job_name: 'node-exporter'
  # 多久采集一次数据
  scrape_interval: 15s
  # 采集时的超时时间
  scrape_timeout: 10s
  static_configs:
    - targets: ['ip:9100']
      labels:
        instance: redpack
        service: node-service

 

我测试只配置了收集node-exporter的信息。


创建docker容器,挂载并指定yml文件启动

docker run -d -p 9090:9090 -v /home/ctyun/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus --config.file=/etc/prometheus/prometheus.yml

访问服务http://{ip}:9090/即可

 

 

 

 

 

文章来自个人专栏
Prometheus部署
1 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0