安装包
软件名称:net-snmp-5.7.2.tar.gz
下载地址:http://sourceforge.net/projects/net-snmp/files/net-snmp/5.7.2/net-snmp-5.7.2.tar.gz/download
安装
拷贝net-snmp-5.7.2.tar.gz到目录 /downloads下
解压缩
# tar -xzvf net-snmp-5.7.2.tar.gz
# cd net-snmp-5.7.2
执行配置命令
# ./configure --prefix=/usr/local/net-snmp
--with-default-snmp-version="3"
--with-sys-contact="brusezhu9@gmail.com"
--with-sys-location="China"
--with-logfile="/var/log/snmpd.log"
--with-persistent-directory="/var/net-snmp"
--enable-mfd-rewrites
解释:
prefix:net-snmp将要安装的路径
enable-mfd-rewrites:允许用新的MFD重写可用的mid模块
with-default-snmp-version:默认的SNMP版本
with-sys-contact:可以配置该设备的联系人
with-sys-location:该设备的位置
with-logfile:日志文件路径
with-persistent-directory:不变数据存储目录编译
# make
安装
# make install
配置snmpd.conf
首先:进入/usr/local/net-snmp/share/snmp
# cd /usr/local/net-snmp/share/snmp
接着:使用配置向导创建snmpd.conf
# ../../bin/snmpconf -g basic_setup
继续:拷贝新创建的snmpd.conf到提示的目录“/usr/local/net-snmp/share/snmp/”The following installed configuration files were found: 1: /usr/local/net-snmp/share/snmp/snmpd.conf Would you like me to read them in? Their content will be merged with the output files created by this session. Valid answer examples: "all", "none","3","1,2,5" Read in which (default = all): none ************************************************ *** Beginning basic system information setup *** ************************************************ Do you want to configure the information returned in the system MIB group (contact info, etc)? (default = y): y Configuring: syslocation Description: The [typically physical] location of the system. Note that setting this value here means that when trying to perform an snmp SET operation to the sysLocation.0 variable will make the agent return the "notWritable" error code. IE, including this token in the snmpd.conf file will disable write access to the variable. arguments: location_string The location of the system: tianjin Finished Output: syslocation tianjin Configuring: syscontact Description: The contact information for the administrator Note that setting this value here means that when trying to perform an snmp SET operation to the sysContact.0 variable will make the agent return the "notWritable" error code. IE, including this token in the snmpd.conf file will disable write access to the variable. arguments: contact_string The contact information: brusezhu9@gmail.com Finished Output: syscontact brusezhu9@gmail.com Do you want to properly set the value of the sysServices.0 OID (if you don't know, just say no)? (default = y): no ************************************** *** BEGINNING ACCESS CONTROL SETUP *** ************************************** Do you want to configure the agent's access control? (default = y): Do you want to allow SNMPv3 read-write user based access (default = y): n Do you want to allow SNMPv3 read-only user based access (default = y): n Do you want to allow SNMPv1/v2c read-write community access (default = y): n Do you want to allow SNMPv1/v2c read-only community access (default = y): y Configuring: rocommunity Description: a SNMPv1/SNMPv2c read-only access community name arguments: community [default|hostname|network/bits] [oid] The community name to add read-only access for: public The hostname or network address to accept this community name from [RETURN for all]: The OID that this community should be restricted to [RETURN for no-restriction]: Finished Output: rocommunity public Do another rocommunity line? (default = y): n **************************************** *** Beginning trap destination setup *** **************************************** Do you want to configure where and if the agent will send traps? (default = y): n **************************************** *** Beginning monitoring setup *** **************************************** Do you want to configure the agent's ability to monitor various aspects of your system? (default = y): n The following files were created: snmpd.conf /usr/local/net-snmp/share/snmp/ snmpd.conf These files should be moved to /usr/local/net-snmp/share/snmp if you want them used by everyone on the system. In the future, if you add the -i option to the command line I'll copy them there automatically for you. Or, if you want them for your personal use only, copy them to /root/.snmp . In the future, if you add the -p option to the command line I'll copy them there automatically for you.
# snmpd.conf /usr/local/net-snmp/share/snmp/
启动服务
# cd /usr/local/net-snmp/sbin
# ./snmpd -c /usr/local/net-snmp/share/snmp/snmpd.conf &
检查服务
# ps -ef | grep snmpd
root 9244 1 0 15:38 ? 00:00:00 ./snmpd -c /usr/local/net-snmp/share/snmp/snmpd.conf
root 9247 27939 0 15:39 pts/1 00:00:00 grep snmpd说明服务已经正常启动
检测161端口
# lsof -i:161
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
snmpd 9244 root 6u IPv4 445768 0t0 UDP *:snmp
注意:*表示允许所有主机的访问161端口
设置net-snmp自启动
在/etc/rc.local文件的末尾加上如下所示代码
/usr/local/net-snmp/sbin/snmpd -c /usr/local/net-snmp/share/snmp/snmpd.conf &
设置环境变量
在/etc/profile文件中export前面添加如下代码
PATH=/usr/local/net-snmp/sbin:/usr/local/net-snmp/bin:$PATH
LD_LIBRARY_PATH=/usr/local/net-snmp/lib:$LD_LIBRARY_PATH
测试
localhost测试
# snmpwalk -v 2c -c public localhost if
出现如下信息
IF-MIB::ifIndex.1 = INTEGER: 1
IF-MIB::ifIndex.2 = INTEGER: 2
IF-MIB::ifDescr.1 = STRING: lo
IF-MIB::ifDescr.2 = STRING: eth0
IF-MIB::ifType.1 = INTEGER: softwareLoopback(24)
IF-MIB::ifType.2 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifMtu.1 = INTEGER: 16436
IF-MIB::ifMtu.2 = INTEGER: 1500
IF-MIB::ifSpeed.1 = Gauge32: 10000000
IF-MIB::ifSpeed.2 = Gauge32: 100000000
IF-MIB::ifPhysAddress.1 = STRING:
IF-MIB::ifPhysAddress.2 = STRING: d4:3d:7e:24:17:5a
IF-MIB::ifAdminStatus.1 = INTEGER: up(1)
IF-MIB::ifAdminStatus.2 = INTEGER: up(1)
IF-MIB::ifOperStatus.1 = INTEGER: up(1)
IF-MIB::ifOperStatus.2 = INTEGER: up(1)
IF-MIB::ifLastChange.1 = Timeticks: (0) 0:00:00.00
IF-MIB::ifLastChange.2 = Timeticks: (0) 0:00:00.00
IF-MIB::ifInOctets.1 = Counter32: 872801
IF-MIB::ifInOctets.2 = Counter32: 27205892
IF-MIB::ifInUcastPkts.1 = Counter32: 15809
IF-MIB::ifInUcastPkts.2 = Counter32: 145137
IF-MIB::ifInNUcastPkts.1 = Counter32: 0
IF-MIB::ifInNUcastPkts.2 = Counter32: 0
IF-MIB::ifInDiscards.1 = Counter32: 0
IF-MIB::ifInDiscards.2 = Counter32: 0
IF-MIB::ifInErrors.1 = Counter32: 0
IF-MIB::ifInErrors.2 = Counter32: 0
IF-MIB::ifInUnknownProtos.1 = Counter32: 0
IF-MIB::ifInUnknownProtos.2 = Counter32: 0
IF-MIB::ifOutOctets.1 = Counter32: 872801
IF-MIB::ifOutOctets.2 = Counter32: 86801071
IF-MIB::ifOutUcastPkts.1 = Counter32: 15809
IF-MIB::ifOutUcastPkts.2 = Counter32: 121285
IF-MIB::ifOutNUcastPkts.1 = Counter32: 0
IF-MIB::ifOutNUcastPkts.2 = Counter32: 0
IF-MIB::ifOutDiscards.1 = Counter32: 0
IF-MIB::ifOutDiscards.2 = Counter32: 0
IF-MIB::ifOutErrors.1 = Counter32: 0
IF-MIB::ifOutErrors.2 = Counter32: 0
IF-MIB::ifOutQLen.1 = Gauge32: 0
IF-MIB::ifOutQLen.2 = Gauge32: 0
IF-MIB::ifSpecific.1 = OID: SNMPv2-SMI::zeroDotZero
IF-MIB::ifSpecific.2 = OID: SNMPv2-SMI::zeroDotZero
远程测试
使用工具mibbrowser查看,这里就不说明了,大家可以google一下