Prometheus 使用 PushGateway 进行数据上报采集

PushGateway 介绍


Prometheus 是一套开源的系统监控、报警、时间序列数据库的组合,最初有 SoundCloud 开发的,后来随着越来越多公司使用,于是便独立成开源项目。Prometheus 基本原理是通过 Http 协议周期性抓取被监控组件的状态,而输出这些被监控的组件的 Http 接口为 Exporter。PushGateway 作为 Prometheus 生态中的一个重要一员,它允许任何客户端向其 Push 符合规范的自定义监控指标,在结合 Prometheus 统一收集监控。

PushGateway 安装配置


PushGateway 安装很简单,可以使用二进制包解压安装服务

二进制包安装

二进制包安装方式,直接从 官方 Github 下载最新二进制安装包,解压即可。

[root@NEWCWS-AS03 data]# wget https://github.com/prometheus/pushgateway/releases/download/v1.4.0/pushgateway-1.4.0.linux-amd64.tar.gz
[root@NEWCWS-AS03 data]# tar -zxvf pushgateway-1.4.0.linux-amd64.tar.gz 
pushgateway-1.4.0.linux-amd64/
pushgateway-1.4.0.linux-amd64/LICENSE
pushgateway-1.4.0.linux-amd64/NOTICE
pushgateway-1.4.0.linux-amd64/pushgateway
[root@NEWCWS-AS03 data]# cd pushgateway-1.4.0.linux-amd64/
[root@NEWCWS-AS03 pushgateway-1.4.0.linux-amd64]# ls
LICENSE  NOTICE  pushgateway
[root@NEWCWS-AS03 pushgateway-1.4.0.linux-amd64]# ll
总用量 17172
-rw-r--r-- 1 3434 3434    11357 1月  23 08:08 LICENSE
-rw-r--r-- 1 3434 3434      487 1月  23 08:08 NOTICE
-rwxr-xr-x 1 3434 3434 17564162 1月  23 07:54 pushgateway
[root@NEWCWS-AS03 pushgateway-1.4.0.linux-amd64]# ./pushgateway 
level=info ts=2021-05-06T09:30:58.569Z caller=main.go:85 msg="starting pushgateway" version="(version=1.4.0, branch=HEAD, revision=007ba874bead1b9ad2253d89e3adeb16a73fd012)"
level=info ts=2021-05-06T09:30:58.569Z caller=main.go:86 build_context="(go=go1.15.7, user=root@410bc05a48f6, date=20210122-23:54:24)"
level=info ts=2021-05-06T09:30:58.572Z caller=main.go:139 listen_address=:9091
level=info ts=2021-05-06T09:30:58.572Z caller=tls_config.go:191 msg="TLS is disabled." http2=false

使用命令 ./pushgateway 命令即可启动服务,此时浏览器访问 http://:9091 即可访问 UI 页面,只不过默认 Metrics 上没有任何数据展示,那是因为我们还没有往 PushGateway 上推送任何数据。

不过,PushGateway 服务本身是带了一些 Metrics 的,可以通过访问 http://:9091/metrics 地址来获取,可以看到里边包含了 go、process 等相关的一些监控指标。

OK,现在 PushGateway 服务已经启动完毕,但是还没有跟 Prometheus 关联起来,我们需要的是通过 PushGateway 来上传自定义监控数据,然后通过 Prometheus 采集这些数据来进行监控。那么就需要将 PushGateway 添加到 Prometheus 目标任务中去,增加 prometheus.yml 配置如下:

配置prometheus服务端


---
- job_name: 'pushgateway'
    static_configs:
      - targets: ['172.30.12.167:9091']
        labels:
          instance: pushgateway

说明一下,这里采用 static_configs 静态配置方式,因为目前就一个 PushGateway,如果有多个可以考虑其他服务发现方式,来方便动态加载,具体可以参考 这里。配置完毕后,重启 Prometheus 服务,此时可以通过 Prometheus UI 页面的 Targets 下查看是否配置成功。

版权声明:本文为作者原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原创文章,作者:老C,如若转载,请注明出处:https://www.code404.icu/534.html

发表评论

登录后才能评论