首页 > 其他分享 >prometheus学习笔记之PushGateway

prometheus学习笔记之PushGateway

时间:2024-09-24 14:13:42浏览次数:15  
标签:prometheus 笔记 9091 job PushGateway 推送 数据 pushgateway

一、pushgateway 简介

pushgateway 是采用被动推送的方式,而不是类似于 prometheus server 主动连接 exporter 获取监控数据。
pushgateway 可以单独运行在一个节点, 然后需要自定义监控脚本把需要监控的主动推送给 pushgateway的 API 接口, 然后 pushgateway 再等待 prometheus server 抓取数据, 即 pushgateway 本身没有任何抓
取监控数据的功能, 目前 pushgateway 只是被动的等待数据从客户端推送过来。

#常用选项 --persistence.file="" #数据保存的文件, 默认只保存在内存中 --persistence.interval=5m #数据持久化的间隔时间

二、部署 pushgateway

二进制、容器、k8s都可以部署,这里为了方便直接使用二进制部署

wget https://github.com/prometheus/pushgateway/releases/download/v1.6.0/pushgateway-1.6.0.linux-amd64.tar.gz
tar xf pushgateway-1.6.0.linux-amd64.tar.gz 
mv pushgateway-1.6.0.linux-amd64 /usr/local/pushgateway
cd /usr/local/pushgateway
./pushgateway -h
nohup ./pushgateway &  #没有配置文件,主要通过命令行传参
netstat -tnlp #默认监控9091端口

三、配置prometheus抓取pushgateway

vim prometheus.yml
  - job_name: "pushgateway-monitor-metrics"
    static_configs:
      - targets: ["192.168.100.133:9091"] #pushgateway 地址和端口
    honor_labels: true #保留源标签

curl -X POST http://127.0.0.1:9090/-/reload

四、客户端手动推送数据

1.推送单条数据

要 Push 数据到 PushGateway 中, 可以通过其提供的 API 标准接口来添加, 默认 URL 地址为:
http://<ip>:9091/metrics/job/<JOBNAME>{/<LABEL_NAME>/<LABEL_VALUE>},
其中<JOBNAME>是必填项, 为 job 标签值, 后边可以跟任意数量的标签对, 一般我们会添加一个 instance/<INSTANCE_NAME>实例名称标签, 来方便区分各个指标。
#推送一个 job 名称为 mytest_job, key 为 mytest_metric 值为 2024 echo "mytest_metric 2024" | curl --data-binary @- http://192.168.100.133:9091/metrics/job/mytest_job

访问pushgateway

mytest_metric  命令行创建的job名称,实际通prometheus中的job一样
push_time_seconds  自动生成,记录指标数据的失败上传时间
push_failure_time_seconds 自动生成,记录指标数据的成功上传时间

prometheus验证数据

可以看到已经成功抓取到了 

2.推送多条数据

cat <<EOF | curl --data-binary @- http://192.168.100.133:9091/metrics/job/test_job/instance/172.31.0.100
#TYPE node_memory_usage gauge
node_memory_usage 4311744512
# TYPE memory_total gauge
node_memory_total 103481868288
EOF

查看pushgateway的metric

prometheus查看写入的数据

3.简易推送数据脚本样例

# cat mem_monitor.sh
#!/bin/bash
total_memory=$(free |awk '/Mem/{print $2}')
used_memory=$(free |awk '/Mem/{print $3}')

job_name="custom_memory_monitor"
instance_name=`ifconfig eth0 | grep -w inet | awk '{print $2}'`
pushgateway_server="http://172.30.7.111:9091/metrics/job"

cat <<EOF | curl --data-binary @- ${pushgateway_server}/${job_name}/instance/${instance_name}  #可以写多个标签,格式为  key/value,如果新增一个zone标签,可以写成为 /instance/${instance_name}/zone/ShangHai ,后面可以一直加
#TYPE custom_memory_total gauge
custom_memory_total $total_memory
#TYPE custom_memory_used gauge
custom_memory_used $used_memory
EOF

五、删除数据

1.命令行

#根据job及标签删除对应的数据
curl -X DELETE http://192.168.100.133:9091/metrics/job/test_job/instance/172.31.0.100

2.web界面

 

 

标签:prometheus,笔记,9091,job,PushGateway,推送,数据,pushgateway
From: https://www.cnblogs.com/panwenbin-logs/p/18427183

相关文章

  • 笔记本电脑检测不到存储设备无法启动
    我装了debian和ubuntu的双系统,在进行数据迁移的时候,因为需要手动拷贝,就重启了一下,结果…bios找不到存储设备无法启动了,而在此之前系统完全没有报错,两块硬盘(一块ssd一块机械硬盘)都状态良好。感觉就很突然,我也没做什么奇怪的事,就是反复重启在两个系统间切换,不怎么就这样了,系统也......
  • 【自学笔记】支持向量机(3)——软间隔
    引入  上一回解决了SVM在曲线边界的上的使用,使得非线性数据集也能得到正确的分类。然而,对于一个大数据集来说,极有可能大体呈线性分类趋势,但是边界处混杂,若仍采用原来的方式,会得到极其复杂的超平面边界,浪费了算力。  上述要求所有训练样本满足约束的分类方式称为硬分类......
  • C++学习笔记(三)-----【内联函数】
    1内联函数1.1为什么要有内联函数答:还是为了补C语言的坑,补宏的坑#defineN10//实现一个ADD的宏函数//错误写法#defineADD(intx,inty){returnx+y;}#defineADD(x,y){returnx+y;}#defineADD(x,y)returnx+y;#defineADD(x,y)x+y;//宏不需......
  • 【刷题笔记】2019 CSP-S
    2019CSP-S题目整理A-格雷数思路简介思路很简单,如果编号在中点的左边那么就输出0,否则输出1,同时还要改变编号。代码实现#include<bits/stdc++.h>#definemaxn80usingnamespacestd;typedef__int128int1;int1n,k;__int128read(){ charch=getchar(); __int128......
  • VulnHub靶场笔记 - Breach: 2.1
    靶机下载地址:https://download.vulnhub.com/breach/Breach-2_final2.1.zip一.安装下载后为压缩包文件解压后双击打开.ova文件根据压缩包里附带的说明我们需要将靶机的ip配为静态IP:192.168.110.151选择虚拟网络编辑器选择仅主机的网卡并将子网ip改为110网段点......