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

工程的地址:

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操作:

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


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的示例,可能以后会加入,但是这一部分就不容易写成通用的部分了,通常都是网管程序根据自己的业务去网元上获取数据的了。


上一篇:PV & PVC - 每天5分钟玩转 Docker 容器技术(150)


下一篇:【方法1】删除Map中Value重复的记录,并且只保留Key最小的那条记录