用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操作:
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的示例,可能以後會加入,但是這一部分就不容易寫成通用的部分了,通常都是網管程序根據自己的業務去網元上獲取數據的了。
最後更新:2017-04-03 07:56:58