netsnmp的源码包可以到 net-snmp官网上去下载,http://www.net-snmp.org。
把下载好的压缩包net-snmp-5.7.3.tar.gz拷贝到linux系统中并解压。
[root@localhost jiangxin]# tar -zxvf net-snmp-5.7.3.tar.gz
进入解压的 net-snmp-5.7.3文件夹。可以看到configure文件,现在就使用这个文件来自动配置。
当然,自动配置也可以定制一些内容,比如安装路径等。
./configure参数 含义
--prefix=/usr/local/net-snmp net snmp的安装路径
--enable-mfd-rewrites 允许新的mfd重写可用的mid模块
--with-default-snmp-version="3" 默认的snmp版本
--with-sys-contact="name,E_mail:maileaddress " 该设备的联系人
--with-sys-location="China" 该设备的位置
--with-logfile="/var/log/snmpd.log" 日志文件路径
--with-persistent-directory="/var/net-snmp" 不变数据存储目录
我们这里只配置安装路径,其它的都使用默认设置。
[[email protected]]# ./configure --prefix=/usr/local/net-snmp
注意: 当输入配置之后按回车键之后,当系统提示-Press return tocontinue-时,按回车键继续,然后后续的提示都不输入,直接按回车选择默认。
执行完配置(没有中断,没有要求按某个键)之后会出现如下所示的信息。有可能出现的和下面的不一样,这取决于配置,但只要出现和这个相似的部分,说明配置是成功的。没有必要仔细看这个配置摘要。
make编译
[root@localhost net-snmp-5.7.3]# make
makeinstall安装
编译成功后就可以安装了,前面设置了安装路径是/usr/local/net-snmp,因为这个路径是的所有者(own)和所在组(group)都是root,所有需要用root权限执行。
[root@localhost net-snmp-5.7.3]# make install
安装完成后进入目录/usr/local/net-snmp/sbin即可看到可执行文件snmpd,执行./snmpd -v输出一下版本信息。因为我们这里还没有把它的路径添加到环境变量,所有还不能在任意位置直接输入snmpd来运行。
[root@localhost sbin]# ./snmpd –v
NET-SNMP version: 5.7.3
Web: http://www.net-snmp.org/
Email: [email protected]
snmpd.conf是snmp服务的配置文件。
生成snmpd.conf
先将EXAMPLE.conf文件复制到/usr/local/net-snmp/share/snmp,并重命名snmpd.conf
[root@localhost net-snmp-5.7.3]#cp EXAMPLE.conf /usr/local/net-snmp/share/snmp/snmpd.conf
修改snmpd.conf
使用到的com2sec/group/view/access的说明在EXAMPLE.conf文件的注释中可以看到(大致是65行)。
首先定义一个首共同体名称(community),这里是 public。以及可以访问这个 public 的用户名(sec name),这里是roUser。public 相当于用户roUser 的密码。
在snmpd.conf文件中添加下面的语句。(第一句是注释)
#sec.name source community
com2sec roUser localhost public
然后定义一个组名(groupName)这里是 notConfigGroup,以及组的安全级别,并把 notConfigGroup 这个用户加到这个组中。在snmpd.conf文件中添加下面的语句。(第一句是注释)
#groupName securityModel securityName
group roGroup v1 roUser
group roGroup v2c roUser
接着定义一个可操作的视图(view)名, 这里是all,范围是 .1。
在snmpd.conf文件中添加下面的语句。(第一句是注释)
#name incl/excl subtree mask(optional)
view all included .1
最后定义notConfigUser 这个组在 all 这个视图范围内可做的操作,这时定义了 notConfigUser组的成员可对 .1 这个视图做只读操作。
#group context sec.model sec.levelprefix read write notif
access roGroup "" any noauth exact all none none
最后所有配置都添加完成,在配置文件中如下图所示
启动net-snmp服务
进入到sbin目录,然后启动net-snmp
[root@localhost ~]# cd /usr/local/net-snmp/sbin/
[root@localhost sbin]# ./snmpd -f -Le
Turningon AgentX master support.
NET-SNMPversion 5.7.3
NoShmem line in /proc/meminfo
这里没有加配置文件路径,是因为使用的默认配置文件/usr/local/netsnmp/share/snmp/snmpd.conf
执行成功后我们可以进入到/usr/local/net-snmp/bin目录(上面snmpd终端保留,再另开一个终端),然后执行snmpwalk,snmpget等命令来查看一下。
抓取操作系统信息
[root@localhostbin]# ./snmpwalk 127.0.0.1 -cpublic -v 2c 1.3.6.1.2.1.1.1
SNMPv2-MIB::sysDescr.0= STRING: Linux localhost 2.6.21-1.3194.fc7 #1 SMP Wed May 23 22:35:01 EDT 2007i686
抓取系统开机时间
[root@localhostbin]# ./snmpwalk 127.0.0.1 -cpublic -v 2c 1.3.6.1.2.1.1.3
DISMAN-EVENT-MIB::sysUpTimeInstance= Timeticks: (609788) 1:41:37.88
抓取机器名
[root@localhostbin]# ./snmpwalk 127.0.0.1 -cpublic -v 2c 1.3.6.1.2.1.1.5
SNMPv2-MIB::sysName.0= STRING: localhost