zabbix实现linux流量变化率监控推荐

监控软件:zabbix需求分析:从系统层面的监控看,现在CPU持续超过80%会报警,流量曲线达到阀值才会报警,但是流量在短时间内起伏很大,肯定是有问题的,目前主要还是依靠人看,肯定有滞后性,如果能定一个规则出来,根据短时间流量变化的百分比,判断并发出报警提醒,就能够提前发现业务异常或者攻击

一、获取流量脚本

#!/bin/bashwhile true;doLN=`ifstat -T 1 1 | sed -n '3p' | awk '{print $(NF-1)}'`OUT=`ifstat -T 1 1 | sed -n '3p' | awk '{print $NF}'`# echo $LN,$OUTecho "$LN+$OUT" | bc /usr/local/zabbix/net.if/totalnet.txtdone

此脚本用ifstat获取当前流量,保存至totalnet.txt中,以便以后引用

(分析众多获取流量工具,最后选择ifstat,因为其不区分网卡,具有通用性,再则数据比较容易处理)

补充:此脚本需后台执行,同时需要安装ifstat工具

二、流量处理脚本

#!/bin/bashn=`cat /usr/local/zabbix/net.if/totalnet.txt`# echo $nold1=`cat /usr/local/zabbix/net.if/1.txt`old2=`cat /usr/local/zabbix/net.if/2.txt`old3=`cat /usr/local/zabbix/net.if/3.txt`old4=`cat /usr/local/zabbix/net.if/4.txt`# echo $n,$old1,$old2,$old3,$old4P1=`echo "scale=2;$n/$old1*100" | bc |awk -F. '{print $1}'`P2=`echo "scale=2;$n/$old2*100" | bc |awk -F. '{print $1}'`P3=`echo "scale=2;$n/$old3*100" | bc |awk -F. '{print $1}'`# echo $P1,$P2,$P3echo $n /usr/local/zabbix/net.if/1.txtecho $old1 /usr/local/zabbix/net.if/2.txtecho $old2 /usr/local/zabbix/net.if/3.txtecho $old3 /usr/local/zabbix/net.if/4.txtif [[ $P1 -gt $1 $P2 -gt $1 $P3 -gt $1 ]];then echo 1 elif [[ $P1 -lt $2 $P2 -lt $2 $P3 -lt $2 ]];then echo 1 echo 0fi

此脚本从total.net中取数据,同之前三次的数据进行对比,如果比值不在预期范围内,则返回1,否则返回0,脚本中$1 $2为预期波动范围,可以根据实际需要在zabbix创建项目过程中指定,在触发器定义中,可以根据返回值定义触发条件

有不足之处,还望大家补充说明

继续期待我的下一个旅行,拿起背包,

zabbix实现linux流量变化率监控推荐

相关文章:

你感兴趣的文章:

标签云: