您的位置:首页 > 其它

NET-SNMP安装方法(转载)

2010-05-10 17:14 260 查看
这篇文章我们主要讲解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: net-snmp-coders@lists.sourceforge.net

出现这个结果,这就表示现在系统默认的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 webmaster@domainname.com
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!

2008年10月7日更新:

如果你的服务器上有两块网卡配置的IP地址是一样的,例如:你将两块网卡做了bond,那么在运行net-snmp-5.4.1的时候/var/log/snmpd.log会报这样的错误:

error on subcontainer '' insert (-1)

这个问题已经被证实是NET-SNMP的BUG,安装5.4.2以上版本就没有这个问题了。

BUG:http://sf.net/support/tracker.php?aid=1693039
PATCH:http://sf.net/support/tracker.php?aid=1712645

5.4.2发布说明上写的很清楚,第一条就是:
http://www.net-snmp.org/wiki/index.php/5.4.2_open_issues
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: