Pushgetway安装和使用

news2024/11/22 18:08:49

1、Pushgetway安装和使用

在这里插入图片描述

1.1 Pushgateway是什么

pushgateway 是另一种数据采集的方式,采用被动推送来获取监控数据的prometheus插件,它可以单独运行在

任何节点上,并不一定要运行在被监控的客户端。

首先通过用户自定义编写的脚本把需要监控的数据发送给 pushgateway,pushgateway 再将数据推送给对应的

Prometheus 服务。

对于短时运行、不支持轮询的任务,可以引入 pushgateway,将指标数值以 push 的方式推送到 pushgateway暂

存,然后 prometheus 从 pushgateway 中轮询。

PushGateway:短期存储指标数据。主要用于临时性的任务,各个目标主机可以上报数据到 pushgateway,然后

prometheus server 统一从 pushgateway 拉取数据。

Pushgateway 是 prometheus 的一个组件,prometheus server 默认是通过 exporter 主动获取数据(默认采取

pull 拉取数据),pushgateway 则是通过被动方式推送数据到 prometheus server,用户可以写一些自定义的监控

脚本把需要监控的数据发送给 pushgateway, 然后 pushgateway 再把数据发送给 Prometheus server。

1.2 使用Pushgateway的主要原因

1、因为Prometheus 采用 pull 模式,可能由于不在一个子网或者防火墙,导致 Prometheus 无法直接拉取各个

target 数据。

Prometheus 在一些情况下无法直接拉取各个 target 数据。

2、在监控业务数据的时候,需要将不同数据汇总,由 Prometheus 统一收集。

1.3 使用Pushgateway的弊端

由于以上原因,不得不使用 pushgateway,但在使用之前,有必要了解一下它的一些弊端:

1、将多个节点数据汇总到 pushgateway,如果pushgateway 挂了,受影响比多个 target 大。

通过单个 Pushgateway 监控多个实例时, Pushgateway 将会成为单点故障和潜在瓶颈。

2、Prometheus 拉取状态 up 只针对 pushgateway, 无法做到对每个节点有效。

3、Pushgateway 可以持久化推送给它的所有监控数据。 因此,即使你的监控已经下线,prometheus 还会拉取

到旧的监控数据,需要手动清理 pushgateway 不要的数据。

总:

  • Prometheus拉取状态只针对 pushgateway,不能对每个节点都有效。

  • Pushgateway出现问题,整个采集到的数据都会出现问题。

  • 监控下线,prometheus还会拉取到旧的监控数据,需要手动清理 pushgateway不要的数据。

1.4 Pushgateway流程图

在这里插入图片描述

我们编写脚本将数据发送到 Pushgateway,Pushgateway将数据 push 到 Prometheus。

1.5 与Prometheus结合使用流程图

通过客户端 POST数据至pushgateway,prometheus拉取pushgateway里数据,经过alertmanager报警规则触

发,到prometheusalert自定义模板,最后飞书机器人发送该报警信息。

在这里插入图片描述

1.6 Pushgateway使用

1.6.1 下载部署包

下载地址:

https://github.com/prometheus/pushgateway/releases/

这里下载 pushgateway-1.4.3.linux-amd64.tar.gz

https://github.com/prometheus/pushgateway/releases/download/v1.4.3/pushgateway-1.4.3.linux-amd64.tar.gz

1.6.2 解压

tar -xvf pushgateway-1.4.3.linux-amd64.tar.gz

1.6.3 启动

nohup ./pushgateway >> nohup.out 2>&1 &

1.6.4 测试

访问:http://192.168.54.195:9091/

在这里插入图片描述

1.6.5 在Prometheus配置

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

重新启动 Prometheus:

nohup ./prometheus --config.file=prometheus.yml >> nohup.out 2>&1 &

在这里插入图片描述

1.6.6 测试发送数据

# 推送指定的数据格式到pushgateway
# 将"metrics"字节赋值"3.6",向{job="test_job"}添加单条数据
$ echo "metric 3.6" | curl --data-binary @- http://192.168.54.195:9091/metrics/job/test_job

查看结果:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

