zabbix —— 监控H3C MSR路由器
简单思路:路由器上启动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:我想填端口的出流量
在交换机中输入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,
注意,如果添加完主机,后面的availability一直没有显示,而且你添加了item enable过一阵子support for snmp checks is not compiled in. 那么打开你的日志你会发现,snmp服务没有支持,此时请安装net-snmp组件, 重新编译,是--with-net-snmp而不是--enable-net-snmp,这个问题耽误了我一天才解决,所以建议大家参考官方文档比较好一点
4 添加模板,为模板创建item,链接模板
注意几点:http://www.xiaoxiongboke.com
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的速率。