使用pushgateway监控网路丢包

警告
本文最后更新于 2021-08-16,文中内容可能已过时。

脚本为网上查询结果,只做了稍微的修改,内容不难,请大家食用

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/bin/bash
#
#####################################
#@brief 功能:监控网路丢包率和延迟 -s 是一个ping包的大小 -W 是延迟timeout -c 是发生多少数据包
#@author fcl
#@version 1.0
#@date 2021/08/16
#@log no
#####################################
#shell Env
#ping发包数
c_times=20
#IP列表数组
ip_arr=('172.16.48.213' '172.31.26.157' '10.0.2.158' '10.8.0.238' '10.3.1.45' '10.4.0.210' '10.11.1.1' '120.132.15.180' '106.75.219.4' '10.24.2.254')
for (( i = 0; i < ${#ip_arr[@]}; ++i ))
 do
         result=`timeout 16 ping -q -A -s 200 -W 250 -c $c_times   ${ip_arr[i]}|grep transmitted|awk '{print $6,$10}'`
         if [ -z "$result" ]
         then
               value_lostpk=101
               value_rrt=9999
               echo "ykt_lostpk_gt_jd ${value_lostpk}" | curl --data-binary @- http://10.2.4.59:9091/metrics/job/ykt_icmp/instance/${ip_arr[i]}
               echo "ykt_rrt_gt_jd ${value_rrt}" | curl --data-binary @- http://10.2.4.59:9091/metrics/job/ykt_icmp/instance/${ip_arr[i]}
         else
               lostpk=$(echo $result|awk '{print $1}')
               rrt=$(echo $result|awk '{print $2}')
               value_lostpk=$(echo $lostpk | sed 's/%//g')
               value_rrt=$(echo $rrt |sed 's/ms//g')
               #value_rrt=$(($value_rrt/$c_times))
               value_rrt=$(printf "%.5f" `echo "scale=5;$value_rrt/$c_times"|bc`)
               echo "ykt_lostpk_gt_jd ${value_lostpk}" | curl --data-binary @- http://10.2.4.59:9091/metrics/job/ykt_icmp/instance/${ip_arr[i]}
               echo "ykt_rrt_gt_jd ${value_rrt}" | curl --data-binary @- http://10.2.4.59:9091/metrics/job/ykt_icmp/instance/${ip_arr[i]}
         fi
         echo  ${ip_arr[i]}"==="$value_lostpk"==="$value_rrt
 done
0%