# 添加复杂数据
cat <<EOF | curl --data-binary @- http://192.168.54.195:9091/metrics/job/test_job/instance/test_instance
node_memory_usage 36
node_memory_total 36000
EOF

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

# 利用shell脚本完成数据推送
$ vim push.sh
# 内容
node_memory_usages=$(free -m | grep Mem | awk '{print $3/$2*100}')
job_name="memory"
instance_name="192.168.54.195"
cat <<EOF | curl --data-binary @- http://192.168.54.195:9091/metrics/job/$job_name/instance/$instance_name
# TYPE node_memory_usages gauge
node_memory_usages $node_memory_usages
EOF
# 执行
./push.sh

在这里插入图片描述

1.6.7 定时任务定时推送数据

# 新建定时任务
crontab -e 
或者
vim /etc/crontab

第一种方式 crontab -e

  • 输入 crontab -e
  • 按下 a 键进入到编辑模式
  • 输入定时任务
  • 同时按下 ctrl+c 退出编辑模式
  • 按下 shift+: 输入 wq 退出 crontab

第二种方式 vim /etc/crontab

$ vim /etc/crontab
# 写入如下内容
1 * * * * sh /home/zhangshixing/prometheus/prometheus-2.34.0-rc.2.linux-amd64/push.sh
# 查看定时任务
# 第一种方式
$ crontab -l
1 * * * * sh /home/zhangshixing/prometheus/prometheus-2.34.0-rc.2.linux-amd64/push.sh
# 第二种方式
$ cat /var/log/cron
Mar  3 09:23:01 zsx crond[27252]: (root) RELOAD (/var/spool/cron/root)
$ cat /var/spool/cron/root
1 * * * * sh /home/zhangshixing/prometheus/prometheus-2.34.0-rc.2.linux-amd64/push.sh

1.6.8 删除某个组下的某实例的所有数据

curl -X DELETE http://192.168.54.195:9091/metrics/job/some_job/instance/some_instance
curl -X DELETE http://192.168.54.195:9091/metrics/job/some_job

1.7 Pushgateway使用方法

$ ./pushgateway --help
usage: pushgateway [<flags>]

The Pushgateway

Flags:
  -h, --help                     		Show context-sensitive help (also try --help-long and --help-man).
      --web.config.file=""       		[EXPERIMENTAL] Path to configuration file that can enable TLS or uthentication.
      --web.listen-address=":9091"		Address to listen on for the web interface, API, and telemetry.
      --web.telemetry-path="/metrics"	Path under which to expose metrics.
      --web.external-url=        		The URL under which the Pushgateway is externally reachable(可从外部访问Pushgateway的URL).
      --web.route-prefix=""      		Prefix for the internal routes of web endpoints. Defaults to the path of --web.external-url(web端点内部路由的前缀,默认为-web.external-url的路径).
      --web.enable-lifecycle     		Enable shutdown via HTTP request.
      --web.enable-admin-api     		Enable API endpoints for admin control actions.
      --persistence.file=""      		le to persist metrics. If empty, metrics are only kept in memory(持久化metrics的文件,如果该文件为空,则metrics只保留在内存中).
      --persistence.interval=5m  		The minimum interval at which to write out the persistence file(写入持久性文件的最小间隔).
      --push.disable-consistency-check	Do not check consistency of pushed metrics. DANGEROUS.                  
      --log.level=info           		Only log messages with the given severity or above. One of: [debug, nfo, warn, error]
      --log.format=logfmt        		Output format of log messages. One of: [logfmt, json]
      --version                  		Show application version.

1.8 docker部署pushgateway

搜索镜像:

$ docker search pushgateway

在这里插入图片描述

$ docker search prom/pushgateway

在这里插入图片描述

拉取镜像:

$ docker pull prom/pushgateway

在这里插入图片描述

启动:

$ docker run -d --name pushgateway -p 9091:9091 --network host prom/pushgateway

在这里插入图片描述

通过http://192.168.54.195:9091/进行访问:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/713789.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ClickHouse浅谈

