nagios监控流量脚本

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

#!/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。

时间: 2024-09-14 16:50:06

nagios监控流量脚本的相关文章

Nagios监控WEB服务的脚本

最近发现Nagios自带的监控WEB 80端口的脚本不太好用,服务已经无法提供了,还是没报警,所以就自己写了一个! Nagios是根据脚本的返回值,来判断服务是否正常的.返回值对应的报警级别如下 0OK 1Warning 2Cirital 3Unknown OthersUnknown 所以,想让Nagios认为你的服务是OK的, 要返回0给Nagios.其它的相对应,返回值可以使用return或者exit来返回! 本栏目更多精彩内容:http://www.bianceng.cnhttp://ww

Nagios监控Windows的网卡流量

Nagios监控Windows的网卡流量 使用/usr/local/nagios/libexec/中的check_traffic.sh,不但可以监控Linux的网卡流量,也可以监控Windows服务器的流量. 1 Check_traffic.sh用法用法   [root@oracle libexec]#/usr/local/nagios/libexec/check_traffic.sh -h Usage: ./check_traffic.sh [ -v ] [ -6 ] [ -r ] -V 1|

shell脚本监控linux系统内存使用情况的方法(不使用nagios监控linux)_linux shell

一.安装linux下面的一个邮件客户端msmtp软件(类似于一个foxmail的工具) 1.下载安装: 复制代码 代码如下: # tar jxvf msmtp-1.4.16.tar.bz2# cd msmtp-1.4.16# ./configure --prefix=/usr/local/msmtp# make# make install  2.创建msmtp配置文件和日志文件(host为邮件域名,邮件用户名test,密码123456) 复制代码 代码如下: # vim ~/.msmtprcac

《构建高可用Linux服务器 第3版》—— 1.6 用开源工具Nagios监控Linux服务器

1.6 用开源工具Nagios监控Linux服务器 1.6.1 CentOS 5.8下的监控工具 在开源系统CentOS 5.8下有许多监控工具,比如实时监控系统状态的Nagios,还有监控网络流量的Cacti和MRTG,以及我个人比较喜欢的NTOP和Iptraf:另外,在CentOS 5.8下也有许多强大的命令行可用于监控系统状态,大家可以在Google上搜索以了解其具体用法. 1.6.2 Nagios应该监控的服务器基础选项 经过工作实践,我们认为Nagios应该监控服务器的参数有如下几个方

如何用 Nagios 监控通用服务

Nagios内置了很多脚本来监控服务.本篇会使用其中一些来检查通用服务如MySql.Apache.DNS等等. 为了保证本篇集中在系统监控,我们不会在这里配置主机组或者模板,它们已经在 前面的教程中覆盖了,它们可以满足需要了. 在命令行中运行Nagios 通常建议在添加到Nagios前,先在命令行中运行Nagios服务检测脚本.它会给出执行是否成功以及脚本的输出将会看上去的样子. 这些脚本存储在 /etc/nagios-plugins/config/ ,可执行文件在 /usr/lib/nagio

nagios监控使用pnp4nagios自定义模板画图实例

现在使用zabbix的人很多,不过我觉得如果服务器监控数量不多,老牌监控系统nagios还是很不错的.nagios报警功能非常强大,而且程序小巧,资源占用小.nagios默认不支持画图,可以搭配cacti,不过搭建比较复杂.个人还是习惯用pnp4nagios. nagios和pnp4nagios的一键安装脚本参考我的github:https://github.com/zhangnq/nagios/tree/master/setup pnp4nagios默认图非常不美观,如果监控项中有多个数据项,

nagios监控环境搭建

    nagios监控环境搭建   1.目录 2. 相关环境 jk1 192.168.199.110 CentOS 6.5 x86_64 jk2 192.168.199.184 CentOS 6.5 x86_64  nagios 4.0.8  lnamp环境  3. 部署规划 Nagios主节点需要安装: nagios  nagios-plugin  nrpe  php  apache  Nagios从节点需要安装: nagios-plugin  nrpe  安装路径规划 项 值 nagios

linux中利用nagios监控机房温度

曲线救国方式,用交换机的温度来判断空调是否断电. 1.expect交互登录交换机读取温度值  代码如下 复制代码 [root@nagios opt]# cat 123.exp #!/usr/bin/expect -f set user user set passwd password spawn telnet 192.168.0.254 expect "Username:" send -- "$userr" expect "Password:"

Linux下Nagios监控linux+windows的安装与配置

一.Nagios简介 Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知. Nagios原名为NetSaint,由Ethan Galstad开发并维护至今.NAGIOS是一个缩写形式: "Nagios Ain't Gonna Insist On Sainthood" Sainthood 翻译为圣徒