简单思路:路由器上启动snmp服务,确保zabbix支持snmp,获得需要的OIB,设计item

1 路由器上启动smtp服务

 snmp-agent enable                            ;启用snmp-agent

 snmp-agent local-engineid 800063A280586AB1B9CD1700000001  

 snmp-agent community read monitor             ;创建只读的community--monitor

 snmp-agent community write private             ;创建私有的可写的community

 snmp-agent sys-info version all               ;支持snmpv1,v2c,v3

 snmp-agent target-host trap address udp-domain 60.60.60.11 udp-port 161 params securityname monitor v2c                    ;向zabbix服务器发送数据

 snmp-agent trap enable arp 

 snmp-agent trap enable radius 

2 获得需要的mib库中的oid码

这个大家可以在zabbix_server端,输入如下命令

snmpwalk -v  your_version(1,2c,3) -c community_name(我的为monitor) 你的路由器的内网或外网ip
#我的,没有这个命令请自行下载net-snmp-util
snmpwalk -v 2c -c monitor 192.168.6.254

这样就会获得大量的数据,如果现实no response from X.X.X.X,请检查你的community名是否正确,版本是否正确

所以把它保存到Out.txt里面,然后自己去查看就可以看到mib树的形状啦,我截取部分,所以oid大家可以这样填,eg:我想填端口的出流量

wKioL1X6Hj2yYBRUAAQihfogpTw278.jpg

在交换机中输入display interface brief,据网上说三种借口依次是本地换回LOOP,网络接口,拨号口

display interface brief 

Protocol: (s) - spoofing

Interface            Link Protocol Main IP         Description                

Aux0                 UP   --       --              

Dia10                UP   UP(s)    --              

GE0/0                UP   UP       x.x.x.x(我的public ip)    

GE0/1                DOWN DOWN     --              

GE0/2                UP   UP       192.168.6.254   

InLoop0              UP   UP(s)    --              

NULL0                UP   UP(s)    --              

REG0                 DOWN --       --              

VA0                  UP   UP       172.16.1.1      

VT0                  DOWN DOWN     172.16.1.1 

所以顺序是这样的,LOOP(1),0/0(2),0/1(3),好了,下面我们开始添加,等会我们可以填IF-MIB::后面的家伙,比如ifOutOctets.2就会获得公网端口的流量,取delta就是速率啦,oid值为ifOutOctets对应的值.2,它对应的是其实不需要知道,如果真的想请去路由器里面,就知道啦

[H3C-Gzdx-617-route]display  snmp-agent mib-node | include ifOutOctets

          |-*ifOutOctets<1.3.6.1.2.1.2.2.1.16>(RO)

 

3 在zabbix web里面添加H3C路由器主机host,wKioL1X7rUTDzL18AAMjmHlYIGo442.jpg

注意,如果添加完主机,后面的availability一直没有显示,而且你添加了item enable过一阵子support for snmp checks is not compiled in. 那么打开你的日志你会发现,snmp服务没有支持,此时请安装net-snmp组件, 重新编译,是--with-net-snmp而不是--enable-net-snmp,这个问题耽误了我一天才解决,所以建议大家参考官方文档比较好一点

4 添加模板,为模板创建item,链接模板

注意几点:

1 key可以随便填,但是最好唯一标识

2 SNMP community默认是public,如果你的是其它请自己修改,端口亦然

3 SNMP OID可以简写为如下

4 *8的原因:路由器传过来的数据是这样的

IF-MIB::ifOutOctets.2 = Counter32: 2907083659,也就是说我们获得的是八位组(八个2进制码组成的一组数据,所以有8个bit)的数目,而我们知道如果是算速率的话,即出口带宽的话

有如下:1Bps=8bps,注意这里的B是Byte,b是bit而不是byte,没有byte的说法,此时。一般通信用位bit比较多,而谈及网络我们都说Byte,学过信息论的应该知道此时Byte强调携带的信息量,而bit更强调存储。

所以1 octet = 8 bit = 1 Byte,所以如果不*8,我们得到的是Bps的速率。

wKioL1X7rmDCcmYjAANuW5nu_P4649.jpg

wKioL1X7sRLhSzkBAAJwJYGlNSU641.jpg

wKiom1X7r2nyd1eJAAR9Vv9uygg909.jpg


wKioL1X7sb7zAbLwAAR9Vv9uygg189.jpg

5 然后去链接模板,最后看到的graph,请在host里面查看graph

wKioL1X7sf2xheSbAARXebtAXVg351.jpg

nice,但是会乱码,参考网上的http://blog.chinaunix.net/uid-11121450-id-3296646.html这位大哥的文章,具体我就不说了。

后来发现30s的更新对于流量有点不科学,所以等晚点我再放出效果图。