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