閱讀712 返回首頁    go 阿裏雲 go 技術社區[雲棲]


用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

  上一篇:go 開源軟件發展的保障:分發協議
  下一篇:go Docker: the Linux container engine