viplinux 2011-03-05
直接用apt-get install snmpd
这个只是安装snmpd程序,那些snmpwalk还没有装上去
执行apt-get install snmp,可以全部装完
然后修改/etc/snmp/snmpd.conf文件
(find / -name "snmpd.conf"可以查找文件)
通过下面的源码安装,我保证你弄得想死之后,问题还没有搞定。但是它也确实提供了源码安装出现问题的解决方法,也不错
参考blog:
http://linux.chinaunix.net/techdoc/system/2009/07/18/1124968.shtml
1、下载net-snmp-5.5源码
http://nchc.dl.sourceforge.net/sourceforge/net-snmp/net-snmp-5.5.tar.gz
下载后,解压文件:
tar -zxvf net-snmp-5.5.tar.gz
解压后进入,net-snmp-5.5目录
cd net-snmp-5.5
2、开始安装net-snmp-5.5
运行./configure --prefix=/home/xxx/net-snmp/ 设置安装目录及必要的版本配置信息等。如下
default version of-snmp-version(3): 3(在这里版本通常有三种形式:1,2c,3)
Systemcontactinformation(配置该设备的联系信息):heaven(也可以是邮箱地址)
Systemlocation(该系统设备的地理位置):BEIJINGP.RChina
Locationtowritelogfile(日志文件位置):/var/log/snmpd.log
Location to Write persistent(数据存储目录): /var/net-snmp配置完成开始,运行
make
会出现如下错误,细节的我记不清了,大概意思是:
snmp_parse_args.c:637:21 error 。。。。。。。
这时找到这个文件,。。。。/net-snmp-5.5/snmplib 目录下,找到637行。把if (!session->version) {
中的switch 语句干掉,只保留你需要的版本语句,如:我使用的V2版本,我保留了这句:session->version = SNMP_VERSION_2c; ,其他的我都干掉了。就ok了。
继续make 会产生另一个错误,如下。
/usr/bin/ld: cannot find -lperl
解决办法如下(安装lperl的包):sudo apt-get install libperl-dev
安装完成后继续make。
这时有产生了一个错误,大概意思是说 SNMP.xs文件有错误。找到这个文件/net-snmp-5.5/perl/SNMP目录下,打开到错误行,干掉这句话 “ return NETSNMP_DEFAULT_SNMP_VERSION; ”就可以,这个错误其实上错误1是关联的,都是由于这个变量“NETSNMP_DEFAULT_SNMP_VERSION”
在make就一路通过,然后make install ok
如果在使用snmp的时候出现缺少某个库文件之类的提示,可以使用export LD_LIBRARY_PATH=/usr/local/lib,添加路径,问题可解决
4、在完成上面的步骤后紧接着制作配置文件 *.conf,在这里有两种方式,一种方式是用命令snmpconf -g basic_setup生成snmpd.conf文件,但需要回答很多没用的问题,比较费时,我这里用了一种较简便的方法生成配置文件,就是把解压后的那个文件目录下的EXAMPLE.conf文件拷在我们的安装路径下并修改,命令格式如下:
cpEXAMPLE.conf/usr/local/snmp/snmpd.conf//cp样例配置到安装目录下
5、vi/usr/local/snmp/snmpd.conf//编辑配置文件
把里面的NETWORK改成需要查看snmp信息的主机ip地址
把COMMUNITY改成你设定的值(自己起个字符串形式的名字)。
然后保存退出
6、/usr/local/sbin/snmpd–c/usr/local/snmp/snmpd.conf&//启动snmp
7、netstat-an//查看snmp是否启动
8、在脚本里配置snmp,使其在开机时自启动snmpd服务。(也可以不写在脚本里,每次系统启动后执行一下第7步就行了)。在脚本里的编写:
vi/etc/rc.local
添加usr/local/sbin/snmpd–c/usr/local/snmp/snmpd.confrestart
9、关闭snmp服务
ps aux |grep snmp |grep -v grep |awk '{print $2}' |xargs kill我的服务器环境是 Ubuntu 10.04 +net-snmp-5.5