搭建一个SNMP环境可以方便学习,也可直观的了解SNMP中各种实体及其行为,更加有效的学习。此处用net-snmp软件包搭建SNMP环境。
1 net-snmp简介
net-snmp是个开源的SNMP实现项目。支持SNMPv1、SNMPv2、SNMPv3,支持基于IPv4和IPv6的SNMP应用程序开发。
net-snmp包括以下内容:
l 完整的API用于SNMP应用程序开发(包括c和perl的API);
l 一个可扩展的SNMP代理程序(snmpd);开发者可开发动态模块扩展snmpd,net-snmp内置扩展子代理与主代理的通信协议;
l 提供众多命令行工具检查和使用SNMP协议;
l 一个trap接收进程,用于接收和显示trap。并可以将trap记录到日志文件里;
l 一个图形化的MIB浏览工具(tkmib:基于Tk/Perl的);
net-snmp被很多商业化linux包含,大多少的linux使用net-snmp的主代理实现Linux的SNMP支持。
2 安装与配置
net-snmp需要经过安装和配置两个主要步骤才可以使用。
2.1 操作系统
net-snmp可以在BSO UNIX、Linux、Windows等操作系统上编译使用。此处我们选择Linux操作系统。如果没有第二台机器装Linux,可以在Windows下安装一个VMWare(5.5以上版本),新建一个虚拟机,在虚拟机上安装Linux。
安装Linux时需要选择安装开发套件,否则编译net-snmp时会缺少编译和连接工具。
2.2 下载
net-snmp下载地址:http://www.net-snmp.org/download.html可以选择下载二进制文件或源码。源码需要自己编译,二进制只有Linux版本。
该处源码以net-snmp-5.2.2.tar为例。
2.3 解压
Su – root //切换到root用户,否则后面的编译和安装会有问题。
Tar –xvf net-snmp-5.2.2.tar //进入net-snmp源码目录后,执行该指令进行解压;
2.4 编译准备
编译之前需要进行编译准备,以生成编译所需的配置文件和Makefile,执行下列命令:
cd net-snmp-5.2.2
./configure
检查编译环境的最后会提示输入一些配置信息。一般取默认值即可(版本号笔者选择2)。net-snmp提供可扩展的代理,安装后运行在本机上,使本机成为一台被管理设备。最后配置检查程序会生成相关配置文件、编译及安装所需要的输入文件及相应的Makefile。
2.5 编译
make //使用编译准备步骤生成的Makefile,就可以编译net-snmp了。编译生成net-snmp的C语言开发库、SNMP工具、可扩展的主代理、开发工具。
2.6 安装
make install //
net-snmp编译完成后需要进行安装。默认安装情况下,安装后的文件和路径为:
1) 可扩展代理snmpd位于:/usr/local/share/ net-snmp
2) C语言开发库位于: /usr/local/share/ lib
3) C语言开发头文件位于:/usr/local/share/ include
4) net-snmp提供的SNMP工具位于: /usr/local/share/ net-snmp
5) net-snmp依赖的MIB文件位于:/usr/local/share/ net-snmp/mibs
6) net-snmp依赖的配置文件: /usr/local/share/ net-snmp/conf/etc/snmp
2.7 配置文件
需要为我们的测试环境配置一个学习用的配置文件。
Vi /etc/snmp/snmpd.conf //进入编辑net-snmp的配置文件;
2.8 验证
安装完成后需要验证是否可以正常工作。
1) Snmpd //启动代理。验证主代理是否可以正常启动;
也可以加入参数使snmpd使用指定配置文件启动:
Snmpd -C –c /etc/snmp/snmpd.conf //该方式,我们可以配置很多不同的配置文件,设置不同的运行环境,便于学习和开发。
2) Ps -aef | grep snmpd //检查代理是否已启动。(代理是守护进行,执行后会到后台运行)
3) 从代理中读取一个管理对象验证代理是否正常运行。
Snmpget -v2c –c public localhost sysDescr.o //读取MIB-II表中的sysDescr对象,该对象表示设备的描述信息。执行该命令后应该得到类似以下的结果:SNMPv2-MIV::sysDescr.0=STRING:linux leelin.leelindomain 2.4.18-14 #1 Wed Sep 4 13:35:50 EDT 2002 i686
3 工具使用介绍
net-snmp提供了许多工具使用和调试SNMP,下面简单说明。具体参数请参见相应工具的Man page。方法: man