CentOS7中Prometheus PushGateway的使用

这篇具有很好参考价值的文章主要介绍了CentOS7中Prometheus PushGateway的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


系列文章

第一章:超详细 CentOS7安装部署Prometheus及其简单使用(exporter、探针、告警)
第二章:超详细 Centos7下Prometheus Alertmanager配置钉钉告警与邮箱告警(已亲手验证)
第三章(当前):CentOS7中Prometheus PushGateway的使用
第四章:Prometheus结合Consul实现自助服务发现
第五章:CentOS7中使用Prometheus 集成 mtail 实现错误日志采集
扩展:CentOS7中使用Prometheus Process-exporter监控进程状态
扩展:CentOS7中使用Prometheus监控Windows主机


一、简介

概述

Pushgateway是Prometheus的一个组件,prometheus server默认是通过Exporter主动获取数据(默认采取pull拉取数据),Pushgateway则是通过exporter主动方式推送数据到Pushgateway再由prometheus主动去拉取 Pushgateway数据,用户可以写一些自定义的监控脚本把需要监控的数据发送给Pushgateway。从prometheus server角度看,都是由prometheus server主动去拉取各个数据源(例:Exporter和Pushgateway)的数据。

使用场景

Prometheus 采用定时 Pull 模式,但由于子网络或者防火墙的原因,不能直接拉取各个 Target 的指标数据,此时可以采用各个 Target 往 PushGateway 上 Push 数据,然后 Prometheus 去 PushGateway 上定时 pull。

PushGateway官网

https://github.com/Prometheus/pushgateway

二、PushGateway 部署

1,二进制包安装PushGateway

wget https://githubfast.com/prometheus/pushgateway/releases/download/v1.5.0/pushgateway-1.5.0.linux-amd64.tar.gz

tar zvxf pushgateway-1.5.0.linux-amd64.tar.gz  -C /usr/local/

cd /usr/local

mv pushgateway-1.5.0.linux-amd64/ pushgateway

2,启动服务

./pushgateway

2.1,systemctl 管理pushgateway

vim /usr/lib/systemd/system/pushgateway.service
[Unit]
Description=pushgateway
After=network.target

[Service]
User=root
Type=simple
ExecStart=/usr/local/prometheus_exporter/pushgateway/pushgateway 
Restart=on-failure

[Install]
WantedBy=multi-user.target

2.2,启动 pushgateway

systemctl daemon-reload
systemctl enable pushgateway
systemctl start pushgateway

2.3, 查看日志

journalctl -u pushgateway -fn 200

3,访问Pushgateway的web界面

 http://192.168.168.12:9091

CentOS7中Prometheus PushGateway的使用,Prometheus,prometheus
默认 Metrics 上没有数据展示,无节点向PushGateway 上推送数据。PushGateway 服务本身 Metrics
可以通过访问 http://:9091/metrics获取。Pushgateway每次只向Prometheus返回最后一次推送的数据,如果客户端一直没有推送新的指标到pushgateway,那么Prometheus将始终拉取最后push上来的数据。

三、接入Prometheus Server

1,编辑prometheus.yml文件

vim  prometheus.yml

添加

 - job_name: 'pushgateway'
    scrape_interval: 30s
    static_configs:
      - targets: ['192.168.168.12:9091']
        labels:
          instance: pushgateway
    honor_labels: true #避免收集数据本身的 job 和 instance被pushgateway实例信息覆盖

2,检查prometheus.yml文件格式

/usr/local/prometheus/promtool   check config /usr/local/prometheus/prometheus.yml

3,重启Prometheus或者热加载配置

systemctl restart prometheus
curl  -X POST http://127.0.0.1:9090/-/reload

4,查看Prometheus的web界面

CentOS7中Prometheus PushGateway的使用,Prometheus,prometheus

四、推送数据演示

1,API 方式 Push 数据到 PushGateway

1.1,通过 API 接口Push 数据至PushGateway

命令默认格式

http://:9091/metrics/job/{/<LABEL_NAME>/<LABEL_VALUE>}

<JOBNAME> 是必填项,为 job 标签值

1.2,Push 指标数据到 PushGateway 中测试

echo "pro_metric 80" | curl --data-binary @- http://192.168.168.12:9091/metrics/job/

1.3,在Pushgateway web界面中查看指标

CentOS7中Prometheus PushGateway的使用,Prometheus,prometheus

除== pro_metric== 指标外,同时新增 push_time_secondspush_failure_time_seconds 两个指标,是 PushGateway 系统自动生成的相关指标

