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安装和使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • BurpSuite超详细安装和基础使用教程(已破解)

    BurpSuite超详细安装和基础使用教程(已破解)

    Burp Suite 是用于攻击web 应用程序的集成平台包含了许多Burp工具,它主要用来做安全性渗透测试,可以实现拦截请求、Burp Spider爬虫、漏洞扫描(付费)等类似Fiddler和Postman但比其更强大的功能,今天给大家介绍下BurpSuite安装破解使用教程,感兴趣的朋友一起看看吧
    2022-10-10
  • 使用roolup构建你的lib(实现步骤)

    使用roolup构建你的lib(实现步骤)

    大家都知道Rollup更加适合用于构建lib 而 Webpack, Precel 更加适合开发应用。本文,将结合一个简单的例子说说如何使用Rollup构建自己的lib,感兴趣的朋友一起看看吧
    2021-08-08
  • Markdown语法备忘

    Markdown语法备忘

    Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的HTML页面
    2014-10-10
  • 消息队列应用场景介绍

    消息队列应用场景介绍

    这篇文章介绍了消息队列的应用场景,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • Pulsar简介及集群安装过程

    Pulsar简介及集群安装过程

    pulsar是一个云原生企业级的发布订阅(pub-sub)消息系统,最初由Yahoo开发,并于2016年底开源,现在是Apache软件基金会顶级开源项目,这篇文章主要介绍了Pulsar简介及集群安装,需要的朋友可以参考下
    2025-04-04
  • VS2019提示scanf不安全问题的解决

    VS2019提示scanf不安全问题的解决

    这篇文章主要介绍了VS2019提示scanf不安全问题的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • 火车头采集正文多图片如何采集下载(只下载一张图片的情况该如何处理)

    火车头采集正文多图片如何采集下载(只下载一张图片的情况该如何处理)

    文章采集是站长常常会遇到的事,很多人使用火车头采集器软件,采集正文中有多个图片的时候如果设置错误,会遇到只下载一张图片、采集后的正文多张图片同一个文件名的情况
    2023-03-03
  • Xmind用例导入到TAPD的解决方案

    Xmind用例导入到TAPD的解决方案

    这篇文章主要介绍了Xmind用例导入到TAPD的方案,大家都知道XMind2TestCase ,该工具基于 Python 实现,通过制定测试用例通用模板,然后使用 XMind 这款广为流传且开源的思维导图工具进行用例设计,需要的朋友可以参考下
    2022-07-07
  • 计算机程序设计并行计算概念及定义全面详解

    计算机程序设计并行计算概念及定义全面详解

    最近项目需要实现程序的并行化,刚好借着翻译这篇帖子的机会,了解和熟悉并行计算的基本概念和程序设计,有需要的朋友可以借鉴参考下
    2021-11-11
  • kali2021.4a使用virtualenv安装angr的详细过程

    kali2021.4a使用virtualenv安装angr的详细过程

    在Linux中安装各种依赖python的软件时,最头疼的问题之一就是各个软件的python版本不匹配的问题,angr依赖python3,因此考虑使用virtualenv来安装angr,需要的朋友可以参考下
    2022-11-11

最新评论