最近一直在做网络设备的监控,包括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。
Discovery rule的key ifDescr不一定真实存在,但Type的值必须为SNMP agent。
关于SNMP团体名的定义,可以直接写团体名称,或者通过marco方式定义,这样定义好处是方便别人引用自己的模板。
通过Low-level discovery监控网络设备的时候会引用两个macro,一个是SNMPVALUE,一个是SNMPINDEX。可以通过snmpwalk命令查看到这两个变量代表的值,前面的1,2,3和4是SNMPINDEX,后面的mgt,ethernet1/1等是SNMPVALUE,即网络设备的interface。
通过snmpwalk命令查看网络设备所有口的进出口流量。
知道了SNMPVALU和SNMPINDEX含义和如何通过snmpwalk命令查看设备的进出口流量后,很容易定义网络设备的进口流量:
定义网络设备的出口流量:
创建Graph prototypes,用于展示端口流量图。
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。
最后,给大家展示一下其中一个接口的流量图,如果哪位同学需要模板,请留言索要模板。