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
建立trigger
建立graphs
我这边只是已入口流量为例
5、应用到hosts上面
上面就是效果图
搞定!