最 近一直在做网络设备的监控,包括switch,firewall,netscaler等网络设备的流量和性能监控。所有的监控软件 (nagios,zenoss,zabbix等)监控网络设备都是通过SNMP协议进行监控的,提起SNMP协议,大家首先要明白几个关于SNMP概念:

1)SNMP(Simple Network Management Protocol)简单网络管理协议。由一组网络管理的标准组成,网络管理员可以通过SNMP协议采集和查看网络设备运行信息。目前SNMP版本有SNMPv1,SNMPv2和SNMPv3三个版本。

2)SNMP Community:SNMP团体名称,用于在访问设备之前认证管理。SNMP Community权限可以设置为只读或者读写。

    RO(只读)表示read-only:只能读取设备的信息,比如设备interface,interface traffic等。

    RW(读写)表示Read and Write,除了读取设备的信息之外,还能更改设备的配置信息。

Router(config)#snmp-server community sfzhang  ro //读权限

Router(config)#snmp-server community sfzhang  rw //写权限

3)MIB(Management Information Base):管理信息库。MIB是被管理对象的集合。它定义了被管理对象的一系列属性:对象的名称、对象的访问权限和对象的数据类型等。

4)OID(ObjectIdentifier):对象标示符。被管理的对象通过OID表示。

    网络设备的监控,主要从两个方面进行监控:

1)网络设备的端口流量:比 如说要监控48口的交换机流量,先用类似于getif工具先扫描出交换机每个端口的OID,然后添加48次Incoming流量,在添加48次 Outgoing流量。Zabbix从2.0开始支持自动发现网络设备的interface。通过Low-level discovery可以自动创Items,trigger和graphs,并且可以自动删除不需要的Items。

    下面以netscreen防火墙例来讲解:

    首先创建模板:Configuration->Templates->Create Template创建监控模板,然后点击Discovery rules创建discovery rule。

6d81800a19d8bc3e249826ca818ba61ea8d34519

    Discovery rule的key ifDescr不一定真实存在,但Type的值必须为SNMP agent。

    关于SNMP团体名的定义,可以直接写团体名称,或者通过marco方式定义,这样定义好处是方便别人引用自己的模板。

fcfaaf51f3deb48ff6e581def31f3a292df57825

     通过Low-level discovery监控网络设备的时候会引用两个macro,一个是SNMPVALUE,一个是SNMPINDEX。可以通过snmpwalk命令查看到 这两个变量代表的值,前面的1,2,3和4是SNMPINDEX,后面的mgt,ethernet1/1等是SNMPVALUE,即网络设备的 interface。

cc11728b4710b9127848d6fec0fdfc0392452220

   通过snmpwalk命令查看网络设备所有口的进出口流量。   

2e2eb9389b504fc2b8a09005e6dde71190ef6d36

    知道了SNMPVALU和SNMPINDEX含义和如何通过snmpwalk命令查看设备的进出口流量后,很容易定义网络设备的进口流量:b8389b504fc2d562eb96f0ede41190ef76c66c17

    定义网络设备的出口流量:

b17eca8065380cd7c13d81eda244ad345982818a

    创建Graph prototypes,用于展示端口流量图。

0dd7912397dda144fe074fb2b1b7d0a20cf486a7

2)网络设备的性能监控:常见的网络设备性能监控主要是内存和cpu监控,下面是netscreen常见的OID。

内存方面:

剩余内存:1.3.6.1.4.1.3224.16.2.2.0

使用内存:1.3.6.1.4.1.3224.16.2.1.0

CPU方面:

cpu平均利用率:1.3.6.1.4.1.3224.16.1.1.0

cpu过去1分钟利用率:1.3.6.1.4.1.3224.16.1.2.0
cpu过去5分钟利用率:1.3.6.1.4.1.3224.16.1.3.0
cpu过去15分钟利用率:1.3.6.1.4.1.3224.16.1.4.0

session会话方面:

nsResSessAllocate:1.3.6.1.4.1.3224.16.3.2.0

nsResSessMaxium:1.3.6.1.4.1.3224.16.3.3.0
nsResSessFailed:1.3.6.1.4.1.3224.16.3.4.0

其它方面的监控:

sysUpTime:1.3.6.1.2.1.1.3.0

3)报警阀值的设置:

流量报警:最近一段时间流量超过多少M报警。

内存报警:使用内存超过80%报警或者剩余内存少于多少报警。

CPU报警:CPU利用率超过80%报警。

    总结:Zabbix监控网络设备的端口流量,无论是防火墙,交换机,路由器,还是存储,负载均衡设备都可以按照上面的方法监控流量,至于其它方面的监控可用到官方查看设备的OID自己添加Items。

    最后,给大家展示一下其中一个接口的流量图,如果哪位同学需要模板,请留言索要模板。

5fdf8db1cb1349548e7bcb64554e9258d1094a4c