shell脚本监控业务目录【基于Prometheus的pushgateway】

背景:生产环境需要数据跨网需求,因数据处理程序不完善,经常会出现数据文件拥堵在业务目录中,导致业务系统的数据更新不及时,给业务系统造成了一定影响。

一,搭建Prometheus监控平台。【此处不再过多介绍,可参考其他文章部署】

二,业务机器安装pushgateway。

tar -zxvf pushgateway-1.4.2.linux-amd64.tar.gz

cd pushgateway-1.4.2.linux-amd64

sh start.sh

netstat -uptln |grep 9091

三,Prometheus server端配置pushgateway,并添加告警配置。

vi prometheus.yml                                   Prometheus配置文件配置

- job_name: "pushgateway"

    honor_labels: true

    static_configs:

      - targets: ["192.168.48.130:9091"]     //此处为被监控端ip+port

          instance: pushgateway

    vi alert_rules.yml               Prometheus告警文件配置

  

- alert: in目录中的文件数,每分钟

    expr: in > 100            #in  目录名,自定义即可,此处为每30s,如果目录内文件大于100即告警

    for: 30s

    labels:

      severity: warning

    annotations:

      summary: "文件拥堵"

      description: "文件拥堵,当前目录拥堵文件数:{{ $value }}"

./promtool check config prometheus.yml         #检查配置Prometheus配置文件格式

执行Prometheus脚本,重启Prometheus server端。sh stop.sh  ;sh start.sh

四,访问被监控端pushgateway web页面

http://192.168.48.130:9091

【备注:文件没有超过告警限制数前pushgateway默认web界面是空的。】

如图:

五,编写shell脚本。用于监控业务目录。

#!/bin/bash

while true

do 

fileName1=`ls -l /data/ |grep "^_" |wc -l`

#统计业务目录data目录下的文件数量

if [ $fileName1 -gt 100 ];then

#判断数量是否大于100,如果大于100,则请求pushgateway地址,将数据发送至web页面。

echo " in $fileName1" |curl  --data-binary @- http://192.168.48.130:9091/metrics/job/test_job

fi

sleep 30s

#30s查询一次

done

#循环结束

给予脚本执行权限

chmod +x test.sh

后台运行脚本

nohup ./text.sh &

六,本地创建101个文件,模拟告警测试。

touch /data/{1..101}

web页面访问查看:192.168.48.130:9091

 可以访问Prometheus server端的web页面,查看对应监控目录的文件数量折线图。

可以访问Prometheus 的告警界面,查看对应目录的告警显示图。

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值