一、环境:

1、prometheus服务器ip:192.168.0.208

2、node-exporter客户机ip:192.168.0.202

二、测试设计考虑:

  pushgateway类似一台信息收集中转机,其部署位置不受任何限制。本次测试,考虑把pushgateway部署在node-exporter客户机上,在prometheus服务器上编制信息收集和推送程序。

信息数据流程:

  1、prometheus服务器作为信息数据采集点,通过采集和推送程序向pushgateway端推送所采集的信息数据。

  2、prometheus服务器作为prometheus服务端,从pushgateway端拉取所需信息数据用于处理和展示。

二、配置过程

1、pushgateway服务端的安装

(1)pushgateway的image下载和安装

[root@DL ~]# docker search pushgateway      #查询可用pushgateway镜像

NAME DESCRIPTION STARS OFFICIAL AUTOMATED
prom/pushgateway The Prometheus Pushgateway allows ephemeral … 45 [OK]

[root@DL ~]# docker pull prom/pushgateway

(2)pushgateway服务的运行:

[root@DL ~]# docker run -d --name=pg -p 9091:9091 prom/pushgateway

2、prometheus服务器的配置

(1)prometheus服务器对pushgateway的监控配置

[root@ELK prometheus]# vi prometheus.yml

...

- job_name: 'pushgateway'

# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.

static_configs:
- targets: ['192.168.0.202:9091']

配置完成后需要重启一下prometheus服务:docker restart prometheus

(2)数据采集和推送程序的编制

以采集netstat命令中处于wait状态的连接数为例:

[root@ELK prometheus]# vi node-exporter-shell.sh
#!/bin/bash
instance_name=`hostname -f | cut -d'.' -f1` #本机机器名 变量 用于之后的标签

if [[ $instanc_name == "localhost" ]];then #要求机器名不能是localhost,不然标签就没有区分了
echo "Must FQDN hostname"
exit 1
fi

# For waiting connections

label="count_netstat_wait_connections" #定义一个新的key
count_netstat_wait_connections=`netstat -an | grep -i wait | wc -l` #定义一个新的数值netstat中wait的数量

echo "$label:$count_netstat_wait_connections"
echo "$label $count_netstat_wait_connections" | curl --data-binary @- http://192.168.0.202:9091/metrics/job/pushgateway/instance/$instance_name   #推送键值对到pushgateway服务端

(3)数据采集程序的定时运行设置

[root@ELK prometheus]# crontab -e
* * * * * sleep 10;cd /root/prometheus; ./node-exporter-shell.sh    #设置每10秒采集和推送一次数据

三、测试

1、web访问:http://192.168.0.202:9091/ 可看到pushgateway的实时push状态

2、web访问:http://192.168.0.202:9091/metrics 可看到采集数据的键值对

# TYPE count_netstat_wait_connections untyped
count_netstat_wait_connections{instance="ELK",job="pushgateway"} 0 数据采集和推送程序来源:B站大米运维课堂

prometheus配置pushgateway功能测试的更多相关文章

  1. 基于Prometheus的Pushgateway实战

    一.Pushgateway 简介 Pushgateway 是 Prometheus 生态中一个重要工具,使用它的原因主要是: Prometheus 采用 pull 模式,可能由于不在一个子网或者防火墙 ...

  2. prometheus 配置介绍

    prometheus 配置介绍 prometheus 配置分global.alerting.rule_files.scrape_configs 1.global(全局配置) scrape_interv ...

  3. prometheus配置

    本文主要记录下测试环境积累的prometheus配置信息,主要是k8s基本节点的配置和cadvisor的配置,方便以后使用做为参考 global: scrape_interval: 30s scrap ...

  4. Prometheus 配置采集目标

    Prometheus 配置采集目标 1.根据配置的任务(job)以http/s周期性的收刮(scrape/pull)2.指定目标(target)上的指标(metric).目标(target)3.可以以 ...

  5. 实用干货丨如何使用Prometheus配置自定义告警规则

    前 言 Prometheus是一个用于监控和告警的开源系统.一开始由Soundcloud开发,后来在2016年,它迁移到CNCF并且称为Kubernetes之后最流行的项目之一.从整个Linux服务器 ...

  6. 神坑!为什么prometheus的pushgateway不能对上报的counter进行累加?

    部署了一个prometheus的pushgateway,然后两次对其发送counter类型的数据: #第一次发送 curl -X POST -d '# TYPE my_first_metric_ahf ...

  7. prometheus 配置容器 cadvisor监控节点

    安装cadvisor docker run \ --volume=/:/roofs:ro \ --volume=/var/run:/var/run:rw \ --volume=/sys:/sys:ro ...

  8. prometheus配置简介

    参考网页:https://my.oschina.net/wangyunlong/blog/3060776 global: scrape_interval:             15s evalua ...

  9. prometheus配置详情

    https://prometheus.io/docs/prometheus/latest/configuration/configuration/ 下面监控宿主机和容器的内存,CPU,磁盘等状态 gr ...

随机推荐

  1. msf的rpc和json-rpc,我该选择哪个?

    msf的rpc有两种调用方式,那么我们应该调用哪一个呢? 其中restful接口暂且不谈,这个rest api其实是简单对接了一下msf的后端数据库,这个自己也能读数据库来做,这个以后有时间再谈 首先 ...

  2. Spring官网阅读(四)BeanDefinition(上)

    前面几篇文章已经学习了官网中的1.2,1.3,1.4三小结,主要是容器,Bean的实例化及Bean之间的依赖关系等.这篇文章,我们继续官网的学习,主要是BeanDefinition的相关知识,这是Sp ...

  3. webpack-基础知识

    一.webpack介绍 webpack是一个前端模块化工具,简单解释:webpack就是处理多个文件,根据设置的规则,对文件进行合并和修改. 正式说:webpack是一个模块化打包工具.从入口模块出发 ...

  4. Day_12【集合】扩展案例2_键盘录入一个字符串,对其进行去重,并将去重后的字符串组成新数组

    需求分析:键盘读取一行输入,去掉其中重复字符, 打印出不同的那些字符 思路: 1.键盘录入字符串 2.遍历字符串,将每个字符存储到集合中 3.将集合中重复的字符去掉 4.创建新集合,遍历老集合,获取老 ...

  5. quartus ii FFT核使用

    quartus ii FFT核使用 导入自己程序自带的txt文件,写出控制模块 时序图 FFT核文件给出的时序图输入 仿真时序图 1024个采样点数,输入结束 fft数据输出 2.代码 `timesc ...

  6. Java注解的定义和使用

    注解也叫元数据,一种代码级别的说明.是jdk1.5后产生的一个特性,与类.接口.枚举同一个档次,他可以在包.类.字段.方法.局部变量.方法参数等的前面,用来对这些元素进行说明.注释: <!--m ...

  7. Python内置函数示例

    abs() 返回数字绝对值 >>> abs(-100) 100 >>> abs(10) 10 >>> all() 判断给定的可迭代参数 itera ...

  8. python 机器学习(一)机器学习概述与特征工程

      一.机器学习概述 1.1.什么是机器学习? 机器学习是从数据中自动分析获得规律(模型),并利用规律对未知数据进行预测 1.2.为什么需要机器学习? 解放生产力,智能客服,可以不知疲倦的24小时作业 ...

  9. webpack指南(五)TypeScript

    将webpack与TS进行集成. 1. 安装TypeScript 编译器和 loader npm install --save-dev typescript ts-loader 2. 在package ...

  10. 如何在本地调试你的 Spark Job

    生产环境的 Spark Job 都是跑在集群上的,毕竟 Spark 为大数据而生,海量的数据处理必须依靠集群.但是在开发Spark的的时候,不可避免我们要在本地进行一些开发和测试工作,所以如何在本地用 ...