文章目录 前置知识什么是OLAP与OLTP行式数据库与列式数据库什么是行式和列式&#xff1f;行式和列式的优缺点 ClickHouse什么是clickhouse&#xff1f;clickhouse的使用架构clickhouse的优点和缺点clickhouse的功能特性计算层服务层向量化引擎 clickhouse的使用案例与其他OLAP相…

如何打开远程电脑的任务管理器?

关于任务管理器 任务管理器可以显示远程计算机后台运行的进程和应用程序及其使用状态。通过任务管理器提供的信息&#xff0c;您可以了解是否有程序或进程占用过多的CPU和内存&#xff0c;然后您可以选择结束应用程序或结束进程以提高远程电脑的运行速度。 如何访问远程电脑上…

SD 系统自动计算的税额 有差异

SD 系统自动计算的税额 有差异 1,002,000.00 * 13% 115,274.34 产生了0.03的价格舍入差异 &#xff08;保存前是正确的&#xff0c;保存后产生差异&#xff09; 解决办法&#xff1a;取消条件类型组条件即可

辅助行走机器人开发 —— 下位机控制

文章目录 总体设计硬件选型控制模式程序流程1 初始化2 FreeRTOSBalance_taskMPU6050_taskShow_taskLed_taskPs2_taskData_task 3 中断串口中断 辅助行走机器人开发项目总结 总体设计 项目分为语音模式、导航模式和手动模式。 语音模式、导航模式为ROS下发控制指令&#xff1…

java.lang.UnsupportedOperationException 异常处理

通过 json 字符串转化成的 asList &#xff0c;对该 List 进行 add 时&#xff0c;抛出异常 java.lang.UnsupportedOperationException 处理方案 List string new ArrayList<>(asList);

企业邮箱的多重用途:了解企业邮箱在工作中的重要作用

邮箱已经成为商务交流不可或缺的一部分。在企业界&#xff0c;邮箱被用于各种各样的任务&#xff0c;从内部沟通到客户服务。虽然许多组织已经转向更现代的通信方式&#xff0c;如即时消息&#xff0c;企业邮箱仍然是任何成功的商业运作的重要组成部分。以下是公司邮箱的一些主…

【小程序上传报错】message:Error: 系统错误,错误码:80058,desc of scope.userLocation is empty

根据错误信息 “Error: 系统错误&#xff0c;错误码&#xff1a;80058,desc of scope.userLocation is empty”&#xff0c;这是一个系统错误&#xff0c;错误码为80058。错误信息中提到了 scope.userLocation 的描述为空。 可能是因为在小程序中使用了 scope.userLocation 权…

5.4 服务器编程基本框架和两种高效的事件处理模式

5.4 服务器编程基本框架和两种高效的事件处理模式 服务器编程基本框架 虽然服务器种类繁多&#xff0c;但其基本框架都一样&#xff0c;不同之处在于逻辑处理&#xff08;比如开发Web服务器项目&#xff0c;浏览器客户端向服务端发送http请求&#xff0c;服务器对请求报文进行…

高压线路零序电流方向保护程序逻辑原理(三)

四、零序保护故障处理程序原理 零序保护逻辑程序可分为三个模块&#xff1a;快速动作部分、全相循环和非全相循环模块。这是根据零序保护的特点而设计的。任何一种高压线路保护都要求快速处理I段范围内的严重故障&#xff0c;所以零序保护与距离保护一样配有快速动作部分程序模…

分不清楚蝴蝶的种类,让AI来告诉你,基于YOLOv5开发构建轻量级蝴蝶细粒度目标检测识别系统

小时候有时间就很喜欢趁着下课放学的时间去抓蝴蝶玩&#xff0c;五彩多样的蝴蝶让人应接不暇&#xff0c;现在早就过了那个天真玩耍的年纪了&#xff0c;如今看到蝴蝶的第一反应就是这是什么蝴蝶&#xff0c;没有专业的知识支撑很难识别出来具体的种类&#xff0c;本文的主要目…

电脑bios使用的uefi启动,系统盘使用的mbr格式,为什么安装完系统无法进入?

