安装配置pushgateway

环境

 主机名                          服务器IP                   系统                                说明

Ubuntu -1                   192.168.1.144        Ubuntu.20.04               docker安装Prometheus

 docker                       192.168.1.140        centos7                        

1、pushgateway简介

pushgateway是Prometheus生态中一个重要工具,使用他的原因主要是:

  • Prometheus采用pull模式,可能由于不在一个子网或者防火墙原因导致Prometheus无法直接拉取各个target数据。
  • 在监控业务数据的时候,需要将不同数据汇总,由Prometheus统一收集。
  • 当exporter不能满足需要时,也可以通过自定义(python、shell、Java)监控我们想要的数据。

由于以上原因,不得不使用pushgateway,但在使用之前,有必要了解一下它的一些弊端:

  • 将多个节点数据汇总到pushgateway,如果pushgateway挂了,受影响比多个target大。
  • Prometheus拉取状态up只针对pushgateway,无法做到对每个节点有效。
  • pushgateway可以持久化推送给它的所有监控数据。

因此,即使你的监控已经下线,Prometheus还会拉取到旧的监控数据,需要手动清理pushgateway不要的数据。

2、docker方式安装pushgateway

我是在Prometheus服务器端安装的

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

3、在浏览器查看

访问本机IP加9091端口

4、对Prometheus配置文件进行添加内容

在Prometheus服务器端打开配置文件添加以下配置

vim prometheus/prometheus.yml

  - job_name: pushgateway
    honor_labels: true #加上此配置exporter节点上传数据中的一些标签将不会被pushgateway节点的相同标签覆盖。
    static_configs:
      - targets: ['192.168.1.144:9091']
        labels:
          instance: pushgateway

5、重新加载配置文件

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

在浏览器访问Prometheus服务器的IP加9090端口然后选择status然后选择targets查看

6、curl方式向pushgateway推送监控数据

使用curl:

正常情况我们会使用Client推送数据到pushgateway但是我们还可以curl调用API来管理,例如:

向{job="some_job"}添加单条数据:

echo "some_metric 3.14" | curl --data-binary @- http://192.168.1.144:9091/metrics/job/some_job

添加更多更复杂数据,通常数据会带上instance(some_instance为instance名)表示来源位置:

cat <<EOF | curl --data-binary @- http://192.168.1.144:9091/metrics/job/some_job/some_job/instance/some_instance

# TYPE some_metric counter

some_metric{label="val1"} 42

# TYPE another_metric gauge

# HELP another_metric just an example.

another_metric 2398.283

EOF

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

curl -X DELETE http://192.168.1.144:9091/metrics/job/some_job/instance/some_instance

删除某个组下的所有数据:

curl -X DELETE http://192.168.1.144:9091/metrics/job/some_job

命令解释: echo "some_metric 3.14" | curl --data-binary @- http://192.168.1.144:9091/metrics/job/some_job

  1. echo "some_metric 3.14":这部分命令使用echo命令创建一个包含指标数据的字符串。在这个例子中,指标名称是some_metric,其值是3.14

  2. |:这是一个Linux命令中的管道符号,它将前一个命令的输出作为后一个命令的输入。

  3. curl --data-binary @- http://192.168.1.144:9091/metrics/job/some_job:这部分命令使用curl命令将数据发送到指定的URL。

  4. --data-binary @-选项告诉curl命令从标准输入中读取数据,并将其作为二进制数据发送。@-表示读取标准输入。

  5. http://192.168.1.144:9091/metrics/job/some_job是目标URL,其中包含Prometheus服务器的地址和端口以及要存储指标数据的job名称。

推送完数据后在浏览器刷新可以看的我们推送的数据

7、python方式向pushgateway推送监控数据我在140机器安装配置的

注:可以在Prometheus服务器配置也可以在被监控端配置

安装Prometheus_client模块

安装pip

yum install -y python3-pip                #centos安装

apt install -y python3-pip                 #ubunt安装

通过pip安装Prometheus_client

pip3 install -y prometheus_client

创建一个python脚本加入以下内容

vim py.py

from prometheus_client import CollectorRegistry, Gauge, push_to_gateway

registry = CollectorRegistry()
g = Gauge('job_last_success_unixtime', 'Last time a batch job successfully finished', registry=registry)
g.set_to_current_time()
push_to_gateway('http://192.168.1.144:9091', job='batchA', registry=registry)

注:如果是本机将http://192.168.1.144:9091改为localhost:9091

加载脚本文件

在浏览器查看

8、监控data数据目录下的文件数量

注:我是配置在140服务器上的centos系统

shell 脚本:

cat >>/opt/file_num.sh<<"EOF"

#!/bin/sh

FILENUM=`ls -l /data |sed 1d| wc -l`

echo "data_file_num ${FILENUM}" | curl --data-binary @- http://192.168.1.144:9091/metrics/job/test_job/instance/test

EOF

