一、什么是SNMP

1、 SNMP简介

SNMP(Simple Network Management Protocol,简单网络管理协议)是网络中管理设备和被管理设备之间的通信规则,它定义了一系列消息、方法和语法,用于实现管理设备对被管理设备的访问和管理。SNMP具有以下优势:

  • 自动化网络管理。网络管理员可以利用SNMP平台在网络上的节点检索信息、修改信息、发现故障、完成故障诊断、进行容量规划和生成报告。
  • 屏蔽不同设备的物理差异,实现对不同厂商产品的自动化管理。SNMP只提供最基本的功能集,使得管理任务分别与被管设备的物理特性和下层的联网技术相对独立,从而实现对不同厂商设备的管理,特别适合在小型、快速和低成本的环境中使用。

2、SNMP的工作机制

SNMP网络元素分为NMS和Agent两种。

  • NMS(Network Management Station,网络管理站)是运行SNMP客户端程序的工作站,能够提供非常友好的人机交互界面,方便网络管理员完成绝大多数的网络管理工作。
  • Agent是驻留在设备上的一个进程,负责接收、处理来自NMS的请求报文。在一些紧急情况下,如接口状态发生改变等,Agent也会主动通知NMS。

NMS是SNMP网络的管理者,Agent是SNMP网络的被管理者。NMS和Agent之间通过SNMP协议来交互管理信息。

SNMP提供四种基本操作:

  • Get操作:NMS使用该操作查询Agent的一个或多个对象的值。
  • Set操作:NMS使用该操作重新设置Agent数据库(MIB,Management Information Base)中的一个或多个对象的值。
  • Trap操作:Agent使用该操作向NMS发送报警信息。
  • Inform操作:NMS使用该操作向其他NMS发送报警信息。

3、SNMP的协议版本

目前,设备的SNMP Agent支持SNMP v1、SNMP v2c和SNMP v3三种版本。

  • SNMP v1采用团体名(Community Name)认证。团体名用来定义SNMP NMS和SNMP Agent的关系。如果SNMP报文携带的团体名没有得到设备的认可,该报文将被丢弃。团体名起到了类似于密码的作用,用来限制SNMP NMS对SNMP Agent的访问。
  • SNMP v2c也采用团体名认证。它在兼容SNMP v1的同时又扩充了SNMP v1的功能:它提供了更多的操作类型(GetBulk和InformRequest);它支持更多的数据类型(Counter64等);它提供了更丰富的错误代码,能够更细致地区分错误。
  • SNMP v3提供了基于用户的安全模型(USM,User-Based Security Model)的认证机制。用户可以设置认证和加密功能,认证用于验证报文发送方的合法性,避免非法用户的访问;加密则是对NMS和Agent之间的传输报文进行加密,以免被窃听。通过有无认证和有无加密等功能组合,可以为SNMP NMS和SNMP Agent之间的通信提供更高的安全性。

NMS和Agent成功建立连接的前提条件是NMS和Agent使用的SNMP版本必须相同。

4、MIB简介

任何一个被管理的资源都可以表示成一个对象,称为被管理对象。MIB(Management Information Base,管理信息库)是被管理对象的集合。它定义了对象之间的层次关系以及对象的一系列属性,比如对象的名字、访问权限和数据类型等。每个Agent都有自己的MIB。NMS根据权限可以对MIB中的对象进行读/写操作。NMS、Agent和MIB之间的关系如下所示。
Zabbix 3.4.3 使用SNMP监控H3C交换机端口流量

MIB是以树状结构进行存储的。树的节点表示被管理对象,它可以用从根开始的一条路径唯一地识别(OID)。如图下所示,被管理对象B可以用一串数字{1.2.1.1}唯一确定,这串数字是被管理对象的OID(Object Identifier,对象标识符)。
Zabbix 3.4.3 使用SNMP监控H3C交换机端口流量

二、H3C交换机配置

1、购买交换机

