prometheus之Pushgateway安装和使用方法

 更新时间:2024年05月07日 11:06:59   作者:阿龙先生啊  
Pushgateway是prometheus的一个组件,prometheus server默认是通过exporter主动获取数据,本文给大家介绍prometheus之Pushgateway安装和使用教程,感兴趣的朋友一起看看吧

一、Pushgateway概述

1.1 Pushgateway简介

Pushgateway是prometheus的一个组件,prometheus server默认是通过exporter主动获取数据(默认采取pull拉取数据),pushgateway则是通过被动方式推送数据到prometheus server,用户可以写一些自定义的监控脚本把需要监控的数据发送给pushgateway, 然后pushgateway再把数据发送给Prometheus server。

1.2 Pushgateway优点

  • Prometheus 默认采用定时pull 模式拉取targets数据,但是如果不在一个子网或者防火墙,prometheus就拉取不到targets数据,所以可以采用各个target往pushgateway上push数据,然后prometheus去pushgateway上定时pull数据
  • 在监控业务数据的时候,需要将不同数据汇总, 汇总之后的数据可以由pushgateway统一收集,然后由 Prometheus 统一拉取。

1.3 pushgateway缺点

  • Prometheus拉取状态只针对 pushgateway, 不能对每个节点都有效;
  • Pushgateway出现问题,整个采集到的数据都会出现问题
  • 监控下线,prometheus还会拉取到旧的监控数据,需要手动清理 pushgateway不要的数据。

二、测试环境

IP

主机名

192.168.2.139

master1

192.168.40.140

node1

三、安装测试

3.1 pushgateway安装

在node1节点操作

docker pull prom/pushgateway
docker run -d --name pushgateway -p 9091:9091 prom/pushgateway

在浏览器访问192.168.2.140:9091出现如下ui界面

3.2 prometheus添加pushgateway

修改prometheus-cfg.yaml文件

- job_name: 'pushgateway'
      scrape_interval: 5s
      static_configs:
      - targets: ['192.168.2.140:9091']
   honor_labels: true

更新

kubectl apply -f prometheus-alertmanager-cfg.yaml
kubectl delete -f prometheus-alertmanager-deploy.yaml
kubectl apply  -f prometheus-alertmanager-deploy.yaml

登录prometheus http://192.168.2.139:30242/targets

3.3 推送指定的数据格式到pushgateway

1.添加单条数据

# 向 {job="test_job"} 添加单条数据:
echo " metric 3.6" | curl --data-binary @- http://192.168.2.140:9091/metrics/job/test_job

这里需要注意的是将<key & value>推送给pushgateway,curl --data-binary是将HTTP POST请求中的数据发送给HTTP服务器(pushgateway),和用户提交THML表单时浏览器的行为是一样的,HTTP POST请求中的数据为纯二进制数据。

prometheus web中查询

2.添加复杂数据

# 添加复杂数据
cat <<EOF | curl --data-binary @- http://192.168.2.140:9091/metrics/job/test_job/instance/test_instance
# TYPE node_memory_usage gauge
node_memory_usage 26
# TYPE memory_total gauge
node_memory_total 26000
EOF

这条连接主要分为三个部分

  • http://192.168.2.143:9091/metrics/job/test_job:这是URL的主location,发送到哪个URL
  • job/test_job:表示是推送到哪个prometheus定义的job里面,上面我们定义的job_name为pushgateway
  • instance/test_instance:表示推送后显示的主机名称是什么,从上面pushgateway图也可以看出

如下是删除某个实例

# 删除某个组下某个实例的所有数据
curl -X DELETE http://192.168.2.140:9091/metrics/job/test_job/instance/test_instance
# 删除某个组下的所有数据:
curl -X DELETE http://192.168.2.140:9091/metrics/job/test_job

3.SDk-prometheus-client使用

python安装 prometheus_client

使用 pip 工具可以非常方便地安装 prometheus_client:

测试脚本