解释:

  1. 使用 ls -l /data 命令列出 /data 目录下的文件信息。
  2. 使用 sed 1d 命令删除列表中的第一行(即目录总计)。
  3. 使用 wc -l 命令统计剩余行数,即文件数量。
  4. 将输出结果与字符串 "data_file_num " 拼接,形成指标 "data_file_num 文件数量"。
  5. 使用 curl 命令将指标数据发送到 http://192.168.1.144:9091/metrics/job/test_job/instance/test。

配置定时任务:

crontab -e

*/1 * * * * /bin/sh /opt/file_num.sh >/dev/null 2>&1

如果是Ubuntu系统按下面的

9、配置告警规则(在Prometheus端配置)

例如:当data目录下的文件数量超过9,报警出来

因为之前我在Prometheus.yaml文件中加了一个触发器文件

所以在rules文件中添加一个mongodb的触发器文件即可

在Prometheus端创建一个mongodb的yml文件添加输入以下触发器内容

vim pushgateway.yml

groups:
- name: pushigateway
  rules:
  - alert: DataFileNum
    expr: data_file_num > 9
    for: 0m
    labels:
      severity: warning
    annotations:
      summary: 'data数据目录文件过多'
      description: "data数据目录文件数>9,当前数量:{{ $value }}"

10、检查更新

检查配置

docker exec -it prometheus promtool check config /etc/prometheus/prometheus.yml

重新加载配置

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

在浏览器输入Prometheus端的IP加9090端口选择Alerts查看

11、添加到grafana图形化

进入grafana页面 在左上角选择 Starred 然后在右上角选择New 然后选择New dashboard 会出现下面的页面

完成

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/10176.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

KAN核心团队震撼力作!MIT华人用AI首次发现物理学全新方程 | 最新快讯

新智元报道 编辑&#xff1a;Aeneas 好困 刚刚提出了 KAN 的 MIT 物理学家 Max Tegmark 和北大校友刘子鸣&#xff0c;又有一项重磅研究问世了&#xff01;团队发现&#xff0c;它们用 AI 发现了物理学中的新方程&#xff0c;从此&#xff0c;AI 很可能被引入物理学研究领域&am…

东芝移动硬盘是固态还是机械硬盘?数据丢失怎么办

东芝移动硬盘凭借出色的性能和稳定性&#xff0c;在市场上备受赞誉。那么&#xff0c;如何判断自己手中的东芝移动硬盘是固态硬盘还是机械硬盘呢&#xff1f;本文将指导您如何进行这一判断&#xff0c;并深入探讨固态硬盘与机械硬盘之间的区别。同时&#xff0c;针对数据丢失这…

RustDesk 自建服务器部署和使用教程

RustDesk 是一个强大的开源远程桌面软件&#xff0c;是中国开发者的作品&#xff0c;它使用 Rust 编程语言构建&#xff0c;提供安全、高效、跨平台的远程访问体验。可以说是目前全球最火的开源远程桌面软件了&#xff0c;GitHub 星星数量达到了惊人的 64k&#xff01; 与 Team…

【Linux】基础命令,文件处理,用户,vim编辑器,文件压缩

常用命令及参数&#xff1a;dir表示文件夹&#xff0c;file表示文件&#xff08;file可表示其他目录下的文件&#xff09; pwd命令&#xff1b;查看当前所属文件夹&#xff08;print working directory&#xff09; ls [选项] dir&#xff1b;查看当前、指定文件夹目录内容&am…

切换tomcat使用的jdk版本

改一下这俩地方 用这个启动时候 就可以使用对应的jdk版本了 java的classpath内容如下&#xff08;换成自己的&#xff09;&#xff1a; E:\A_code\environment\tomcat\Tomcat9.0\bin\bootstrap.jar;E:\A_code\environment\tomcat\Tomcat9.0\bin\tomcat-juli.jar

存储卡如何下载歌曲?

作为存储芯片及存储卡的原厂&#xff0c;我们了解客户关于如何在存储卡上下载歌曲的疑问。在这篇文章中&#xff0c;我们将详细解析存储卡的使用方法和歌曲下载步骤&#xff0c;帮助客户顺利完成歌曲下载并存储到存储卡中。 1. 选择合适的存储卡 首先&#xff0c;确保您选择的存…

sql-labs(11-20)

1.less-11 1.判断类型 根据测试在使用 " 不会报错&#xff0c; 会报错&#xff0c;所以他是字符型的并且被单引号闭合&#xff0c;而且只有用户 登陆成功才会显示数据。所以先尝试报错注入 2.爆数据库 and updatexml(2,concat(0x7e,(select database()),0x7e),2)-- 3.爆数…

图文教程 | 2024年最新VSCode下载和安装教程c/c++环境配置,json文件详解,实用插件分享

