Prometheus-PushGateway自定义监控项

文章目录

一、前言

pushgateway相比较exporter是主动向服务器发送请求,pushgateway本身也是一个程序,可以运行在任意节点上(不是必须在被监控端),运行本身没有抓取数据的功能,它只是被动的等待推送过来,然后发现服务端。

二、PushGateway安装

1、GitHub下载解压
PushGateway下载地址:

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

2、运行pushgateway 默认端口是9091,可以使用--web.listen-address更改默认端口

bash 复制代码
tar zxf pushgateway-1.5.0.linux-amd64.tar.gz 
mv pushgateway-1.5.0.linux-amd64 /usr/local/pushgateway
cd /usr/local/pushgateway
./pushgateway --web.listen-address=:19091

PS:前台启动没有报错就可以 ^C 停止掉了,我们配置systemd管理!

3、配置system管理

bash 复制代码
cat > /usr/lib/systemd/system/pushgateway.service << EOF
[Unit]
Description=prometheus pushgateway
After=network.target

[Service]
Type=simple
User=root
Group=root
ExecStart=/usr/local/pushgateway/pushgateway --web.listen-address=:19091
ExecStop=/usr/bin/kill -HUP \$MAINPID

[Install]
WantedBy=multi-user.target
EOF

启动并加入开机自启动

bash 复制代码
systemctl enable pushgateway.service --now
systemctl status pushgateway.service

如上图,查看状态是active (running)表示已经起来了!

4、Prometheus配置文件中,添加PushGateway地址

ymal 复制代码
  - job_name: "prometheus gateway"
    static_configs:
      - targets: ["localhost:19091"]
bash 复制代码
systemctl restart prometheus.service
systemctl status prometheus.service

5、验证

浏览器访问 IP:19091 验证pushgateway页面

验证Prometheus页面

三、PushGateway的使用

1、推送单个样本

bash 复制代码
echo "test_metric 1314521" | curl --data-binary @- http://localhost:19091/metrics/job/test_job

pushgateway页面可以看到推送的数据 如下图所示:

  • test_metric 1314521: 推送的键 值
  • job/test_job:标签job=test_job,多个标签直接往后添加即可
  • data-binary:发送post请求 以二进制数据

四、PushGateway脚本思路

使用shell脚本推送 netstat wait数量

bash 复制代码
#!/bin/bash
pushgateway="localhost:19091"
lable="count_netstat_wait_connections"
count_netstat_wait_connections=$(netstat -an|grep -i wait|wc -l)

if [ ${HOSTNAME} == "localhost" ];then
	echo "主机名不可使用 'localhost'" && exit 5
fi

# 这里定义了两个标签 job=pushgateway-1 hostname=${HOSTNAME}
echo "${lable} $count_netstat_wait_connections"|curl --data-binary @- http://${pushgateway}/metrics/job/pushgateway-1/hostname/${HOSTNAME}

执行脚本 检查是否能推送到pushgateway页面

使用定时任务执执行脚本,每3秒推送一次数据

bash 复制代码
crontab -e
* * * * * /usr/bin/sleep 3; /bin/bash /root/qinzt/pushgateway.sh

prometheus中查询数据

相关推荐
是阿楷啊5 小时前
Java大厂面试场景:音视频场景中的Spring Boot与微服务实战
spring boot·redis·spring cloud·微服务·grafana·prometheus·java面试
xixingzhe21 天前
Prometheus+Grafana监控服务器
grafana·prometheus
牛奶咖啡131 天前
Prometheus+Grafana构建云原生分布式监控系统(十六) _基于Alertmanager的告警机制(一)
云原生·prometheus·prometheus告警整合·prometheus告警配置·prometheus告警规则·prometheus触发告警·告警规则配置实践
码农小卡拉3 天前
Prometheus 监控 SpringBoot 应用完整教程
spring boot·后端·grafana·prometheus
牛奶咖啡133 天前
Prometheus+Grafana构建云原生分布式监控系统(十五)_Prometheus中PromQL使用(二)
云原生·prometheus·集合运算·对查询结果排序·直方图原理·统计掉线的实例·检查节点或指标是否存在
牛奶咖啡134 天前
Prometheus+Grafana构建云原生分布式监控系统(十四)_Prometheus中PromQL使用(一)
云原生·prometheus·promql·计算一个时间范围内的平均值·将相同数据整合查看整体趋势·计算时间范围内的最大最小比率·向量标量的算术运算
牛奶咖啡135 天前
Prometheus+Grafana构建云原生分布式监控系统(十三)_Prometheus数据模型及其PromQL
云原生·prometheus·prometheus数据类型·promql使用场景·promql表达式解析·promql数据类型·监控系统的方法论与指标
AC赳赳老秦6 天前
外文文献精读:DeepSeek翻译并解析顶会论文核心技术要点
前端·flutter·zookeeper·自动化·rabbitmq·prometheus·deepseek
牛奶咖啡137 天前
Prometheus+Grafana构建云原生分布式监控系统(十二)_基于DNS的服务发现
云原生·prometheus·dns·搭建自己的dns服务器·使用bind搭建dns服务器·配置正向解析·基于dns的服务发现
A-刘晨阳8 天前
Prometheus + Grafana + Alertmanager 实现邮件监控告警及配置告警信息
运维·云计算·grafana·prometheus·监控·邮件