在工作中遇到一个客户,提了一个需求,就是要监控总流量到,开始以为是历史总流量,就开始给他搞历史总流量,其实历史总流量比较好搞,只要在zabbix的模板上修改一下就行 只需要在主机网卡通用模板[主动]这个模板里面进行修改就可以了,这里建议最好先克隆出一个模板,在克隆的模板里进行修改就可以了 这里我克隆了上面的模板,克隆后的模板命名我就命为主机网卡通用模板[流量]的模板 ,然后再在对这个模板里进行更改。 点击自动发现规则 选择创建监控项原型 在创建监控项原型这里,名称可以自行取名 然后选择键值 选择键值时,注意下面这个键值 net.if.total[if,<mode>] 这个键值的解释是网络接口上传下载的流量总和,返回整数 这不就一下子就把问题解决了,只需要 把if,<mode>换成网卡名不就可以进行监控网卡的总流量了 单位用B,更新间隔填写1d,也就是一天。

因为这样计算的的流量是每天都进行累加的,并不会每天清零,所以还需要在进程进程总添加简单更改的规则,简单更改的规则就可以对两次数值进行相减,的到一整天的总流量。 后面在客户的环境下测试时,客户还想要知道每天的流量增长趋势并添加告警,比如当某块网卡达到50G的流量就发出一个告警。那这样的计算方式显然就不行了啊,每天就只有一个值,无法看到每天的流量增长趋势,更无法进行告警啊。看来得想过别的办法了。

是不是觉得用模板有点难搞定了,想要做脚本来搞这东西了,不完全不用,其实用模板也可已搞定,比起脚本的方式更简单更方便。

捋一下思路,首先你要获得每天的初始的总流量(每天的初始流量要固定,可以在每天固定的一个时间获取),然后在每隔一段时间刷新一下现在的总流量,假设每天晚上十二点获取初始流量,现在的总流量减去十二点获取的初始总流浪,就得到今天到现在为止网卡的总流量。 首先,我们要先获取一天的总流量 创建一个监控项原型 依然用上面的那个键值,不过这次不是添加进程,而是添加自定义时间间隔,添加灵活类型,间隔60s,时间1-7,00:00-00:05,这样就让该键值固定在每天的晚上12点获取当天的初始总流量

再创建一个监控项,用来获取保存当前时间的总流量 既然要获取现在的总流量,肯定要用刚才的键值,但是刚才的键值已经用过了,再使用刚才的键值肯定无法添加监控项,所以请看清楚我所写的 我写的键值里面是有上引号的,这样就区分了两个键值就可以添加监控项了。 现在就差总流量了,今日总流量=现在总流量-初始总流量 创建一个新的监控项用来存放今日总流量 这里类型选择可计算的 可计算的键值可以自定义 公式用现在总流量-初始总流量