安装配置pushgateway

2024-05-11 16:44
文章标签 配置 安装 pushgateway

本文主要是介绍安装配置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 会出现下面的页面

完成

这篇关于安装配置pushgateway的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/980087

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam

wolfSSL参数设置或配置项解释

1. wolfCrypt Only 解释:wolfCrypt是一个开源的、轻量级的、可移植的加密库,支持多种加密算法和协议。选择“wolfCrypt Only”意味着系统或应用将仅使用wolfCrypt库进行加密操作,而不依赖其他加密库。 2. DTLS Support 解释:DTLS(Datagram Transport Layer Security)是一种基于UDP的安全协议,提供类似于

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

安装nodejs环境

本文介绍了如何通过nvm(NodeVersionManager)安装和管理Node.js及npm的不同版本,包括下载安装脚本、检查版本并安装特定版本的方法。 1、安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 2、查看nvm版本 nvm --version 3、安装

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能