基于SNMP网络管理系统的实现
个推作为国内最专业的第三方消息推送技术解决方案的服务商接入SDK用户数高达80亿,日活跃用户达6.5亿。日分发消息23亿。在实际的运维环境中,需要时刻对网络设备进行监控和管理,并包含了各种网络设备,包括交换机,路由器,服务器等等。
网络是计算机通信网的重要组成部分,它通过互连和协同工作来构成大范围的信息处理系统。网络管理指通过监督,组织,控制网络通信服务和信息处理等活动,确保计算机网络的持续正常运行,并在运行出现异常时及时响应和排除故障。如何有效的进行区域内网络的管理是计算机网络能够有效,可靠,安全,经济的提供服务的重要保障。
认识SNMP协议
意义价值:SNMP协议可以为不同厂家,不同类型,不同型号的设备,定义一个统一的接口和协议,使得管理员可以通过网络,使用通用的规则管理位于不同物理空间的设备,从而大大提高网络管理的效率,简化网络管理员的工作。
SNMP协议处于OSI七层模型中的应用层协议。在1988年被制定,并被Internet体系结构委员会(IAB)采纳作为一个短期的网络管理解决方案;由于SNMP的简单性,在Internet时代得到了蓬勃的发展,1992年发布了SNMPv2版本,以增强SNMPv1的安全性和功能。现在,已经有了SNMPv3版本。目前大部分的网络设备如交换机,路由器等都支持SNMP协议规范,SNMP协议已经成为了网络管理领域中的工业标准。
一套完整的SNMP网络设备监控系统系统主要包括管理信息库(MIB)、管理信息结构(SMI)及SNMP报文协议,管理工作站利用SNMP进行远程监控管理网络上的所有支持这种协议的设备(如计算机工作站、终端、路由器、Hub、网络打印机等),主要负责监视设备状态、修改设备配置、接受事件警告等。
SNMP消息
在OSI模型中,传输层的数据单元也称为数据包(packets)。SNMP采用的是UDP(用户数据报协议)作为其传输层协议,并为SNMP提供网络服务,UDP协议的数据单元称为数据报(datagrams)。因为UDP是一种不可靠的数据报服务,所以并不能保证UDP数据报一定能达到目的,但是掉包问题并不对网络管理产生大的影响。SNMP消息包含两个部分:SNMP报头和协议数据单元PDU(Protocol Data Unit),其中SNMP报头包括SNMP版本号和团体名。SNMP版本号目前有三种:Version1、Version2、Version3。团体标识可以作为SNMP消息的口令,缺省值为"public"。查看SNMP版本联系和区别(http://blog.csdn.net/zyboy2000/article/details/7221687)
1. Get_Request:Manager端向Agent端发送读取信息的请求;
2. Get_ Next_Request:Manager端向Agent端 发送Get-Request组合起来查询特定的表对象中的列元素。
3. Get_Response:Agent端对Manager端请求的响应;(被动响应)
4. Set_Request:Manager端向Agent端发送设备设置信息,Agent端可根据设置信息来改变设备状态(包括设备名、设备属性、删除设备或使某一个设备属性有效/无效等);
5. Trap:当Agent端发生某些事件时,Agent端主动向Manager端发送陷阱信息,如关机事件。
SNMP4J简介
SNMP4J 是一个企业级的免费开源的SNMP API for Java的类库。基于JAVASE 1.4及以上。官网位于[http://www.snmp4j.org/](http://www.snmp4j.org/),提供相关JavaDoc和wiki。
Java Demo(实现对某一网络主机获取主机名称)
SNMPTest.getRequest的Console:
OID: 1.3.6.1.2.1.1.5.0
Value: com-router
SNMP4J 重要的类和接口
Snmp:该包中的核心类,它提供发送和接受SNMP PDU的方法。拥有同步和异步的两种方式。Snmp和传输协议无关。支持添加特定TransportMapping实例通过调用addTransportMapping(TransportMapping TransportMapping)方法或使用非默认的构造函数创建一个Snmp实例与相应的传输映射。传输映射用于传入和传出消息。
TransportMapping:该接口代表了SNMP4J所使用的传输层协议。这也是SNMP4J一大特色的地方。按照RFC的规定,SNMP是只使用UDP作为传输层协议的。而SNMP4J支持管理端和代理端使用UDP或者TCP进行传输。该接口有两个子接口。
PDU:PDU类代表一个SNMP协议数据单元。PDU(针对Snmpv2c)、PDUv1(针对Snmpv1)、ScopedPDU(针对Snmpv3),但三个类除各自特别的一些参数外,都基本相同。PDU作为基类,往往足够提供大部分的特性。
Target*:一个Target接口定义了远程SNMP实体的抽象表示。带有一个地址对象,以及协议参数,比如重试次数和超时时间等。对于SNMPv1和SNMPv2c,适用CommunityTarget的实现。SNMPv3,适用UserTarget。
SNMP4J API调用流程
1. 创建协议。一般可以使用DefaultUdpTransportMapping实例,作为传输层协议。
2. 创建SNMP对象。填充TransportMapping作为构造参数。
3. 开启监听。
4. 构造目标。设置Address,版本号,重试次数,超时时间等参数。
5. 创建报文(PDU)。设置请求方式,查询的OID。
6. 发送报文。同步方式:调用snmp.send 方法;异步方式:需要设置监听器。
7. 获取ResponseEvent。同步方式阻塞返回,异步方式在监听线程中的回调函数中获得。ResponseEvent.getResponse(),获取回复报文。
8. 释放资源。Snmp.close()。
SNMP网络管理系统
一个SNMP管理的网络包含三个主要部分:被管理设备、代理和网络管理系统(NMS)。被管理设备就是处于被管理的网络中的多个设备,负责收集和存储管理信息;代理是安装在被管理设备中的软件程序(如大部分交换机自带SNMP代理程序,仅需开启即可);网络管理系统就是用于监控被管理设备执行状态的软件系统。SNMP进行网络管理时,一般采用Manager/Agent结构集中式管理信息的方式,管理工作站为Manager端,网络中的各个设备为Agent端。
SMI管理消息结构
管理信息结构SMI是SNMP的基础部分,定义了SNMP框架所使用的信息的组成,结构和表示,为描述MIB对象和协议如何交换信息奠定了基础。
MIB管理消息库
在复杂的网络环境中,网络设备的类型各式各样,所以设备的信息也因设备类型不同而不同,为了将这些信息能通过网络管理系统进行管理,必须采用一套标准来描述这些设备的信息,所以SNMP定义了MIB(Management Information Base)。MIB分为标准MIB和私有MIB,标准MIB适用于所有网络设备,而私有的MIB则由设备厂家向有关机构申请后自行定义。MIB采用树状结构,每个节点每个结点分配了一个字符串和一个小整数作为标号,即OID(Object Identifier)。
MIB结构树中任一对象的名字就是从根到对象结点的路径上各个节点的标号序列,标号之间用点分隔。如被管理设备中每个网络接口的IP地址信息表示为:iso.org.dod.internet.mgmt.mid.ip,它的数字表示为:1.3.6.1.2.1.4。
标准MIB的基本OID以为1.3.6.1.2.1前缀,而私有的MIB的基本OID以为1.3.6.1.4.1前缀。如果在某一节点下有多个信息,则以列表方式存在,比如IP地址信息中包括子网掩码、网关地址等。
网络环境拓扑图
系统设计图
系统案例和效果
基于SNMP网络管理系统的实现,完美解决了跨设备,跨物理位置的网络设备的监控和管理。实时监控当前设备的状态,网络流入流出速率,cpu/内存的使用状况 等必要信息。
如比当天的流量实时监控:
网络管理员可以对设备集中的进行监控和管理,并且直观的从界面中获取实时流量数据,分析当前网络设备的当前状态,即时相应处理和维护。
基于SNMP网络管理系统的实现相关推荐
- 基于SNMP网络管理系统的实现 1
个推作为国内最专业的第三方消息推送技术解决方案的服务商接入SDK用户数高达90亿,日活跃用户达6.5亿.日分发消息23亿.在实际的运维环境中,需要时刻对网络设备进行监控和管理,并包含了各种网络设备,包 ...
- 计算机应用 网络管理开发,基于XML的iBAC网络管理系统的研究与开发-计算机应用技术专业论文.docx...
ⅢY ⅢY iii■l 洲8 mmj■I ㈣0 Ⅲ4 6 ㈣2 学位论文数据集 中图分类号TP311.1学科分类号520.3040 论文编号10010200705 12密级 学位授予单位代码10010 ...
- 基于SNMP的网络拓扑结构自动发现研究
摘 要: 分析了简单网络管理协议(SNMP).网络管理模型以及地址解析协议(ARP),在此基础上提出了一种网络拓扑结构的自动发现方法. 关键词: 网络管理 SNMP 拓扑发现 国际标准化组织提出 ...
- 基于JAVA网络城市交通应急管理系统计算机毕业设计源码+数据库+lw文档+系统+部署
基于JAVA网络城市交通应急管理系统计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA网络城市交通应急管理系统计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B ...
- 基于SNMP的MIB库访问实现的研究
蔡国森 (北京工商大学 计算机学院) 摘要 SNMP是用于网络管理/代理之间的请求/应答协议.管理信息库(MIB)定义了由代理者维护的各种变量,它们由管理者来进行存取操作,从而实现具体的网络管理. ...
- 配置snmp_多种设备基于 SNMP 协议的敏感信息泄露漏洞数据分析报告
作者:知道创宇404实验室 1. 更新情况 2. 事件概述 SNMP协议[1],即简单网络管理协议(SNMP,Simple Network Management Protocol),默认端口为 161 ...
- [转]基于SNMP的MIB库访问实现的研究
蔡国森 (北京工商大学 计算机学院) 摘要 SNMP是用于网络管理/代理之间的请求/应答协议.管理信息库(MIB)定义了由代理者维护的各种变量,它们由管理者来进行存取操作,从而实现具体的网络管理.本文 ...
- 智能化网络管理系统 为网络安全把脉
智能化的网络管理系统可以为网络把脉,查看全网的网络连接关系,实时监控各种网络设备可能出现的问题,检测网络性能瓶颈出在何处,并进行自动处理或远程修复. 网络管理是计算机网络发展的必然产物,它随着计算机网 ...
- JXCZT网络管理系统建设方案
1. 背景 随着近年来XXXX业务要求的不断提升和对IT系统的快速建设,IT建设已经初具规模,业务开展也越来越依赖IT系统,IT系统和业务数据对XXXX的重要性越来越显现出来. 不论是5×8 ...
- 为Web应用建立基于JMX的管理系统
Web应用系统总算开发了,接下来该如何让客户(Web应用系统的管理员)轻松管理我的一堆配置文件,或者如何实现动态修改系统运行属性,同时又让客户不需要过多的了解配置文件的内容就能够实现这些管理呢?这是许 ...
最新文章
- rpm打包的流程包括以下哪些_卖房流程包括哪些
- SAP Fiori SSL 和 SAML 2.0 配置文档
- 100. Same Tree
- linux之可视化查看磁盘大小并且删除大文件
- Java main 方法详解
- java 关闭 tomcat,每次关闭TOMCAT就报错 不知道什么?该如何处理
- iis7.5 php虚拟站点目录设置,windows2008中IIS7.5环境下 Fastcgi模式PHP配置教程
- 无法连接iphone软件更新服务器_上海腾科教育今日分享——提示“无法连接到服务器”的解决办法...
- 读取无线手柄数据_全透外形,优秀手感,双平台通吃:倍思Switch无线手柄
- python怎么操作_python怎么操作mysql
- 爱荷华大选 App 投票酿闹剧的反思:为什么我们在软件工程方面如此糟糕?
- 测试唯一ID支持多大的并发量
- windows xp下Apache2.2.11整合Tomcat6.0.20
- 框架详解_Selenium3框架详解
- 如何在typescript-react项目中使用emotion的css行内样式
- 信息学奥赛 java C 选_信息学奥赛(NOIP)入门指南(新家长必读)
- 酷开u盘c02hb量产工具
- 60、JAVA的map集合
- FastGCN: fast learning with graph convolutional networks via importance sampling 论文详解 ICLR 2018
- 倍福--步进电机的控制