# -*- coding: utf-8 -*-
# 导入所需的库
from prometheus_client import CollectorRegistry, Gauge, push_to_gateway
if __name__ == '__main__':
    # 定义和注册指标
    registry = CollectorRegistry()
    labels = ['req_status', 'req_method', 'req_url']
    g_one = Gauge('requests_total', 'url请求次数', labels, registry=registry)
    g_two = Gauge('avg_response_time_seconds', '1分钟内的URL平均响应时间', labels, registry=registry)
    # 收集和记录指标数据
    g_one.labels('200','GET', '/test/url').set(1) #set设定值
    g_two.labels('200','GET', '/test/api/url/').set(10) #set设定值
    # 推送指标数据到Pushgateway
    push_to_gateway('http://192.168.2.140:9091', job='SampleURLMetrics', registry=registry)

在这个示例中,我们定义了一个名为requests_total的指标,记录了一个值为1和10的示例数据,并将指标数据推送到了名为example_job的job中。

到此这篇关于prometheus之Pushgateway安装和使用的文章就介绍到这了,更多相关Pushgateway安装和使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 网站统计中的数据收集原理及实现

    网站统计中的数据收集原理及实现

    目前主流的数据收集方式基本都是基于javascript的。本文将简要分析这种数据收集的原理,并一步一步实际搭建一个实际的数据收集系统
    2013-09-09
  • 一文学会Hadoop与Spark等大数据框架知识

    一文学会Hadoop与Spark等大数据框架知识

    Hadoop是一个开源的可运行于大规模集群上的分布式文件系统和运行处理基础框架,Spark是UC Berkeley AMPLab开发的是一种计算框架,分布式资源工作交由集群管理软件(Mesos、YARN),本文介绍Hadoop与Spark大数据框架知识,感兴趣的朋友一起看看吧
    2022-04-04
  • 解决YYC松鼠短视频系统上传视频会被压缩的问题

    解决YYC松鼠短视频系统上传视频会被压缩的问题

    这篇文章主要介绍了解决YYC松鼠短视频系统上传视频会被压缩的问题,非常不错具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • win10 + anaconda3 + python3.6 安装tensorflow + keras的步骤详解

    win10 + anaconda3 + python3.6 安装tensorflow + keras的步骤详解

    这篇文章主要介绍了win10 + anaconda3 + python3.6 安装tensorflow + keras的步骤,需要的朋友可以参考下
    2019-09-09
  • 初探 SOA

    初探 SOA

    SOA服务具有平台独立的自我描述XML文档。Web服务描述语言(WSDL, Web Services Description Language)是用于描述服务的标准语言。
    2009-01-01
  • asp.net php asp jsp 301重定向的代码(集合)

    asp.net php asp jsp 301重定向的代码(集合)

    介绍一下针对各类程序系统实施301重定向的代码,需要的朋友可以参考下。
    2010-11-11
  • ElasticSearch核心概念

    ElasticSearch核心概念

    Elaticsearch简称为es,es是一个开源的高扩展的分布式全文检索引擎,本文给大家介绍ElasticSearch基础知识介绍,对ElasticSearch相关知识感兴趣的朋友一起看看吧
    2022-07-07
  • 基于Token的身份验证之JWT基础教程

    基于Token的身份验证之JWT基础教程

    JWT(json web token)是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准。下面这篇文章主要给大家介绍了关于基于Token的身份验证之JWT的基础相关资料,文中通过示例代码的非常详细,需要的朋友可以参考下
    2018-09-09
  • vscode调用HTML文件的实现步骤

    vscode调用HTML文件的实现步骤

    利用Vscode软件编写html的时候,一般都想右键选择html文件,本文主要介绍了vscode调用HTML文件的实现步骤,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • mapboxgl 中插值表达式的应用场景分析

    mapboxgl 中插值表达式的应用场景分析

    interpolate是mapboxgl地图样式中用于插值的表达式,能对颜色和数字进行插值,这篇文章就把 mapboxgl 中interpolate插值工具的常见应用场景介绍一下,感兴趣的朋友一起看看吧
    2022-09-09

最新评论