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

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: <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的示例,可能以后会加入,但是这一部分就不容易写成通用的部分了,通常都是网管程序根据自己的业务去网元上获取数据的了。


相关文章
|
8月前
|
网络协议 Linux Go
分享一个go开发的工具-SNMP Server
分享一个go开发的工具-SNMP Server
170 0
|
5月前
|
存储 运维 监控
|
C++
snmp++开发实例一
1.官网下载 snmp开发,首先需要机器已经安装了snmp服务,这方面的资料网上比较完备,安装的时候注意每少一个文件,网上都可以下载到,这样可以自己形成一个包,供以后使用。只要最后snmp的服务开启就可以使用snmp服务了(刚开始trap服务可能是未开启的) snmp++官网http://www.agentpp.com/,选择自己需要的开发包,我这里下载了snmp++v3.2.25.tar.gz,如果需要支持v3版本的数据传送功能,还需要下载libdes-l-4.01a。
2123 0
|
安全 Linux API
SNMP的应用
前两天项目要求一个附加功能,远程监视服务器的运行状况,要定期监视指定端口,指定业务,还包括服务器的磁盘空间,内存,CPU使用率等等。这头俩事还好说,ping和telnet也就搞定了,实在不行就开个socket连一下,关键后边的事有点抓瞎,要是在本地,可以通过API得到系统信息,分析磁盘空间,内存啥的,可是远程得到别的机子的信息,那不成木马了么。
1540 0
|
C语言 算法 编解码
SNMP从入门到开发:进阶篇
管理信息库:MIB 我们要扩展mib首先必须清楚mib是如何定义的,用的什么语言,有哪些约定,遵循哪些规则等等。这些基本东西掌握过后,我们就可以很轻松的来写自己的mib文件了。 所谓管理信息库,或者MIB,就是所有代理进程包含的、并且能够被管理进程进行查询和设置的信息的集合,或者叫管理对象的集合,在RFC 1213 [McColghrie 和Rose 1991]中定义了MIB-II,即第二版的MIB库。
883 0
|
网络协议 C语言 网络架构
SNMP从入门到开发:基础篇
SNMP协议入门 1、引言 基于TCP/IP的网络管理包含3个组成部分: 1) 一个管理信息库MIB(Management Information Base)。
1420 0
|
C语言 算法 编解码
SNMP从入门到开发:进阶篇
管理信息库:MIB 我们要扩展mib首先必须清楚mib是如何定义的,用的什么语言,有哪些约定,遵循哪些规则等等。这些基本东西掌握过后,我们就可以很轻松的来写自己的mib文件了。 所谓管理信息库,或者MIB,就是所有代理进程包含的、并且能够被管理进程进行查询和设置的信息的集合,或者叫管理对象的集合,在RFC 1213 [McColghrie 和Rose 1991]中定义了MIB-II,即第二版的MIB库。
1378 0