四、PushGateWay

目录

一、概述

1、优点:

2、缺点:

二、Pushgateway 架构

三、pushgataway 安装

四、向pushgateway推送数据

1、推送路径的URL 部分定义为

2、在推送的数据部分。格式定义如下:

3、测试项pushgateway推送数据

4、使用grafana展示图形


一、概述

        Pushgateway是Prometheus的一个组件,prometheus server 默认是通过Exporter 主动获取数据,

        Pushgateway则是通过exporter主动方式推送数据到Pushgateway,再由Prometheus 主动去拉取Pushgateway数据,用户可以写一个自定义的监控脚本把需要监控的数据发送给Pushgateway。

1、优点:

        Prometheus 默认采用定时pull 模式拉取targets数据,但是如果不在一个子网或者防火墙,prometheus就拉取不到targets数据,所以可以采用各个target往pushgateway上push数据,然后prometheus去pushgateway上定时pull数据。

        在监控业务数据的时候,需要将不同数据汇总, 汇总之后的数据可以由pushgateway统一收集,然后由 Prometheus 统一拉取,起到给Prometheus 减压的作用。

自定义采集指标简单。

2、缺点:

        Prometheus拉取状态只针对 pushgateway, 不能对每个节点都有效。

        Pushgateway出现问题,整个采集到的数据都会出现问题。

        Pushgateway 可以持久化推送给它的所有监控数据。因此,即使你的监控已经下线,prometheus 还会拉取到旧的监控数据,需要手动清理 pushgateway 不要的数据。

二、Pushgateway 架构

  • Pushgateway就是个数据中转站。提供API,支持数据生产者随时将数据推送过来。
  • pushgateway提供exporter功能,在prometheus server 拉取数据时,将自己保存的数据反馈给prometheus server端

三、pushgataway 安装

下载地址:https://github.com/prometheus/pushgateway/releases/download/v1.6.2/pushgateway-1.6.2.linux-amd64.tar.gz
移动到opt/并修改名字
[root@localhost prometheus]# tar -zxvf pushgateway-1.6.2.linux-amd64.tar.gz
[root@localhost prometheus]# mv pushgateway-1.6.2.linux-amd64 pushgateway

授权
[root@rabbitmq_2 prometheus]# chown -R prometheus:prometheus pushgateway
配置pushgateway.service 启动脚本
[root@rabbitmq_2 pushgateway]# cd /usr/lib/systemd/system
[root@rabbitmq_2 system]# vim pushgateway.service
[Unit]
Description=Pushgetway
After=network.target
[Service]
Type=simple
Group=prometheus
ExecStart=/opt/prometheus/pushgateway/pushgateway
Restart=on-failure
[Install]
WantedBy=multi-user.target

[root@rabbitmq_2 pushgateway]# systemctl start pushgateway.service 
[root@rabbitmq_2 pushgateway]# 
[root@rabbitmq_2 pushgateway]# systemctl status pushgateway.service
[root@rabbitmq_2 pushgateway]# netstat -tnlp |grep 9091
tcp6       0      0 :::9091                 :::*                    LISTEN      4653/pushgateway 
[root@rabbitmq_2 pushgateway]# ps -ef |grep pushgateway
root       4653      1  0 11:04 ?        00:00:00 /opt/prometheus/pushgateway/pushgateway
root       4836   1952  0 11:07 pts/0    00:00:00 grep --color=auto pushgateway
http://192.168.134.133:9091/  可查看。端口默认是9091

2、配置prometheus 
[root@rabbitmq_2 prometheus]# vim prometheus.yml

  - job_name: "pushgateway"
    scrape_interval: 30s
    honor_labels: true  //加上此配置,exporter节点上传数据中的一些标签将不会被pushgateway节点的相同标签覆盖 
    static_configs:
    - targets: ["localhost:9091"]
      labels:
        instance: pushgateway
保存退出 然后重载prometheus
curl -x POST http://localhost:9090/-/reload

四、向pushgateway推送数据

1、推送路径的URL 部分定义为

/metrics/job/<JOB_NAME>{/<LABEL_NAME>/<LABEL_VALUE>}
job是必须参数,label_name部分是可选的,URL中的job和label组合唯一标识pushgateway中Group

2、在推送的数据部分。格式定义如下:

metric_name{lable_name="label_value",...}  value

3、测试项pushgateway推送数据

使用curl 方式

推送一条
[root@rabbitmq_2 prometheus]# echo "my_metric 2022" | curl --data-binary @- http://192.168.134.133:9091/metrics/job/test-job
在推送一条将值改外为2023
[root@rabbitmq_2 prometheus]# echo "my_metric 2023" | curl --data-binary @- http://192.168.134.133:9091/metrics/job/test-job
删除推送的数据
[root@rabbitmq_2 prometheus]# curl -X DELETE http://192.168.134.133:9091/metrics/job/test-job

在prometheus中查看是否获取到数据

 

 推送多条数据到pushgateway

#  --data-binary 表示发送二进制数据,注意:它是使用POST方式发送的!
cat <<EOF | curl --data-binary @- http://192.168.134.133:9091/metrics/job/some_job/instance/some_instance
  # TYPE some_metric counter
  some_metric2{label="val1"} 42
  # TYPE another_metric gauge
  # HELP another_metric Just an example.
  another_metric 2398.283
EOF
[root@rabbitmq_2 prometheus]# curl -X DELETE http://192.168.134.133:9091/metrics/job/some_job/instance/some_instance

案例演示

1、监控/opt/prometheus文件数量
[root@rabbitmq_2 prometheus]# cat test.sh 
#!/bin/sh
filenum=$(ls -l /opt/prometheus/ | sed 1d |wc -l)
echo "prometheus_file_num ${filenum}" | curl --data-binary @- http://192.168.134.133:9091/metrics/job/test_job/instance/test
添加到定时任务
[root@rabbitmq_2 prometheus]# crontab -e   让他每分钟执行下
*/1 * * * * /bin/sh /opt/prometheus/test.sh >/dev/null 2>&1
 >/dev/null 将标准输出重定向到 /dev/null,即丢弃所有输出。
 2>&1 将标准错误输出也重定向到标准输出,即一并丢弃所有输出。

--------------------------配置告警规则
例如当/opt/prometheus/ 的文件数量超过7个 就报警出来
1、先创建一个监控规则的目录,注意:创建的文件一定要是prometheus 用户的权限。
[root@rabbitmq_2 prometheus]# mkdir rules

2、创建规则
[root@rabbitmq_2 rules]# vim test.yml
groups:
  - name: pushgateway
    rules:
      - alert: 文件数量告警
        expr: prometheus_file_num > 7
        for: 30s
        labels:
          severity: warning
        annotations:
          summary: 'prometheus文件数量过多'
          description: "prometheus目录下文件数量>7,当前数量:{{ $value }}"

3、在prometheus的yaml文件中添加这个规则文件
rule_files:
  - "alert.yml"
  - "/opt/prometheus/prometheus/rules/test.yml"

4、重载下prometheus

4、使用grafana展示图形

 

输入名字 prometheus_file_num

 

  • 20
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

繁华依在

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值