【云原生监控】Prometheus之PushGateway

Prometheus之PushGateway

文章目录

介绍作用

  • PushGateway为Promethus整体监控方案的功能组件之一,并作为一个独立的工具存在。它主要用于Prometheus无法直接拿到监控指标的场景,如监控源位于防火墙之后,Prometheus无法穿透防火墙,目标服务器没有可抓取监控数据的端点等多种情况。在类似的场景中,可通过部署PushGateway的方式解决问题。
  • 当部署该组件后,监控源通过主动发送监控数据到PushGateway,再又Prometheus定时获取信息,实现资源的状态监控。

资源列表

操作系统 配置 主机名 IP
CentOS 7.9 2C4G prometheus-server 192.168.93.101
CentOS 7.9 2C4G node-exporter 192.168.93.102
CentOS 7.9 2C4G grafana 192.168.93.103
CentOS 7.9 2C4G push-gateway 192.168.93.104

基础环境

  • 关闭防火墙
bash 复制代码
systemctl stop firewalld
systemctl disable firewalld
  • 关闭内核安全机制
bash 复制代码
setenforce 0
sed -i "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config
  • 修改主机名
bash 复制代码
hostnamectl set-hostname prometheus-server
hostnamectl set-hostname node-exporter
hostnamectl set-hostname grafana
hostnamectl set-hostname push-gateway

一、部署PushGateway

  • PushGatway可以随便找一台机器单独部署或者和Prometheus或node-exporter部署在一起,用来接收数据

1.1、下载软件包

bash 复制代码
wget https://github.com/prometheus/pushgateway/releases/download/v1.6.1/pushgateway-1.6.1.linux-amd64.tar.gz

1.2、解压软件包

bash 复制代码
[root@push-gateway ~]# tar -zxvf pushgateway-1.6.1.linux-amd64.tar.gz -C /usr/local/bin/ pushgateway-1.6.1.linux-amd64/pushgateway --strip-components=1

1.3、编辑配置systemctl启动文件

bash 复制代码
[root@push-gateway ~]# cat > /etc/systemd/system/pushgatway.service <<EOF
[Unit]
Description=Pushgateway
After=network.target

[Service]
ExecStart=/usr/local/bin/pushgateway  \
  --web.listen-address=:9091 \
  --persistence.file=/prometheus/data/pushgatway.log \
  --persistence.interval=5m \
  --log.level=info \
  --log.format=json

[Install]
WantedBy=multi-user.target
EOF

1.4、创建日志目录

bash 复制代码
[root@push-gateway ~]# mkdir -p /prometheus/data/

1.5、加载并启动

bash 复制代码
[root@push-gateway ~]# systemctl daemon-reload 
[root@push-gateway ~]# systemctl enable pushgatway.service --now

1.6、监控端口

  • PushGateway默认监听9090端口
bash 复制代码
[root@push-gateway ~]# netstat -anpt | grep 9091
tcp6       0      0 :::9091                 :::*                    LISTEN      8307/pushgateway

1.7、访问PushGateway

二、 配置Prometheus抓取PushGateway数据

bash 复制代码
[root@prometheus-server ~]# vim /usr/local/prometheus/prometheus.yml
# 添加如下内容
  - job_name: "prometheus-pushgateway"  # 监控的名字
      honor_labels: true   # 解决pushgateway组件的标签和prometheus服务标签冲突,false(默认),将标签加上前缀"exporter_",不覆盖。true,覆盖原来的标签
      static_configs:  # 静态配置发现目标
        - targets: ["192.168.93.104:9091"]  # 监控的地址
bash 复制代码
# 刷新Prometheus服务
[root@prometheus-server ~]# curl -X POST http://192.168.93.101:9090/-/reload
  • 浏览器查看,Prometheus抓取PushGatway数据联通了,但是还没有数据

三、被监控服务推送数据到PushGateway

bash 复制代码
[root@node-exporter ~]# echo "user_num 22" | curl --data-binary @-  http://192.168.93.104:9091/metrics/job/xinjizhiwa_user/instance/192.168.93.102


# 参数说明
echo "key value" | curl --data-binary @- http://pushgatway的ip:端口号/metrics/job/自定义job名称/instance/被监控节点的ip地址

四、查看是否推送数据

  • 查看PushGateway是否有数据

  • 查看PushGateway是否把数据推送到Prometheus

相关推荐
liux35285 小时前
基于kubeadm部署Kubernetes 1.26.4 集群指南
云原生·容器·kubernetes
Zfox_11 小时前
CANN Catlass 算子模板库深度解析:高性能 GEMM 融合计算、Cube Unit Tiling 机制与编程范式实践
docker·云原生·容器·eureka
农民工老王12 小时前
K8s 1.31 私有化部署实战:从 Calico 崩溃到 NFS 挂载失败的排坑全记录
云原生·kubernetes
灰子学技术12 小时前
istio从0到1:如何解决分布式配置同步问题
分布式·云原生·istio
小马爱打代码12 小时前
ZooKeeper:入门实战
分布式·zookeeper·云原生
logocode_li14 小时前
OCI/CRI 双标准下:从 dockerd 到 containerd 的 K8s 运行时迭代史
docker·云原生·容器·k8s
是阿楷啊14 小时前
Java大厂面试场景:音视频场景中的Spring Boot与微服务实战
spring boot·redis·spring cloud·微服务·grafana·prometheus·java面试
天才奇男子1 天前
HAProxy高级功能全解析
linux·运维·服务器·微服务·云原生
人间打气筒(Ada)1 天前
k8s:CNI网络插件flannel与calico
linux·云原生·容器·kubernetes·云计算·k8s
江畔何人初1 天前
pod的内部结构
linux·运维·云原生·容器·kubernetes