1. 程式人生 > >Windows下Agent開發簡介

Windows下Agent開發簡介

Windows下AGENT開發

1.   新增mib樹

1.   在windows下安裝net-snmp。

2.將Mib Builder生成的HIKVISION-MIB.my檔案重新命名為txt檔案,拷貝到net-snmp安裝目錄/share/mibs目錄下。

3.編輯/usr/local/share/snmp/snmp.conf,

     加入一行:

     mibs+HIKVISION-MIB

4.使用snmptranslate -IR -Tp hikvision,

    檢查是否能正確生成MIB樹。

2.根據mib生成程式碼檔案

進入netsnmp原始碼的agent/mibgroup/目錄,建立目錄hikvision,在目錄下執行:

>setMIBFILES=C:\usr\share\snmp\mibs\HIKVISION-MIB.txt

>mib2c -c mib2c.scalar.conf  hikHardwareThreshold

生成檔案hikHardwareThreshold.h和hikHardwareThreshold.c

或者mib2c -c mib2c. iterate.conf hikServiceTable

生成檔案hikServiceTable.h和hikServiceTable.c

注:“mib2c -c mib2c.scalar.conf OID名”生成對應的程式碼檔案,OID可以是一張表,也可以是一個葉子節點。MIB模組一般都由變數和表組成。因此Net-snmp把SMI中的物件分為兩大類:scalar和table。Scalar就包含我們常用的整型,字串,時間等等資料型別。table就是scalar的一種集合,有一個和多個列組成,類似於資料庫中的表。它必須具有索引項,用來按一定順序檢索表項。對於表,一般用模板” mib2c -c mib2c. iterate.conf”來生成相應的程式碼檔案。

3.Agent擴充套件

1.開啟net-snmp工程,將上一步中生成的檔案加入到工程中。如圖所示:


2.      修改新增的檔案,在形如

int handle_hikCpuWarnVal(netsnmp_mib_handler *handler,
                          netsnmp_handler_registration *reginfo,
                          netsnmp_agent_request_info   *reqinfo,
                          netsnmp_request_info         *requests)


的函式中加入GET或SET操作實現的程式碼。

3.      在檔案 net-snmp原始碼目錄\win32\ mib_module_includes.h 中新增

#include "mibgroup/hikvision/hikHardwareThreshold.h"


4.      在檔案 net-snmp原始碼目錄\win32\ mib_module_inits.h 中新增

if (should_init("hikHardwareThreshold")) init_hikHardwareThreshold();

5.      重新編譯netsnmpmibs庫和snmpd,然後重新執行 net-snmp原始碼目錄\win32\ 目錄下的install-net-snmp.bat檔案。

6.      >snmpget –v 2c –c public127.0.0.1  [新新增的OID] 測試是否新增成功。

在net-snmp原始碼檔案中新增獲取相應OID值的原始碼。