zabbix功能强大,不得不提。原计划使用其自带的calculate功能汇总host_group的网卡流量,如下:
但数据获取结果和实际相差很大(不是一般大,很离谱的大),所以只能通过脚本来获取,脚本如下:
#/bin/bash
#Descript:calculate group traffic
qzqm_list="192.168.1.101 192.168.1.102"
jsqm_list="172.16.100.101 172.16.100.102 172.16.100.103"
function get_data() {
traffic=0
trac_dire=$1
for host in $host_list
do
# echo $host
case $trac_dire in
inband)
command="/sbin/zabbix_get -s $host -k net.if.in[\"${host}\"]"
;;
outband)
command="/sbin/zabbix_get -s $host -k net.if.out[\"${host}\"]"
;;
*)
echo "destination errot"
exit 5
esac
# echo $command
trac=$(eval $command)
# echo $trac
traffic=$[traffic+trac]
done
echo $traffic
}
group=$1
direct=$2
case $group in
fujian)
host_list=$qzqm_list
get_data $direct
;;
jiangsu)
host_list=$jsqm_list
get_data $direct
;;
*)
echo "please check host group and directory"
exit 4
esac还是通过zabbix_get工具获取的各主机流量,再进行计算,执行结果如下:
和每台主机获取到的流量再进行计算的还是比较接近的。
如果有朋友知道,如何通过使用自带calculate方法准确汇总流量,还望留言指导。
本文出自 “11414123” 博客,转载请与作者联系!
原文地址:http://11424123.blog.51cto.com/11414123/1764407