1.4,在Prometheus Server的web界面查询指标

下面这个pro_metric就是推送到Pushgateway上的指标查询语句PromQL,是Prometheus Server从Pushgateway拉取(pull)过来的

pro_metric

CentOS7中Prometheus PushGateway的使用,Prometheus,prometheus

1.5,Push 一次写入多个指标,而且每个指标添加 TYPE 及 HELP 说明

cat <<EOF | curl --data-binary @- http://192.168.168.12:9091/metrics/job/test_job/instance/test_instance
# TYPE test_metrics counter
test_metrics{label="app1",name="demo"} 100.00
# TYPE another_test_metrics gauge
# HELP another_test_metrics Just an example.
another_test_metrics 123.45
EOF

1.6,Push 指标数据文件 pushgdata.txt 至 PushGateway

vim pushdata.txt
# TYPE promhttp_metric_handler_requests_in_flight gauge
promhttp_metric_handler_requests_in_flight 1
# HELP promhttp_metric_handler_requests_total Total number of scrapes by HTTP status code.
# TYPE promhttp_metric_handler_requests_total counter
promhttp_metric_handler_requests_total{code="200"} 67548
promhttp_metric_handler_requests_total{code="500"} 0
promhttp_metric_handler_requests_total{code="503"} 0

推送数据文件

curl -XPOST --data-binary @pushdata.txt http://192.168.168.12:9091/metrics/job/app/instance/192.168.100.100-app

1.7,重复执行上述的1.3,1.4步查看对应指标

CentOS7中Prometheus PushGateway的使用,Prometheus,prometheus
CentOS7中Prometheus PushGateway的使用,Prometheus,prometheus

2,PushGateway API 删除指标 (也可通过PushGateway 删除Group)

2.1,删除 job=“test_job” 组下的所有指标值

curl -X DELETE http://192.168.168.12:9091/metrics/job/test_job

2.2,删除 job=“test_job” 组下test_instance指标

curl -X DELETE http://192.168.168.12:9091/metrics/job/test_job/instance/test_instance

3,Pushgateway 网络延迟指标案例

3.1,fping 编译安装

wget http://www.fping.org/dist/fping-5.0.tar.gz

tar -zxvf fping-5.0.tar.gz -C /usr/local/fping/

cd /usr/local/fping

./configure --prefix=/usr/local/fping --enable-ipv4 --enable-ipv6

make && make install

ln -s /usr/local/fping/sbin/fping  /usr/sbin/fping

chmod u+s /usr/local/fping/sbin/fping

3.2,编写shell脚本

 vim pushfping.sh
#!/bin/bash
#set -x
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
job="fping"
instance="www.cloudwise.com"
icmppingloss=`fping -q -c3 "$instance" 2>&1 |awk -F '[/ %]+' '{print $9}'`
icmppingsec=`fping -q -c3 "$instance" 2>&1 |awk -F '[/ %]+' '{print $16}'`
icmpping=`fping -q -c3 "$instance" 2>&1 |awk -F '=' '{print $2}' |awk -F '/' '{print $2}'`
cat <<EOF | curl --data-binary @- http://192.168.168.12:9091/metrics/job/$job/instance/$instance
# TYPE node_fping_usages gauge
node_fpingloss_usages $icmppingloss
node_fpingsec_usages  $icmppingsec
node_fping_usages     $icmpping
EOF

3.3,使用crontab定期执行脚本

crontab -e
* * * * * bash /usr/local/fping/pushfping.sh

3.4,Pushgateway Web

CentOS7中Prometheus PushGateway的使用,Prometheus,prometheus

3.5,Prometheus Web

CentOS7中Prometheus PushGateway的使用,Prometheus,prometheus

Prometheus PushGateway 注意事项

指标值只能是数字类型,非数字类型报错
数据指标推送时间≤ Prometheus 拉取的时间,以保证Prometheus保证每次拉取的数据是最新 Push 上来的。
默认 PushGateway 不做数据持久化操作,当 PushGateway 重启或者异常挂掉,导致数据的丢失,可以通过启动时添加 -persistence.file 和 -persistence.interval 参数来持久化数据。-persistence.file 表示本地持久化的文件,将 Push 的指标数据持久化保存到指定文件,-persistence.interval 表示本地持久化的指标数据保留时间,若设置为 5m,则表示 5 分钟后将删除存储的指标数据。
指标值支持最大长度为 16 位,超过16 位后默认置为 0文章来源地址https://www.toymoban.com/news/detail-807827.html

