Prometheus pushgateway 介绍与使用

网友投稿 3465 2022-09-04

Prometheus pushgateway 介绍与使用

Prometheus pushgateway 介绍与使用

Push Gateway:短期存储指标数据。主要用于临时性的任务,各个目标主机可以上报数据到pushgateway,,然后prometheus server统一从pushgateway拉取数据

1.Pushgateway简介

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

总结就是pushgateway是普罗米修斯的一个组件,是通过被动的方式将数据上传至普罗米修斯。这个可以解决不在一个网段的问题。

2.Pushgateway优点

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

解决不在同一网段的问题,pushgateway就相当于一个中间网关。相当于pushgateway要和target可以通同时和普罗米修斯也可以通。

3.pushgateway缺点

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

4.安装pushgateway,在k8s-node节点操作

在k8s-node节点操作

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

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

5.修改prometheus-cfg.yaml文件,在k8s-master节点操作

添加如下job

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

6.推送指定的数据格式到pushgateway

现在普罗米修斯还采集不到任何和pushgateway相关的数据,因为我们需要将数据上报到pushgateway,普罗米修斯才可以采集到,所以现在需要将数据推送到pushgateway。

metric指标名 3.6指标值   test_job这个是job的名字  这些都是固定的格式

[root@node1 ~]# echo " metric 3.6" | curl --data-binary @- 表示发送二进制数据,注意:它是使用POST方式发送的!

添加复杂数据

[root@node1 ~]# cat < node_memory_usage 36> # TYPE memory_total gauge> node_memory_total 36000> EOF

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

curl -X DELETE -X DELETE ~]# cat push.sh node_memory_usages=$(free -m | grep Mem | awk '{print $3/$2*100}')job_name="memory"instance_name="192.168.100.6"cat <

打开pushgateway web ui界面,可看到如下:

打开prometheus ui界面,可看到如下memory_usage的metrics指标

设置计划任务,每分钟定时上报数据

crontab -e*/1 * * * * /root/push.sh

注意:从上面配置可以看到,我们上传到pushgateway中的数据有job也有instance,而prometheus配置pushgateway这个job_name中也有job和instance,这个job和instance是指pushgateway实例本身,添加 honor_labels: true 参数, 可以避免promethues的targets列表中的job_name是pushgateway的 job 、instance 和上报到pushgateway数据的job和instance冲突。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:PHP生成器的创建和使用(PHP制作)
下一篇:PHP实现SSO单点登录步骤
相关文章

 发表评论

暂时没有评论,来抢沙发吧~