net-snmp配置开发及注意事项

本文详细介绍了如何在win32环境下配置和开发net-snmp,包括安装、配置SNMP服务,编写MIB文件,进行Agent端和管理站的开发,以及相关注意事项。通过实例展示了如何利用mib2c工具生成模板源代码,并修改代码以实现读写节点的功能。同时,还提供了管理站获取节点信息的代码示例。
摘要由CSDN通过智能技术生成
 

一.安装及配置SNMPwin32环境)

1.下载

www.sourceforge.net下载到最新的net-snmp(目前最新版本 5.4.1 net-snmp-5.4.1.zip

2.解压编译

解压后,可以看到有一个win32目录,里面存放的是和win32环境相关的文件,有3dsw

       libsdll.dsw             编译lib文件和dll文件的工程

       win32.dsw            编译lib文件和工具文件如snmpget,snmpset的工程

       win32sdk.dsw              类似于win32.dsw,区别在于:需要安装Platform SDK。如果需要agent能支持 interfaces等一些高级功能,必须用此工程编译。XPSP2 Platform SDK的下载地址

http://www.microsoft.com/msdownload/platformsdk/sdkupdate/XPSP2FULLInstall.htm

       只需要安装Core SDK就可以了,安装完后需要从开始菜单中Register一下。

       注意编译的顺序,最好先编译libsdll.dsw,把netsnmp.libnetsnmpagent.libnetsnmphelpers.libnetsnmpmibs.libnetsnmptrapd.lib文件先编译好,再编译win32sdk.dsw中的项目。

3.安装

运行win32目录下的install-net-snmp.bat批处理文件,会把上一步编译生成的文件及相关的头文件等拷贝到c:/usr目录。

4.配置

       c:/usr/etc/snmp目录添加配置文件snmpd.conf,添加如下内容:

rocommunity  public

rwcommunity  private

       它表示的含义是,启动agent服务后,通过public共同体是只读的,private共同体可读也可写。

       在命令行运行如下命令,将snmp注册为windows的服务:

              cmd>”C:/usr/bin/snmpd.exe” –register -Lf "C:/usr/log/snmpd.log"

       注册成功后可以在【控制面板】->【管理工具】->【服务】中看到刚注册的服务,服务名是:net-snmp agent

5.运行

       cmd>net start “net-snmp agent”

       如果正常,会得到启动服务成功的提示

6.验证

       cmd>snmpget –v 2c –c public localhost 1.3.6 .1.2.1.1.5.0

       cmd> snmpset -v 2c -c private localhost sysContact.0 = piyeyong

       如果正常,会的到取得和设置成功的提示,出错会给出错误提示。

二.MIB文件编写

       MIB文件会存放于C:/usr/share/snmp/mibs/目录下,是*.txt,纯文本文件,可以直接打开查看和更改。RFC1213中定义的MIB节点信息的定义存放与RFC1213-MIB.txt,这些节点是比较重要的,会经常用到。

       如果要扩展MIB,应该定义在 1.3.6 .1.4.1(.iso.org.dod.internet.private.enterprises)子树下。自定义MIB的节点,只需要描述该节点的SYNTAXACCESSSTATUSDESCRIPTION等属性及它属于父节点的第几个子节点即可。如下所示,为扩展MIB的一个简单例子:

PROBA-MIB DEFINITIONS::=BEGIN

       IMPORTS     

              enterprises,OBJECT-TYPE,Integer32,TimeTicks

                    FROM SNMPv2-SMI

       TEXTUAL-CONVENTION,  DisplayString FROM SNMPv2-TC;

 

-- proba node

       proba OBJECT IDENTIFIER::={enterprises 8888}

 

baseinfo     OBJECT IDENTIFIER ::= { proba 1 }

 

-- company name

       probaCompName OBJECT-TYPE

              SYNTAX DisplayString (SIZE (0..255))

              ACCESS read-only

              STATUS mandatory

              DESCRIPTION "The Name of company"

              ::={baseinfo 1}

 

-- company location

       probaLocation OBJECT-TYPE

              SYNTAX DisplayString (SIZE (0..255))

              ACCESS read-write

              STATUS mandatory

              DESCRIPTION "The Location of company"

              ::={baseinfo 2}

             

-- employee number

       probaEmployeeNumber OBJECT-TYPE

              SYNTAX INTEGER

              ACCESS read-only

              STATUS mandatory

              DESCRIPTION "The number of employee"

              ::={baseinfo 3}

END

三.Agent端开发

       在上一步中定义好MIB的结构后,现在就开始编码实现定义好的节点。net-snmp提供了一个MIB 2C 工具,利用它可以根据MIB的定义和配置文件自动生成*.c*.h模板文件,然后只需要在相应位置添加对节点数据的处理就可以了。

1.配置net-snmpperl模块

       用使用mib 2c 工具,需要perl模块的支持,可以从http://www.ActiveState.com/ActivePerl下载,目前最新版是 5.8.8

       net-snmp源文件的perl目录下,运行以下命令:

       cmd>perl makefile.pl

如果成功,会生成makefile文件

cmd>nmake

cmd>nmake install

       这时,会将net-snmp相关的perl模块编译好并安装到c:/perl/site/lib目录下。

       注:有时候运行nmake会失败,把其它机器上安装好的c:/perl/site/lib目录下的文件拷贝过来,也可以运行。

2.mib 2c 生成模板源代码

       运行以下命令:

       cmd>mib 2c -c mib 2c .scalar.conf baseinfo

       会按照模板配置文件mib 2c .scalar.conf生成baseinfo.hbaseinfo.c文件。注意:baseinfo是上一步在MIB中定义的proba下的一个节点。在baseinfo.c中有很多/* XXX 注释*/的地方,这些地方是需要我们修改,填上我们对节点数据的处理代码。

第1章 net-snmp安装及配置...................................................................................................1-1 1.1 安装...................................................................................................................................1-1 1.2 设置net-snmp自启动..........................................................................................................1-3 1.3 设置环境变量.....................................................................................................................1-3 第2章 net-snmp测试..............................................................................................................2-3 2.1 本地通过localhost测试.......................................................................................................2-3 2.2 本地通过IP测试..................................................................................................................2-4 2.3 远程通过IP测试..................................................................................................................2-5 第3章 snmpd.conf详解..........................................................................................................3-6 3.1 通道控制配置.....................................................................................................................3-7 3.1.1 定义安全体名称.......................................................................................................3-7 3.1.2 定义安全组..............................................................................................................3-7 3.1.3 定义视图..................................................................................................................3-8 3.1.4 向安全组授权相应的视图.........................................................................................3-8 3.2 系统联系人信息..................................................................................................................3-9 3.3 进程检查...........................................................................................................................3-10 3.4 可执行脚本.......................................................................................................................3-11 3.5 磁盘检查...........................................................................................................................3-12 3.6 负载均衡检查...................................................................................................................3-13 3.7 可扩展部分.......................................................................................................................3-14 3.8 通过控制...........................................................................................................................3-15 3.9 其它.................................................................................................................................3-16 第4章 net-snmp指令............................................................................................................4-16 4.1 snmpget..........................................................................................................................4-16 4.2 snmpwalk........................................................................................................................4-16 4.3 snmpconf........................................................................................................................4-16 4.4 snmpd.............................................................................................................................4-17 4.5 snmpgetnext....................................................................................................................4-17 4.6 snmpset..........................................................................................................................4-17 4.7 snmpbulkget....................................................................................................................4-17 4.8 snmptrap.........................................................................................................................4-17 4.9 snmptrapd.......................................................................................................................4-17 4.10 snmpinform....................................................................................................................4-17 4.11 snmptable......................................................................................................................4-17 ii4.12 snmpstatus.....................................................................................................................4-18 4.13 snmpbulkwalk................................................................................................................4-18 4.14 snmpdelta......................................................................................................................4-18 4.15 snmptest.......................................................................................................................4-18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值