目 录
目 录 2
1 概述 3
1.1 编写目的 3
1.2 软件简介 3
2 运行环境 3
2.1 硬件设备 3
2.2 支持软件 4
3 安装过程 4
3.1 Linux系统下的安装 4
3.2 Windows系统下的安装 7
3.2.1 准备工作 7
3.2.2 编译源文件 7
3.2.3 安装 7
3.2.4 检查文件是否完整 8
4 使用 8
4.1 Linux系统下的使用 8
4.1.1 配置主代理 8
4.1.2 运行验证 9
4.2 Windows系统下的使用 9
4.2.1 配置主代理 9
4.2.2 运行验证 10
日期 | 版本 | 说明 | 作者 |
2008-11-27 | 1.0 | 初步整理 | Marsleo |
2009-6-15 | 1.0.1 | 增加Windows版本 | Marsleo |
2009-11-18 | 2.0 | 更新 | Marsleo |
2011-03-26 | 2.1 | 调整章节目录 | Marsleo |
1.1编写目的
本文档列出NetSnmp的安装与配置步骤,在进行部署和更新的时候请参考本文档的要求和步骤进行。
本文档主要供下列人员使用:
⏹开发人员――进行技术开发的工具
⏹维护人员――部署与更新
1.2软件简介
Netsnmp是目前网络主机上使用比较多的SNMP软件之一,可以在www.Sunfreeware.com网站的许多镜像网点下载。它作为SNMP的管理软件,可通过SNMP协议(SNMPv1(RFC1155-1157)、SNMPv2(RFC 1901-1908)、SNMPv3 (RFC 2571-2574)中的命令,调用设备MIB库的对象标识符OID串,编写脚本集中提取设备的参数值,如CPU利用率、内存利用率、进程状态、时延、端口流量、性能参数等。
2运行环境
2.1硬件设备
FastDB可以在台式电脑、笔记本、服务器上使用。
2.2支持软件
3安装过程
NetSnmp的最新安装文件可以在网站http://www.net-snmp.org/下载。
下面以net-snmp-5.4.1.tar.gz为例进行安装说明。
3.1Linux系统下的安装
将NetSnmp安装文件netsnmp-5.4.1.tar.gz上传到需要安装的服务器的相应文件夹下。
解压安装文件包,使用命令:
tar –vxf netsnmp-5.4.1.tar.gz
待解压完成后,进入解压形成的netsnmp-5.4.1文件夹,按下列步骤以控制台的形式安装NetSnmp:
1)输入命令:
./configure
检查并配置编译环境。默认的安装目录是/usr/local,因此如果需要指定另外的目录(例如/home/etone/netsnmp),则需要用下列命令:
./configure --prefix=/home/etone/netsnmp
将安装文件放到指定的目录。建议使用默认安装目录。这个过程经过几分钟后,会跳出一个界面:
按回车键后出现:
要求选择使用的SNMP协议的版本,默认支持3。建议使用3.回车后出现:
要求输入联系方式,即维护人员的电子邮件(例如etone@etonetech.com)。输入后回车出现:
要求输入系统地理位置,可以输入所在地的地名(例如Guangzhou)。输入后回车出现:
要求输入主代理日志文件路径。建议使用其默认路径。输入后回车出现:
要求输入主代理的存储目录。建议使用其默认设置。输入后回车就完成了配置。
2)输入命令:
make
生成安装文件。这个过程可能需要几分钟。
3)(如果1)配置的安装目录不属于当前用户目录下的话,则需要切换到相应目录所属用户。如默认的/usr/local/share/snmp,则要切换到root用户,进入刚才那个目录,)输入命令:
make install
将安装文件安装到相应目录。这个过程可能也需要几分钟。
现在NetSnmp已经安装完成了。
在上述安装过程的步骤2)中,可能出现由于安装服务器没有安装某些工具无法进行下去的情况。主要有如下几种情况:
(1)出现如下界面:
这说明系统没有安装beecrypt库。需要将安装文件beecrypt-4.1.2.tar.gz上传并安装。安装部署类似,需要特别指出的是,在第1)步配置环境时必须将路径配置为/usr,即使用命令:./configure --prefix=/usr。当然,如果没有使用上述命令,那么在make install完成后,可以通过命令:
ln -s /usr/local/lib/libbeecrypt.la /usr/lib/libbeecrypt.la
做个软链接就行了。
(2)出现如下界面:
这说明系统没有安装elf库。需要将安装文件libelf_0.8.10.orig.tar.gz上传并安装。安装部署类似,需要特别指出的是,在第1)步配置环境时必须将路径配置为/usr,即使用命令:./configure --prefix=/usr。
3.2Windows系统下的安装
3.2.1准备工作
1.安装Microsoft Visual Studio 2005(或者更高版本),其中Visual C++为必选组件
2.安装Active Perl解析器。该步骤必须执行,否则在后期执行配置操作时,会提示没有安装perl解析器的错误,从而无法自动配置。
3.准备好安装文件netsnmp-5.4.1.tar.gz,将其解压。
3.2.2编译源文件
本部分基于readme.win32中的Microsoft Visual C++ - Workspace - Building部分,步骤如下:
1.配置默认安装路径,打开net-snmp-5.1.3\\win32\\net-snmp\\net-snmp-config.h,将第8行改为#define INSTALL_BASE "C:/usr" 。在net-snmp-config.h文件中,所有的路径都是使用UNIX下的/符号,如果将其改为Windows下的\符号的话,反而会在后期配置时出现路径错误。
2.在Visual Studio 2005中打开net-snmp-5.1.3\\win32\\win32.dsw,点击“全部都是”转换工作空间。
3.单击菜单栏的“生成”下的“配置管理器”,将活动解决方案配置从Debug改成release。此处也可以不修改,但是在后面的安装过程中,需要加入“-debug”参数。(后续内容以修改为例)。
4.在右侧解决方案资源管理器中,依次对libagent、libhelpers、libnetsnmptrapd、snmplib、netsnmpmibs这五个项目单击鼠标右键,选择“重新生成”。
5.单击菜单栏的“生成”下的“生成解决方案”。
6.单击菜单栏的“生成”下的“配置管理器”,在“项目上下文中”去掉对libagent、libhelpers、libnetsnmptrapd、snmplib、netsnmpmibs这五个项目的选择,其余不变。
7.单击菜单栏的“生成”下的“重新生成”。
8.编译结束之后,单击菜单栏的“文件”下的“关闭解决方案”,退出。
3.2.3安装
本部分基于readme.win32中的Microsoft Visual C++ - Workspace - Installing部分,步骤如下:
1.打开net-snmp-5.1.3\\win32\\install-net-snmp.bat,检查第12行是否为s,不是的话请改成这个。
2.打开命令提示符窗口,进入net-snmp-5.1.3\\win32目录下,运行 install-net-snmp.bat安装。如果编译的时候没有将活动解决方案配置改成release的话,需要运行install-net-snmp.bat -debug。
3.拷贝net-snmp-5.1.3\\win32\\local\\*.bat文件至C:\bin目录下。 该步骤本应该在执行批处理的时候自动执行,但实际上这些文件并没有被拷贝过去,所以我们必须手动进行,否则无法配置。
3.2.4检查文件是否完整
在C:\bin目录下应该存在下列22个文件:
mib2c.bat、snmpconf.bat、traptoemail.bat、snmpconf、snmpbulkget.exe、snmpbulkwalk.exe、snmpd.exe、snmpdelta.exe、snmpdf.exe、snmpget.exe、snmpgetnext.exe、snmpnetstat.exe、snmpset.exe、snmpstatus.exe、snmptable.exe、snmptest.exe、snmptranslate.exe、snmptrap.exe、snmptrapd.exe、snmpusm.exe、snmpvacm.exe、snmpwalk.exe
4使用
4.1Linux系统下的使用
4.1.1配置主代理
要使用net-snmp的主代理,必须进行相应的配置。一般地,有三种方法生成配置文件:
(1)使用net-snmp自带的snmpconf工具一步一步地详细配置。
(2)将安装目录(如默认的/usr/local/share/snmp)下的EXAMPLE.conf文件更名为snmpd.conf,再对其中的某些具体配置进行修改。
(3)在安装目录(如默认的/usr/local/share/snmp)下新建文件snmpd.conf,其内容如下:
rwcommunity etone
rocommunity public
如果需要使用子代理及trap功能,则可以简单地配置如下:
syslocation "Etone Tech"
syscontact chenjie@etonetech.com
rwcommunity etone
rocommunity public
authtrapenable 1
trapcommunity trapServ
trapsink localhost
trap2sink localhost
trapsink 172.30.7.51
trap2sink 172.30.7.51
disk / 100000
master agentx
agentxsocket tcp::5555
4.1.2运行验证
1.运行主代理:
切换到root用户,运行:
snmpd
即启动了主代理。
2.获取信息
要验证主代理是否在运行,能否提供服务,则输入如下命令:
snmpget -v2c -cpublic 127.0.0.1 system.sysContact.0
如果结果如下图所示:
SNMPv2-MIB::sysContact.0 = STRING: chenjie@etonetech.com
则表示完全正常。
4.2Windows系统下的使用
4.2.1配置主代理
本部分基于readme.win32中的Configuring Net-SNMP部分,步骤如下:
1.打开C:\bin\\snmpconf.bat,检查第2行是否为set MYPERLPROGRAM=c:\bin\\snmpconf,不是的话请改成这个。
2.打开C:\bin\\snmpconf,查找所有/usr/local/并替换为C:/usr/。 该步骤必须执行,snmpconf中的文件路径采用的是UNIX下的/usr/local/,这里必须改为Windows下的C:/usr/,但/符号仍然保持UNIX下的/符号,不用改成windows下的\符号,否则运行时会提示无法创建路径。
3.运行 snmpconf –i
4.选择 3: snmp.conf
5.选择 2: Textual mib parsing
6.选择 1: Specifies directories to be searched for mibs.
7.输入 c:\share\\snmp\\mibs
8.输入 finished回车 finished回车 quit回车,正常退出。
9.将C:\share\\snmp目录下的snmp.conf拷贝至C:\etc\\snmp目录。
10.拷贝net-snmp-5.1.3\\win32\\EXAMPLE.conf.win32至C:\etc\\snmp目录下,并改名snmpd.conf
11.打开刚刚拷贝的snmpd.conf,将第70行改为com2sec local localhost public 。原文件中70行的COMMUNITY部分必须被改成public,COMMUNINTY只是个例子,不修改的话后期无法正常执行。
12.删除或者注释掉第71行。 理由与上一条相同,NETWORK/24也只是个例子。
4.2.2运行验证
1.打开一个命令提示符窗口,运行
snmpd -f -Le –d
启动主代理,提示如下则正确运行:
NET-SNMP version 5.1.3
2.新开一个命令行窗口,运行
snmpget -c public -v 2c localhost system.sysUpTime.0
当前窗口提示如下:
SNMPv2-MIB::sysUpTime.0 = Timeticks: (8279) 0:01:22.79
3.主代理命令行窗口提示如下:
Received 41 bytes from 127.0.0.1 76
0000: 30 27 02 01 01 04 06 70 75 62 6C 69 63 A0 1A 02 0'.....public... SMM)
0016: 02 0F BC 02 01 00 02 01 00 30 0E 30 0C 06 08 2B .........0.0...+
0032: 06 01 02 01 01 03 00 05 00 .........
Received SNMP packet(s) from 127.0.0.1
GET message
-- SNMPv2-MIB::sysUpTime.0
Sending 43 bytes to 127.0.0.1
0000: 30 29 02 01 01 04 06 70 75 62 6C 69 63 A2 1C 02 0).....public...
0016: 02 0F BC 02 01 00 02 01 00 30 10 30 0E 06 08 2B .........0.0...
0032: 06 01 02 01 01 03 00 43 02 20 57 .......