zabbix使用ifstat工具来自定义获取网卡流量

1、获取ifstat

wget http://distfiles.macports.org/ifstat/ifstat-1.1.tar.gz
tar xf ifstat-1.1.tar.gz
cd ifstat-1.1
./configure
make && make install
ln -s /usr/local/bin/ifstat /sbin/

2、自定义监控脚本

vim networkflow.sh

#!/bin/bash
case $1 in
        inflow)
                ifstat -i eth0  1 1 | sed -n '3p' | awk '{print $(NF-1)}'
        ;;
        outflow)
                ifstat -i eth0  1 1 | sed -n '3p' | awk '{print $(NF)}'
        ;;
esac

我这里是在脚本里面指定网卡eth0的,大家做的话可以稍微改善一下这个脚本,然后自动化获取需要监控的网卡名称。 inflow代表网卡的入口速率,outflow代表出口速率。

chmod a+x networkflow.sh
cp networkflow.sh /usr/local/zabbix_agentd/defineScripts/

这里说一下,/usr/local/zabbix_agentd/defineScripts这个目录是我服务器上面放置自定义脚本的目录。


3、自定义zabbix的key

vim /usr/local/zabbix_agentd/etc/zabbix_agentd.userparams.conf

底部添加一段:

#check network flow
UserParameter=network_flow[*],/usr/local/zabbix_agentd/defineScripts/networkflow.sh $1

/usr/local/zabbix_agentd/etc/zabbix_agentd.userparams.conf 这个文件是我在/usr/local/zabbix_agentd/etc/zabbix_agentd.conf中Include进去的,单独作为一个存放自定义key的地方。


然后重启zabbix_agentd,这个自定义的key就生效了。


4、zabbix server UI使用此key

这个可以添加到已有的模板里面,或者新建一个模板都可以的。

建立item

zabbix使用ifstat工具来自定义获取网卡流量


建立trigger

zabbix使用ifstat工具来自定义获取网卡流量


建立graphs

zabbix使用ifstat工具来自定义获取网卡流量


我这边只是已入口流量为例


5、应用到hosts上面

zabbix使用ifstat工具来自定义获取网卡流量


上面就是效果图


搞定!