1. 程式人生 > >用snmp4j開發網管應用(三) -- 簡單框架

用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的示例,可能以後會加入,但是這一部分就不容易寫成通用的部分了,通常都是網管程式根據自己的業務去網元上獲取資料的了。