net-snmp在Linux下的安装过程【转】

原帖地址  http://mxdxm.iteye.com/blog/509141


NET-SNMP安装方法 - [关于技术] 
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 
http://michaels.blogbus.com/logs/29901067.html 



这篇文章我们主要讲解NET-SNMP的安装过程。 

在描述NET-SNMP安装过程之前,我们先来说一下什么是SNMP。 

(以下内容译自官方网站:http://www.net-snmp.org) 

Simple Network Management Protocol (SNMP) 是一个被广泛使用的协议,可以监控网络设备(比如路由器)、计算机设备甚至是UPS。Net-SNMP是用于实施SNMP v1,SNMP v2,SNMPv3的应用程序套件,可以使用在IPv4、IPv6的环境中。这个套件包括: 

* 命令行程序包括: 
   +从支持SNMP的设备中检索信息的命令。用于执行单个的请求(snmpget,snmpgetnext),或者执行多个请求(snmpwalk,snmptable,snmpdelta)。 

   +可以用于手动设置信息的命令(snmpset)。 

   +检索一套固定信息的命令(snmpdf,snmpnetstat,snmpstatus)。 

   +可以把MIB oid的信息在“数字”形式和“字符”形式之间进行转换的命令(snmptranslate),它还能显示MIB的内容和结构。 

*使用Tk/perl来提供一个图形化的MIB浏览器(tkmib)。 

*一个接收SNMPtrap信息的daemon。经过选择的snmp通知信息可以被日志记录(记录在syslog,或者NT的日志,或者文本文件),转发到另一个SNMP管理系统,或者传递到其它的程序。 

*一个可扩展的代理程序(snmpd),用于对管理系统提出的SNMP请求做出响应。这包括了内建的多种支持性: 

支持广泛的MIB信息模块,可以使用动态加载的模块进行扩展,可以使用外部的脚本和命令进行扩展,对多路复用SNMP(SMUX)和代理可扩展性协议(AgentX)的支持。 

*包括一个库,用于支持对新的SNMP开发,支持C和Perl API。 

Net-SNMP对于许多的UNIX和类UNIX操作系统都是支持的,也支持windows。注意:对于不同的系统功能会有所变化。请阅读你所在平台的README文件。 



如果你的服务器上没有安装NET-SNMP或者其他用于实施SNMP协议的软件,那么你安装MRTG就会报错了。 

下面,我们开始。 

1. 下载NET-SNMP 

cd ~ 

wget http://jaist.dl.sourceforge.net/sourceforge/net-snmp/net-snmp-5.4.1.tar.gz 

如果是SunOS,安装源码包就比较麻烦了,安装二进制包相对简单。 

但是不同版本的SunOS需要下载不同版本的二进制包,首先要先确定你的系统是什么版本: 

uname -a 

SunOS ws01 5.9 Generic_122300-03 sun4u sparc SUNW,Sun-Fire-V240 

5.9意思是Solaris9 
5.8意思是Solaris8,以此类推 

"sun4u" 表示Ultra平台 
"sun4m" 表示SuperSPARC平台  例如:Sparc 5 or Sparc 10 
"sun4d" 表示older SPARC boxes 


在这个Solaris9的系统上,我就必须下载net-snmp_5.2.2-SunOS_5.9_sun4u.tar.gz这个版本了。 

wget ftp://ftp.freesnmp.com/mirrors/net-snmp/net-snmp_5.2.2-SunOS_5.9_sun4u.tar.gz 

但是二进制包目前我只找到了5.2.2版本,如果不满足要求,那么你就必须使用最新版的,需要进行编译了。 

当然,也可以使用sunfreeware上面提供标准solaris安装包 

wget ftp://ftp.sunfreeware.com/pub/freeware/sparc/9/netsnmp-5.4.1-sol9-sparc-local.gz 

2. 安装NET-SNMP 

gunzip -c net-snmp-5.4.1.tar.gz | tar xf - 

cd net-snmp-5.4.1 

./configure 

make 

#编译时如果出现: 

grep: /usr/lib/libbeecrypt.la: No such file or directory 
/bin/sed: can't read /usr/lib/libbeecrypt.la: No such file or directory 
libtool: link: `/usr/lib/libbeecrypt.la' is not a valid libtool archive 
make[1]: *** [libnetsnmpmibs.la] Error 1 
make[1]: Leaving directory `/email/share/ceno_soft/net-snmp-5.4.1/agent' 
make: *** [subdirs] Error 1 


说明缺少libbeecrypt.la ,libbeecrypt.so等共享库 

如果确认系统中有libbeecrypt.la,也许他安装在/usr/local下面,可尝试: 

ln -s /usr/local/lib/libbeecrypt.la /usr/lib/libbeecrypt.la 

如果/usr/local下面没有,那么你必须安装beecrypt 

cd ~ 

wget http://nchc.dl.sourceforge.net/sourceforge/beecrypt/beecrypt-4.1.2.tar.gz 

gunzip -c beecrypt-4.1.2.tar.gz | tar xvf - 

./configure -prefix=/usr 

#默认是安装在/usr/local,我们需要安装在/usr目录下。如果没有加这个参数需要做连接 

ln -s /usr/local/lib/libbeecrypt.la /usr/lib/libbeecrypt.la 

make && make install 

好,beecrypt安装完成后,我们继续NET-SNMP的编译 

cd ../net-snmp-5.4.1 

make 

make install 

在SunOS的安装方法再稍微提一下 

cd ~ 

gunzip netsnmp-5.4.1-sol9-sparc-local.gz 

pkgadd -d netsnmp-5.4.1-sol9-sparc-local 

NET-SNMP会被安装到/usr/local目录下。 

这样,NET-SNMP就算安装好了,但是如果要正常的运行它,还有些工作要做。 

3. 运行NET-SNMP 

首先查看当前系统的snmpd命令是否是你刚刚安装的版本 

snmpd -v 

NET-SNMP version:  5.4.1 
Web:               http://www.net-snmp.org/ 
Email:             [email protected] 

出现这个结果,这就表示现在系统默认的smpd就是你刚刚安装的那个,如果不是,那么你需要检查一下是否有老版本的存在。 

按照我以上的方法,snmpd应该被安装在: 

which snmpd 

/usr/local/sbin/snmpd 

如果是SunOS,运行snmpd的时候可能会提示: 

ld.so.1: snmpd: fatal: libcrypto.so.0.9.8: open failed: No such file or directory 

这个问题的原因应该和在Linux上的那个问题一样的。 

解决方法: 

首先确认你的LD_LIBRARY_PATH 

vi /etc/profile 
LD_LIBRARY_PATH=/usr/lib:/usr/local/lib:/usr/local/ssl/lib 

然后做连接: 

cd /lib 

ln -s /usr/local/ssl/lib/libcrypto.so.0.9.8 

如果没有/usr/local/ssl/这个目录,那么说明你没有安装OpenSSL,你需要先安装OpenSSL-0.9.8i,安装方法这里暂且不谈。 

以上工作都完成以后,那么你的snmpd就可以运行了。 

4. 编辑配置文件snmpd.conf 

创建配置文件snmpd.conf,可以使用命令: 

snmpconf -g basic_setup 

回答问题即可,但是较麻烦,手工创建很简单。 

vi /usr/local/share/snmp/snmpd.conf 

syslocation  "SHANGHAI P.R.China" 
syscontact  [email protected] 
rocommunity  whatever 
rwcommunity  whoareyou 

#这个rocommunity和rwcommunity的值你可以自己定义 

snmpd.conf文件只写上面四句话就足够了。 

运行snmpd: 

/usr/local/sbin/snmpd 

测试snmpd运行是否正常: 

snmpget -v 1 -c whatever localhost sysUpTime.0 

snmpwalk -v 2c -c whatever -m ALL localhost .1.3 | more 

在Linux系统上到这一步一般不会出现什么问题,在SunOS上可能会有问题。 

如果有问题,还可以尝试: 

/usr/local/sbin/snmpd -f -Le 

或者: 

cd /usr/local/sbin 

gdb snmpd 

run -f -Le 

到这里,NET-SNMP的安装和运行就结束了。如果你安装过程中遇到什么疑难杂症欢迎发邮件给我。 

最后,Good Luck! 

你可能感兴趣的:(net-snmp在Linux下的安装过程【转】)