运维管理
MrDoc 速记插件
Docker 安装 mrdoc (开源版)
Docker-compose 安装 mrdoc
Linux之smartctl命令磁盘检测运维
Nginx配置服务并开机启动
yum安装与卸载软件常见命令「建议收藏」
yum 命令使用讲解
Nginx 映射本地静态文件
CentOS7.9 Docker部署Leanote
Nginx配置中的log_format
修改或者隐藏Nginx的版本号
centos编译安装方式升级snmpwalk命令到5.9.1从而支持SHA-512鉴权协议测试
PVE的local和local-lvm
markdown之群晖自建图床
Wireshark介绍及抓包分析
自定义数据推送到pushgateway及推送数据的注意事项
Prometheus监控实战系列十四:Pushgateway
使用 PushGateway 进行数据上报采集
RHEL6.0 yum安装报warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY错误-CSDN博客
烂泥:openvpn配置文件详解-烂泥行天下
RHEL系统以FTP服务器搭建yum源_rhel9 安装 ftp yum
详解用Navicat工具将Excel中的数据导入Mysql中 - Steven* - 博客园
Linux禁止ping以及开启ping的方法 - chenshoubiao - 博客园
MobaXterm设置无密码登录丨Pro Linux 基础篇
CentOS 安装 MySQL8,超详细!
percona-xtrabackup备份及恢复mysql操作
教你玩转MySQL8物理备份利器Xtrabackup
PVE浏览器中文设置
2024年PVE8最新安装使用指南|新手入门|安装|优化|Proxmox VE 8.1__什么值得买
sendmail发邮件注意事项
如何使用sqlite将db文件转成txt文件
一文让你学会,开源WAF雷池SafeLine
iptables按照指定国家屏蔽(GEOIP模块的安装与使用)
py3 容器适配conda24.3.0
CentOS7 配置 nginx 和 php 方案
Sakura Panel搭建教程-搭建属于自己的FRP管理面板
markdown之群晖自建图床
Debian12安装教程(保姆级)
CentOS 6.9密码修改
CentOS7如果忘记密码,密码重置详细步骤,保姆级教程。
利用CertBot实现免费SSL证书的自动签发与续签
证书3月一换很麻烦?一行命令让你解放双手
阿里云域名自动签发泛域名证书配置(最新篇)
Certimate证书自动续签
Auto-SSL
ubuntu忘记密码问题解决
Ubantu启动失败,提示“Started GNOME Display Manager”
kali网络配置(及配置ssh远程连接)
SSL证书--Let’s Encrypt和TrustAsia哪个好
PVE安装ikuai、openwrt以及lxc容器安装docker
Fail2Ban安全配置与应用
本文档使用 MrDoc 发布
-
+
首页
自定义数据推送到pushgateway及推送数据的注意事项
简单定义几条数据,并将其推送至pushgateway,方便我们验证自定义模板功能。 ## 数据推送默认格式 们要 Push 数据到 PushGateway 中,可以通过其提供的 API 标准接口来添加, **默认 URL 地址**为: `http://<ip>:9091/metrics/job/<JOBNAME>{/<LABEL_NAME>/<LABEL_VALUE>}`, 1. 是必填项,为 job 标签值,后边可以跟任意数量的标签对, 2. 一般我们会添加一个 `instance/<INSTANCE_NAME>`实例名称标签,来方便区分各个指标。 ## 一:简单数据的推送(命令行数据) ### 1.1 测试 测试: ```shell [root@localhost ~] [root@localhost ~] ``` ### 1.2 查看测试结果 刷新Pushgateway界面,查看界面  上图中,除了 test\_metric 外,同时还新增了 **push\_time\_seconds** 和 **push\_failure\_time\_seconds** 两个指标,**这两个是 PushGateway 系统自动生成的相关指标**。 同时,在 Prometheus UI 页面上 Graph 页面可以查询的到该指标了。  test\_metric 我们查询出来的结果为 ``` test_metric{exported_job="test_job",instance="pushgateway",job="pushgateway"} ``` 可以发现,交的指标所属 job 名称为 test\_job ,显示的为 exported\_job=“test\_job” ,而 job 显示为 job=“pushgateway” `为了避免这种情况的发送,需要在Prometheus的配置文件中增加增加 honor_labels: true 参数配置` ### 1.3 修改配置使我们得到想要的显示(honor\_labels ) 进入Prometheus的安装目录,修改其配置文件如下 其实就是增加一段KV就可以了 ```yml - job_name: pushgateway honor_labels: true static_configs: - targets: ['192.168.156.134:9091'] labels: instance: pushgateway ``` honor\_labels 的作用: 1. **因为 Prometheus 配置 PushGateway 的时候,也会指定 job 和 instance**,**但是它只表示 PushGateway 实例本身,不能真正表达收集数据的含义**。 2. 所以配置 PushGateway 需要添加 honor\_labels:true 参数,`避免收集数据本身的 job 和 instance 被覆盖`。 实际操作 ```shell [root@localhost prometheus-2.6.1.linux-amd64] - 192.168.156.134:9093 rule_files: - "/opt/prometheus/prometheus-2.6.1.linux-amd64/rules/*.rules" scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] - job_name: 'agent1' static_configs: - targets: ['192.168.156.134:9100'] - job_name: pushgateway honor_labels: true static_configs: - targets: ['192.168.156.134:9091'] labels: instance: pushgateway [root@localhost prometheus-2.6.1.linux-amd64] ``` ### 1.4 重启Prometheus ```shell [root@localhost prometheus-2.6.1.linux-amd64] [root@localhost prometheus-2.6.1.linux-amd64] [root@localhost prometheus-2.6.1.linux-amd64] [root@localhost prometheus-2.6.1.linux-amd64] ``` ### 1.5 查看UI页面  ## 2 较为复杂数据的推送(命令行数据) ### 2.1 执行命令 Push 一个复杂一些的,一次写入多个指标,而且每个指标添加 TYPE 及 HELP 说明。 推送命令: ```shell cat <<EOF | curl --data-binary @- http://192.168.156.134: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 ``` 指令说明: > /metrics/job/test\_job 和 metrics/job/test\_job/instance/test\_instance ,它们都属于 test\_job,但是它们属于两个指标值,因为 instance 对二者做了区分;具体的可查看数据推送的格式(本博客最上方的小节) 实际操作: ```shell [root@localhost ~] > > test_metrics{label="app1",name="demo"} 100.00 > > > another_test_metrics 123.45 > EOF [root@localhost ~] ``` ### 2.2 查看Pushgateway界面  ### 2.3 进入Prometheus的界面查看  ## 3 大量数据提交(通过写入文件将文件提交) 之前的两种方法,Push 指标数据是通过命令行追加方式,少量数据还凑合,如果需要 Push 的数据比较大时,就不太方便了,这里我们也可以`通过将指标数据写入到文件,然后将文件内容提交` ### 第一步:编写指标数据文件pgdata.txt pgdata.txt文件内容: ```shell http_request_total{code="200",interface="/v1/save"} 276 http_request_total{code="404",interface="/v1/delete"} 0 http_request_total{code="500",interface="/v1/save"} 1 http_request_time{code="200",interface="/v1/core"} 0.122 ``` 实际操作: ```shell [root@localhost ~] [root@localhost data] com.txt test.txt [root@localhost data] http_request_total{code="200",interface="/v1/save"} 276 http_request_total{code="404",interface="/v1/delete"} 0 http_request_total{code="500",interface="/v1/save"} 1 http_request_time{code="200",interface="/v1/core"} 0.122 ~ ~ "pgdata.txt" [新] 8L, 426C 已写入 [root@localhost data] ``` ### 第二步:将文件数据push上去 命令: ```shell curl -XPOST --data-binary @pgdata.txt http://192.168.156.134:9091/metrics/job/app/instance/app-172.30.0.0 ``` 实际操作: ```shell [root@localhost data] [root@localhost data] ``` ### 第三步:在PushGateway UI 页面查看  ## 4 删除某一个指标 ### 4.1 ui界面删除 可以通过ui界面进行删除,如下:  删除后的效果:  ### 4.2 通过命令删除 如删除 job=“test\_job” 组下的所有指标值,可以执行如下命令: ```shell curl -X DELETE http://192.168.156.134:9091/metrics/job/test_job ``` 实际操作: ```shell [root@localhost data] [root@localhost data] ``` 最后的页面效果:  ### 4.3 删除命令的注意事项 `删除 job="test_job" 组下的所有指标值,不包括 {job="test_job", instance="test_instance"} 中的指标值,虽然它们的 job 名称都为 test_job`。 如果想删除该指标值,那么需要执行如下命令: ```shell curl -X DELETE http://192.168.156.134:9091/metrics/job/test_job/instance/test_instance ``` 实际操作: ```shell [root@localhost data] [root@localhost data] ``` 页面效果:  ## 5 PushGateway使用的注意事项 1:`指标值只能是数字类型,非数字类型报错`。 测试: ```shell [root@localhost data] text format parsing error in line 1: expected float as value, got "12.34.56ff" [root@localhost data] ``` 2:`指标值支持最大长度为 16 位,超过16 位后默认置为 0` ```shell [root@localhost data] [root@localhost data] ``` 实际上:**实际获取值 test\_metric{job=“test\_job\_2”} 1234567898765432200000000** >  3:PushGateway 数据持久化操作: `默认 PushGateway 不做数据持久化操作,当 PushGateway 重启或者异常挂掉,导致数据的丢失`,可以`通过启动时添加 -persistence.file 和 -persistence.interval 参数来持久化数据`。 1. `-persistence.file` 表示`本地持久化的文件,将 Push 的指标数据持久化保存到指定文件`, 2. `-persistence.interval` 表示`本地持久化的指标数据保留时间,若设置为 5m,则表示 5 分钟后将删除存储的指标数据`。 ```shell docker run -d -p 9091:9091 prom/pushgateway "-persistence.file=pg_file –persistence.interval=5m" ``` 4:**PushGateway 推送**及 **Prometheus 拉取时间**:设置 Prometheus 每次从 PushGateway 拉取的数据,`并不是拉取周期内用户推送上来的所有数据,而是最后一次 Push 到 PushGateway 上的数据`,**所以推荐设置推送时间小于或等于 Prometheus 拉取的时间,这样保证每次拉取的数据是最新 Push 上来的**。
adouk
2024年7月29日 09:20
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码