首先我们需要有一个可网管的交换机,不是傻瓜式的交换机,带有SNMP v2c协议功能的即可,然后给交换机配置一个管理IP,我们可以通过Web或者Telnet进行管理,我这里配置的IP为10.0.0.15。

2、登录交换机界面配置

Zabbix 3.4.3 使用SNMP监控H3C交换机端口流量

3、开启SNMP功能

Zabbix 3.4.3 使用SNMP监控H3C交换机端口流量

4、配置Community

Zabbix 3.4.3 使用SNMP监控H3C交换机端口流量

三、配置Zabbix前端

1、我们把交换机当做一个主机进行添加,如下图。

Zabbix 3.4.3 使用SNMP监控H3C交换机端口流量

2、为主机添加SNMP的模板,我们使用Zabbix自带的即可。

Zabbix 3.4.3 使用SNMP监控H3C交换机端口流量

3、为主机添加Community进行认证,获取交换机数据需要团体名称认证。

Zabbix 3.4.3 使用SNMP监控H3C交换机端口流量

四、效果验证

等待半个小时左右,我们即可监控到交换机所有端口的流量数据,下图为目前使用中的端口,在交换机界面可以看到。
Zabbix 3.4.3 使用SNMP监控H3C交换机端口流量

在Zabbix查看4号端口的流量情况如下。
Zabbix 3.4.3 使用SNMP监控H3C交换机端口流量

查看21号端口的流量情况如下。
Zabbix 3.4.3 使用SNMP监控H3C交换机端口流量

如此一来,我们就可以通过交换机监控所有端口的流量情况,当发生网络流量***情况,我们可以很快的排查问题。

五、交换机WEB管理界面功能

其实我们的可网管交换机也是具备监控记录功能的,比如他也可以记录每个端口的流量总额使用情况
Zabbix 3.4.3 使用SNMP监控H3C交换机端口流量

Zabbix 3.4.3 使用SNMP监控H3C交换机端口流量

六、自主监控

1、查询OID

我们知道,默认的监控模板可能会无法满足我们对一些特定项目的监控,我们这里简单演示一下监控自定义的项目的方法,首先我们安装一个第三方可以查询OID的软件,我们这里使用的是Getif,大家可以通过 http://down.51cto.com/data/2368580 下载。

输入交换机管理IP和团体名称。
Zabbix 3.4.3 使用SNMP监控H3C交换机端口流量

切换菜单栏为:“MBrowser“,依次选择:iso->org->dod->internet->mgmt->mib-2->interface->ifTable->ifEntry->ifInOctets #这是交换机端口入流量接口,我们会在下面看到入接口的OID,但是并不完整,我们还需要结合各个接口的ID,才能凑成完整的OID,因为我们要监控的是各个接口,其中包括物理端口,vlan等等。
Zabbix 3.4.3 使用SNMP监控H3C交换机端口流量

查看端口的接口信息,即完整的OID信息,切换菜单栏为:“Interfaces”,点击start按钮,就会自动搜索各个接口信息。
Zabbix 3.4.3 使用SNMP监控H3C交换机端口流量

其实很简单,我下面举两个例子,相信您一看就明白了。

  • 出接口:1.3.6.1.2.1.2.2.1.16.3   #其中“1.3.6.1.2.1.2.2.1.16”表示出接口的OID,而后面的“3”为接口的ID,整个加起来就是一个完整的出接口OID信息。
  • 入接口:1.3.6.1.2.1.2.2.1.10.3   #其中“1.3.6.1.2.1.2.2.1.10”表示入接口的OID,而后面的“3”表示接口的ID,整个加起来就是一个完整的入接口OID信息。

2、Zabbix配置

我这里不再进行演示模板的创建等等,只是演示一下Item的创建,其他的参数监控也是类似的,如下图端口3流量监控:
Zabbix 3.4.3 使用SNMP监控H3C交换机端口流量

Zabbix 3.4.3 使用SNMP监控H3C交换机端口流量