阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Nagios监控流量脚本

136次阅读
没有评论

共计 1683 个字符,预计需要花费 5 分钟才能阅读完成。

需求是我们需要对服务器上的流量进行监控,网络上有个流传的 check_traffic.sh,它需要被监控机开启 snmp。但是感觉都使用上了 nagios 还要开 snmp。有点斧子剪刀一起用的感觉,所以就动手写了个监控流量的 shell。

相关阅读

网络监控器 Nagios 全攻略 http://www.linuxidc.com/Linux/2013-07/87067.htm

Nagios 搭建与配置详解 http://www.linuxidc.com/Linux/2013-05/84848.htm

Nginx 环境下构建 Nagios 监控平台 http://www.linuxidc.com/Linux/2011-07/38112.htm

在 RHEL5.3 上配置基本的 Nagios 系统 (使用 Nagios-3.1.2) http://www.linuxidc.com/Linux/2011-07/38129.htm

CentOS 5.5+Nginx+Nagios 监控端和被控端安装配置指南 http://www.linuxidc.com/Linux/2011-09/44018.htm

Ubuntu 13.10 Server 安装 Nagios Core 网络监控运用 http://www.linuxidc.com/Linux/2013-11/93047.htm

脚本如下:

 
#!/bin/sh

usage() { echo "Usage: $0 [-n <eth0>] [-w <tx rx>] [-c <tx rx>]" 1>&2; exit 1; }

foundw=0;
foundc=0;
foundn=0;

for item in $@ ; do
    if [[$foundn == 1 ]]; then
        n=$item;
        foundn=2;
        continue;
    fi
    if [[$foundw == 1 ]]; then
        w1=$item;
        foundw=2;
        continue;
    fi
    if [[$foundw == 2 ]]; then
        w2=$item;
        foundw=3;
        continue;
    fi
    if [[$foundc == 1 ]]; then
        c1=$item;
        foundc=2;
        continue;
    fi
    if [[$foundc == 2 ]]; then
        c2=$item;
        foundc=2;
        continue;
    fi
    if [["$item" == "-w" ]]; then
        foundw=1;
        continue;
    fi
    if [["$item" == "-c" ]]; then
        foundc=1;
        continue;
    fi
    if [["$item" == "-n" ]]; then
        foundn=1;
        continue;
    fi
done

if [-z "${w1}" ] || [-z "${w2}" ] || [-z "${c1}" ] || [-z "${c2}" ] || [-z "${n}" ]; then
    usage
fi

R1=`cat /sys/class/net/$n/statistics/rx_bytes`
T1=`cat /sys/class/net/$n/statistics/tx_bytes`
sleep 1
R2=`cat /sys/class/net/$n/statistics/rx_bytes`
T2=`cat /sys/class/net/$n/statistics/tx_bytes`
TBPS=`expr $T2 - $T1`
RBPS=`expr $R2 - $R1`
TMBPS=`expr $TBPS / 1024 / 128`
RMBPS=`expr $RBPS / 1024 / 128`

if [[$TMBPS -ge $c1]] || [[$RMBPS -ge $c2 ]] ; then
    echo "Critical - current is ${TMBPS}, ${RMBPS}";
    exit 2;
fi
if [[$TMBPS -ge $w1]] || [[$RMBPS -ge $w2 ]] ; then
    echo "WARNING - current is ${TMBPS}, ${RMBPS}";
    exit 1;
fi
echo "OK - current is ${TMBPS}, ${RMBPS}";
exit 0;
 

其中的 w 和 c 的数值单位都是 Mb。

Nagios 的详细介绍 :请点这里
Nagios 的下载地址 :请点这里

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-20发表,共计1683字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中