到了这里,关于CentOS7中Prometheus PushGateway的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • grafana+prometheus+pushgateway+flink可视化实时监控

    采集层 flink APP和linux system两部分,是我们要收集指标数据的组件 传输层 Pushgateway:是一个推送收集和推送数据的组件 Node_exporter:数据导出组件 存储计算层 Prometheus:系统监控和预警框架 应用层 Grafana:可视化展示平台 浏览器打开: http://ip服务器:9090 修改配置文件 promethe

    2024年02月13日
    浏览(37)
  • Centos 从0搭建grafana和Prometheus 服务以及问题解决

    虚拟机下载 https://customerconnect.vmware.com/en/downloads/info/slug/desktop_end_user_computing/vmware_workstation_player/17_0 cenos 镜像下载 https://www.centos.org/download/ grafana 服务下载 https://grafana.com/grafana/download/7.4.0?platform=linux Prometheus 服务下载 https://prometheus.io/download/ grafana安装 grafana 启动 prometheus 安

    2024年02月14日
    浏览(39)
  • 超详细教程:Centos安装Prometheus、Grafana监控Kafka及Linux主机

    下载 node_exporter 解压到指定 /app/exporter 编写管理脚本 control_node_exporter.sh ,并给予权限  chmod + x control_node_exporter.sh ,脚本内容如下: 执行命令:   查看同级目录下的 node_exporter.log 日志 浏览器访问  host:9100 ,是否看到下面的页面 出现如上的界面,表示此部分的部署成功。

    2024年02月04日
    浏览(50)
  • Prometheus详解(四)——Prometheus简单使用

    今天继续给大家介绍Linux运维相关知识,本文主要内容是Prometheus简单使用。 在上文Prometheus详解(三)——Prometheus安装部署中,我们介绍了Prometheus的安装和部署。今天,我们就来介绍一下Prometheus的简单使用。 首先,我们先来介绍一下Prometheus的页面。Prometheus的页面如下所示

    2023年04月08日
    浏览(35)
  • Prometheus、Grafana使用

    lscpu lscpu 是一个 Linux 命令,用于显示关于 CPU(中央处理器)架构和信息的详细信息。它提供了关于 CPU 型号、核心数量、线程数量、缓存大小和其他与 CPU 相关的特性的信息。以下是 lscpu 命令输出的一些常见信息及其解释: Architecture(架构):显示操作系统所运行的 CPU 架构

    2024年02月16日
    浏览(36)
  • prometheus安装和使用记录

    Getting started | Prometheus Configuration | Prometheus Download | Prometheus Download Grafana | Grafana Labs   测试报警邮件功能:设置如果安装exporter的服务器内存占用率超过50%或者tcp timewait超过10的时候就发邮件(在实际工作中需要设置一个合适的条件): prometheus.yml里添加rule_files的路径: aler

    2024年02月09日
    浏览(29)
  • 使用Prometheus+Grafana实现监控

    我们用 actuator 暴露应用本身的线程、bean 等信息,但是这些信息还是独立于 Prometheus 之外的。下面我们 将介绍如何将 SpringBoot Actuator 与 Prometheus 结合起来。 我们同样从 Spring Initializr 创建一个名为 spring-web-prometheus-demo 的项目,选取的依赖包括: Spring Web Spring Boot Actuator Prome

    2024年02月12日
    浏览(45)
  • 使用 prometheus client SDK 暴露指标

    To expose Prometheus metrics in a Go application, you need to provide a /metrics HTTP endpoint. You can use the prometheus/promhttp library’s HTTP Handler as the handler function. This minimal application, for example, would expose the default metrics for Go applications via http://localhost:2112/metrics : To start the application: To access the metrics: T

    2024年02月13日
    浏览(35)
  • 云原生系列之使用prometheus监控nginx

    大家好,又见面了,我是沐风晓月,本文主要讲解云原生系列之使用prometheus监控nginx 文章收录到 csdn 我是沐风晓月的博客 【prometheus监控系列】专栏 ,此专栏是 沐风晓月 对云原生prometheus的的总结,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。 如果文章有什么

    2024年02月02日
    浏览(49)
  • Kubernetes部署和使用Prometheus(图片待补)

    默认已安装kuberneter kubernetes1.25 kube-prometheus release-0.12 这里使用的是Kube-Prometheus Prometheus Server :抓取和存储时间序列数据,同时提供数据的查询和告警策略的配置管理 Alertmanager :Prometheus Server 会将告警发送给 Alertmanager,Alertmanager 根据路由配置,将告警信息发送给指定的或组

    2024年02月07日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包