概要 在电脑的安装系统过程中&#xff0c;我们会遇到一些问题&#xff0c;比如说使用UEFI启动但是磁盘分区使用MBR格式&#xff0c;导致系统安装完成之后无法引导。这是因为UEFI启动只支持GPT格式的磁盘分区。 在本文中&#xff0c;我们将探讨如何将磁盘转换成GPT格式&#xf…

一种新的程序在线升级的实现(学习)

介绍一种新的程序在线升级方法&#xff0c;以及程序在线升级在嵌入式系统中的应用和实现。设计将从系统原理和实现介绍该程序在线升级方法。利用串口作为通讯方式&#xff0c;自定义通讯协议。 上位机将升级文件传给下位机&#xff0c;下位机将数据解析后存储在内部Flash中。解…

用矩阵处理3D变换

Rotation 也可以把三个旋转矩阵合并为一个综合旋转矩阵: 平移和旋转结合 有时我们想要将平移和旋转结合起来&#xff0c;这样我们就可以在一次操作中同时进行两者&#xff0c;但是我们不能用3x3矩阵来做3D平移&#xff0c;只能用4x4矩阵来做&#xff0c;如下所定义&#xff1a…

尚硅谷Docker实战教程-笔记07【Docker常规安装简介】

尚硅谷大数据技术-教程-学习路线-笔记汇总表【课程资料下载】视频地址&#xff1a;尚硅谷Docker实战教程&#xff08;docker教程天花板&#xff09;_哔哩哔哩_bilibili 尚硅谷Docker实战教程-笔记01【理念简介、官网介绍、平台入门图解、平台架构图解】尚硅谷Docker实战教程-笔…

嵌入式基础知识-总线带宽

带宽&#xff0c;最容易想到的是上网用的网络带宽&#xff0c;在嵌入式软件开发中&#xff0c;也会用到带宽&#xff0c;这个带宽的含义就不一样了&#xff0c;区别是什么&#xff1f;本篇就来介绍一下&#xff0c;并通过一些例子来进行带宽的计算。 先来简单看下不同领域的带…

交叉熵和softmax

交叉熵cross-entropy loss 最大化似然函数&#xff0c;最小化负的似然对数函数 最终的交叉熵损失函数&#xff0c;最小化该loss&#xff1a; nn.BCELoss def criterion(yhat, y):out -1 * torch.mean(y*torch.log(yhat) (1-y) * torch.log(1-yhat))return outsoftmax

51单片机一氧化碳烟雾报警器mq2MQ7ADC0832采集

实践制作DIY- GC0152--- 一氧化碳烟雾报警器 基于51单片机设计------- 一氧化碳烟雾报警器 二、功能介绍&#xff1a; STC89C52单片机lcd1602adc0832mq2烟雾传感器mq7烟雾传感器蜂鸣器2个按键设定烟雾报警阈值 2个按键设定一氧化碳报警阈值 1.通过ADC0832采集MQ2烟雾输出的电…

嵌入式系统中STM32时钟系统详解

1. STM32的时钟源主要有&#xff1a; 内部时钟 外部时钟 锁相环倍频输出时钟 1.1 详细介绍 HSI(内部高速时钟) 它是RC振荡器&#xff0c;频率可以达到8MHZ&#xff0c;可作为系统时钟和PLL锁相环的输入 HSE&#xff08;外部高速时钟&#xff09; 接入晶振范围是4-16MHZ&a…

数据结构--线性表(顺序表、单链表、双链表、循环链表、静态链表)

前言 学习所记录&#xff0c;如果能对你有帮助&#xff0c;那就泰裤辣。 目录 1.线性表概念 定义 基本操作 2.顺序表 定义 顺序表的实现--静态分配 动态分配 顺序表的特点 顺序表的插入和删除 顺序表的查找 按位查找 按值查找 3.单链表 定义 单链表的初始化 不带…

112.(cesium篇)cesium地球自转+文字上下滚动

地图之家总目录(订阅之前必须详细了解该博客) 地图之家:cesium+leaflet+echart+地图数据+地图工具等相关内容的介绍 文章末尾处提供保证可运行完整代码包,运行如有问题,可“私信”博主。 效果如下所示: 112.(cesium篇)cesium地球自转+文字上下滚动 下面献上完整代码…