用snmp4j开发网管应用(三) -- 简单框架

简介: <p style="">工程的地址:</p> <p style="">https://github.com/wangzijian777/snmpTool</p> <p style=""> </p> <p style="">其中包含了一些通用的工具设计</p> <p style="">1. XML中的随机数生成语法解析器</p> <p style="">    在数据文件中可以使用

工程的地址:

https://github.com/wangzijian777/snmpTool

 

其中包含了一些通用的工具设计

1. XML中的随机数生成语法解析器

    在数据文件中可以使用${randomString(5)}这样的格式来定义一些测试数据,会被解析为一个随机的长度为5的字符串,默认还可以使用${randomInt(1, 14)} 定义1到14之间的字符串,${nowTime(yyyy-MM-dd'T'HH:mm:ss.SSS'Z' H:mm)}某一个格式的时间

2. OID 注解

    提供了OID注解和从Object到pdu的解析,以及从pdu到Object的解析功能。现在有OidHibernate成熟的框架可以使用,但是因为自己没有那么高的需求,所以没有用到

3. 考虑了可扩展性

    数据输入部分使用的是Generator接口,默认的实现是读取xml文件来解析的,这里就可以自己实现其他类型的数据输入内容,比如可以输入一个类文件,然后用注解解析的办法来得到一组数据

提供了一下功能:

1. 创建Agent端,执行StratUp.java, 加入参数agent 和数据文件的位置。数据文件为resource/datasource.xml里边顶一个了一个SMItable的内容,这样就能够根据这个文件生成一些初始的假数据,构建成为一个Agent,供给网管程序访问,这时可以使用MibBrower进行walk操作:


2. 作为一个Trap Receiver.

执行StartUp.java receiver为参数,会启动一个TrapReceiver,然后可以按照3中的发送Trap消息,这一部分大多数都是写在网管管理台中的。

将会打印如下信息:

 信息: listened on udp:127.0.0.1/162

1.3.6.1.2.1.1.3.0====0:00:00.00

1.3.6.1.6.3.1.1.4.1.0====1.3.6.1.4.1.7569.1.2.2.25

1.3.6.1.4.1.7569.1.2.1.23.3.1.2====eduuw

1.3.6.1.4.1.7569.1.2.1.23.3.1.3====2014-06-03T20:53:00.617Z 20:53

1.3.6.1.4.1.7569.1.2.1.23.3.1.4====0

1.3.6.1.4.1.7569.1.2.1.23.3.1.5====dfdwf

1.3.6.1.4.1.7569.1.2.1.23.3.1.6====sgilp

1.3.6.1.4.1.7569.1.2.1.23.3.1.7====0

1.3.6.1.4.1.7569.1.2.1.23.3.1.8====svxhe

1.3.6.1.4.1.7569.1.2.1.23.3.1.9====1

 

3. 发送Trap消息给网管程序

执行StartUp.java trap 和数据文件,会发送一个或者多个trap消息给指定的地址。默认的数据文件在/resource/trapdata/trapdata.xml中,能够定义发送多少个,和发送的trap的oid及其包含的内容。

 

目前工程中没有包含get和walk的示例,可能以后会加入,但是这一部分就不容易写成通用的部分了,通常都是网管程序根据自己的业务去网元上获取数据的了。


相关文章
|
C++
snmp++开发实例一
1.官网下载 snmp开发,首先需要机器已经安装了snmp服务,这方面的资料网上比较完备,安装的时候注意每少一个文件,网上都可以下载到,这样可以自己形成一个包,供以后使用。只要最后snmp的服务开启就可以使用snmp服务了(刚开始trap服务可能是未开启的) snmp++官网http://www.agentpp.com/,选择自己需要的开发包,我这里下载了snmp++v3.2.25.tar.gz,如果需要支持v3版本的数据传送功能,还需要下载libdes-l-4.01a。
1958 0
|
安全 Linux API
SNMP的应用
前两天项目要求一个附加功能,远程监视服务器的运行状况,要定期监视指定端口,指定业务,还包括服务器的磁盘空间,内存,CPU使用率等等。这头俩事还好说,ping和telnet也就搞定了,实在不行就开个socket连一下,关键后边的事有点抓瞎,要是在本地,可以通过API得到系统信息,分析磁盘空间,内存啥的,可是远程得到别的机子的信息,那不成木马了么。
1502 0
|
网络协议 C语言 网络架构
SNMP从入门到开发:基础篇
SNMP协议入门 1、引言 基于TCP/IP的网络管理包含3个组成部分: 1) 一个管理信息库MIB(Management Information Base)。
1308 0
|
C语言 算法 编解码
SNMP从入门到开发:进阶篇
管理信息库:MIB 我们要扩展mib首先必须清楚mib是如何定义的,用的什么语言,有哪些约定,遵循哪些规则等等。这些基本东西掌握过后,我们就可以很轻松的来写自己的mib文件了。 所谓管理信息库,或者MIB,就是所有代理进程包含的、并且能够被管理进程进行查询和设置的信息的集合,或者叫管理对象的集合,在RFC 1213 [McColghrie 和Rose 1991]中定义了MIB-II,即第二版的MIB库。
1251 0
用snmp4j开发网管应用(一) - SNMP
<p style="">要开发网管应用,SNMP是必学的协议,这里首先对SNMP进行一下简单的介绍和想要开发SNMP协议的内容所需要用到的工具。</p> <p style=""> </p> <p style="">SNMP</p> <p style="">SNMP 协议分为了多个版本,V1太简单,V2加入了一些验证,V3最严谨,下面都是以V2进行说明</p> <p style=""
3909 0
用snmp4j开发网管应用(二) -- 使用snmp4j
<p style="">SNMP协议还算简单</p> <p style="">其实针对协议的开发我们只要知道协议的内容,然后架起Socket服务器,然后用字符串拼出协议内容格式的字符串,使用Socket进行通信就好了。</p> <p style="">针对协议的开源包主要把这些过程封装了。比如SNMP协议。</p> <p style="">我们只需要针对PDU对象编程,然后SNMP4
4574 0
|
存储 监控 Linux
zabbix使用snmp监控Linux主机(二十)
使用snmp监控Linux主机 1.snmp协议介绍 SNMP(简单网络管理协议)也是应用层的一种协议,默认端口号为161,我们平时监控Linux主机都是安装一个agent客户端进行监控,但是有的公司还需要监控网络设备和Windows主机,这时就不得不采用snmp协议去监控设备了
588 0
zabbix使用snmp监控Linux主机(二十)
|
存储 监控 安全
Zabbix SNMP监控安装、配置与服务器实例(学习笔记六)
SNMP可以监控路由器、打印机、UPS、摄像头、服务器等。 1、安装、配置snmp  yum install net-snmp* -y # vim /etc/snmp/snmpd.
2528 0