前言 &#x1f4e2;博客主页&#xff1a;程序源⠀-CSDN博客 &#x1f4e2;欢迎点赞&#x1f44d;收藏⭐留言&#x1f4dd;如有错误敬请指正&#xff01; 由于重装电脑&#xff0c;需要重新安装VsCode&#xff0c;记录安装配置过程。 一、VSCode下载 官网地址&#xff1a; Vis…

【激活函数--中】激活函数和阶跃函数的可视化及对比

文章目录 一、Python中绘制阶跃函数的图形二、实现和可视化Sigmoid函数2.1 Python实现2.2 可视化Sigmoid函数 三、比较Sigmoid函数与阶跃函数3.1 Sigmoid函数与阶跃函数的差异3.2 Sigmoid函数与阶跃函数的共同点 一、Python中绘制阶跃函数的图形 在Python中实现阶跃函数的代码…

ZFS 文件系统结构及 ZFS 文件系统数据恢复

ZFS是一种革命性的文件系统&#xff0c;它遵循完全不同的文件系统管理方法&#xff0c;同时提供目前其他文件系统无法提供的新功能和优势。ZFS 可靠、可扩展且易于管理。 它放弃了卷的概念&#xff0c;从而摆脱了传统的文件系统原则。另外&#xff0c;ZFS 提供更复杂的存储池&…

公检法部门涉密网文件导出,哪种方案最安全适合?

公检法是我国政法机关的重要组成部分&#xff0c;由于公检法涉及重要案件信息和个人隐私数据&#xff0c;因此&#xff0c;在内部多采用网络隔离技术将网络隔离为两个及以上网络区域&#xff0c;如涉密网、办公网、外联区等。 公检法涉密网是指公安机关、检察机关和法院等执法机…

Git操作GitHub全记录

目录 一. GitHub ssh-key配置二. 添加GitHub仓库Git提交本地代码到Github仓库远程克隆仓库到本地的文件夹再上传本地的无.git的文件夹上传到远程仓库 三. Git删除Github仓库或某个文件或文件夹1.删除已有Github仓库2.删除Github中的某个文件或文件夹①如果没有建立本地库或者克…

第12节 第二种shellcode编写实战(1)

我最近在做一个关于shellcode入门和开发的专题课&#x1f469;&#x1f3fb;‍&#x1f4bb;&#xff0c;主要面向对网络安全技术感兴趣的小伙伴。这是视频版内容对应的文字版材料&#xff0c;内容里面的每一个环境我都亲自测试实操过的记录&#xff0c;有需要的小伙伴可以参考…

AI技术构建本地知识库的流程

构建本地知识库是一个复杂的过程&#xff0c;涉及以下几个步骤&#xff0c;使用大模型技术构建本地知识库是一种很有前途的方法。随着大模型技术的不断发展&#xff0c;我们可以期待本地知识库将变得更加智能、高效和准确。北京木奇移动技术有限公司&#xff0c;专业的软件外包…

设计模式1——初步认识篇

设计模式1——初步认识篇 一、先让我们浅聊一下面向对象和设计模式。 说起设计模式&#xff0c;我第一次听到它&#xff0c;是在学习面向对象的时候。那么什么是面向对象&#xff0c;什么是设计模式&#xff0c;而且设计模式和面向对象又有什么关系呢&#xff1f; 1、什么是面…

你不知道的ConstraintLayout高级用法

文章目录 1. ConstraintLayout介绍2. 高级用法2.1 Gone Margin2.2 偏移2.3 居中2.4 尺寸约束2.5 链2.6 角度定位&#xff08;圆形定位&#xff09; 3. 工具类3.1 Guideline&#xff08;参考线&#xff09;3.2 Barrier&#xff08;栅栏&#xff09;3.3 Group&#xff08;组&…

信息与未来2017真题笔记

T1. 龟兔赛跑 题目描述 兔子又来找乌龟赛跑啦&#xff01;同样的错误兔子不会犯两次&#xff0c;所以兔子提出赛跑的时候&#xff0c;乌龟就觉得这场比赛很不公平。于是兔子进一步放宽了条件&#xff0c;表示他可以在比赛开始以后先睡 t t t 分钟再开始追乌龟。 乌龟这下没…

YOLOv5改进 | 注意力机制 | 用于移动端的高效坐标CA注意力机制

在深度学习目标检测领域&#xff0c;YOLOv5成为了备受关注的模型之一。本文给大家带来的是能用于移动端的高效坐标CA注意力机制。文章在介绍主要的原理后&#xff0c;将手把手教学如何进行模块的代码添加和修改&#xff0c;并将修改后的完整代码放在文章的最后&#xff0c;方便…

答辩PPT不会做?试试这些AI工具,一键生成

在我原本的认知里面&#xff0c;答辩PPT是要包含论文各个章节的&#xff0c;在答辩时需要方方面面都讲到的&#xff0c;什么摘要、文献综述、实证分析、研究结果样样不落。但是&#xff0c;这大错特错&#xff01; 答辩PPT环节时长一般不超过5分钟&#xff0c;老师想要的答辩P…