1.操作环境
平台:X86
OS :SUN solaris10
snmp:5.6.1.1 ,solaris pkg安装包
snmp client:solaris10; IP:192.168.56.105
snmp server:linux; IP:192.168.56.99
1.1 安装配置方式
1)solaris系统自带snmp;
2)net-snmp pkg软件包;
3)net-snmp 编译包;
本文仅适用于方式2的安装配置;
2.准备工作
2.1 记录下系统现有的snmp和snmpd.conf文件
这一步的目的是为了防止和新装的snmp产生混淆。
#find / -name snmpd
/usr/sfw/sbin/amd64/snmpd
/usr/sfw/sbin/i86/snmpd
/usr/sfw/sbin/snmpd
#find / -name snmpd.conf
/var/sadm/pkg/SUNWsmmgr/save/pspool/SUNWsmmgr/reloc/etc/sma/snmp/snmpd.conf
/var/sadm/pkg/SUNWsacom/save/pspool/SUNWsacom/reloc/etc/snmp/conf/snmpd.conf
/var/sma_snmp/snmpd.conf
/usr/sfw/lib/sma_snmp/snmpd.conf
/etc/snmp/conf/snmpd.conf
/etc/sma/snmp/snmpd.conf
2.2 停止系统默认snmpd服务
Solaris10 新装系统后,默认自带snmp服务,并且snmp服务会随开机自动启动。
a)确认系统snmp服务是否运行:
# ps -ef | grep snmp
root /usr/sfw/sbin/snmpd
root /usr/lib/snmp/snmpdx -y -c /etc/snmp/conf
root grep snmp
b)如果能看到snmp运行中,执行下列命令,停止服务:
# svcadm disable sma
# svcadm disable seaport
# svcadm disable snmpdx
# ps -ef | grep snmp
2.3 下载net-snmp的pkg软件包
solaris10 x86 :
http://mirror.opencsw.org/opencsw/stable/i386/5.10/
solaris10 sparc:
http://mirror.opencsw.org/opencsw/stable/sparc/5.10/
根据系统平台,下载pkg.gz包:
或者使用我传到云盘的tar包,下载地址如下:
solaris10_sparc_snmp_pkg.tar
链接:https://pan.baidu.com/s/1yLVh7iY9D1569TpcLcQcZw
提取码:s18s
solaris10_x86_snmp_pkg.tar
链接:https://pan.baidu.com/s/15iKLmohAQxn98ymBywF9Zg
提取码:kui3
libgcc_s1-4.9.0,REV=2014.04.27-SunOS5.10-i386-CSW.pkg.gz
libnetsnmp25-5.6.1.1,REV=2013.08.22-SunOS5.10-i386-CSW.pkg.gz
libnetsnmpagent25-5.6.1.1,REV=2013.08.22-SunOS5.10-i386-CSW.pkg.gz
libnetsnmphelpers25-5.6.1.1,REV=2013.08.22-SunOS5.10-i386-CSW.pkg.gz
libnetsnmpmibs25-5.6.1.1,REV=2013.08.22-SunOS5.10-i386-CSW.pkg.gz
libnetsnmptrapd25-5.6.1.1,REV=2013.08.22-SunOS5.10-i386-CSW.pkg.gz
libssl1_0_0-1.0.1i,REV=2014.08.08-SunOS5.10-i386-CSW.pkg.gz
libssl_dev-1.0.1i,REV=2014.08.08-SunOS5.10-i386-CSW.pkg.gz
netsnmp-5.6.1.1,REV=2013.08.22-SunOS5.10-i386-CSW.pkg.gz
netsnmp_dev-5.6.1.1,REV=2013.08.22-SunOS5.10-i386-CSW.pkg.gz
netsnmp_py_stub-5.6.1.1,REV=2013.07.18-SunOS5.10-all-CSW.pkg.gz
3.解压安装
# gunzip -d $(ls) #解压全部gz文件
# ls -l
# 一定按照如下顺序安装软件 安装完成后,一定看一眼,输出“安装<XXXX>成功”,才表示安装成功。
# 如果显示“安装<XXXXX>部分成功”或安装失败,那么在安装完其他软件后,再次安装一遍。
# pkgadd -d libgcc_s1-4.9.0,REV=2014.04.27-SunOS5.10-sparc-CSW.pkg
# pkgadd -d libssl1_0_0-1.0.1i,REV=2014.08.08-SunOS5.10-sparc-CSW.pkg
# pkgadd -d libssl_dev-1.0.1i,REV=2014.08.08-SunOS5.10-sparc-CSW.pkg
# pkgadd -d libnetsnmptrapd25-5.6.1.1,REV=2013.08.22-SunOS5.10-sparc-CSW.pkg
# pkgadd -d libnetsnmpmibs25-5.6.1.1,REV=2013.08.22-SunOS5.10-sparc-CSW.pkg
# pkgadd -d libnetsnmphelpers25-5.6.1.1,REV=2013.08.22-SunOS5.10-sparc-CSW.pkg
# pkgadd -d libnetsnmpagent25-5.6.1.1,REV=2013.08.22-SunOS5.10-sparc-CSW.pkg
# pkgadd -d libnetsnmp25-5.6.1.1,REV=2013.08.22-SunOS5.10-sparc-CSW.pkg
# pkgadd -d netsnmp_py_stub-5.6.1.1,REV=2013.07.18-SunOS5.10-all-CSW.pkg
# pkgadd -d netsnmp_dev-5.6.1.1,REV=2013.08.22-SunOS5.10-sparc-CSW.pkg
# pkgadd -d netsnmp-5.6.1.1,REV=2013.08.22-SunOS5.10-sparc-CSW.pkg
至此,net-snmp 5.6.1.1已经安装成功了,系统多了如下两个文件:
/opt/csw/sbin/snmpd
/etc/opt/csw/snmp/snmpd.conf
4.修改配置文件
# vi /etc/opt/csw/snmp/snmpd.conf
将此处:
agentAddress udp:127.0.0.1:161
改为:
agentAddress 192.168.56.105:161 #192.168.56.105为本机IP
#将此处
view systemonly included .1.3.6.1.2.1.1
view systemonly included .1.3.6.1.2.1.25.1
#修改为:
view systemonly included .1
view systemonly included .1.3.6.1.2.1.1
view systemonly included .1.3.6.1.2.1.25.1
--------------------------------------------------------------------
#将此处:
rocommunity public default -V systemonly
#修改为:
rocommunity cmsnmp default -V systemonly #cmsnmp为自己定义的共同体名称
5.启动SNMP
# /opt/csw/sbin/snmpd
# ps -ef | grep snmp
root 1515 1 0 20:20:48 ? 1:22 /opt/csw/sbin/snmpd
root 1965 1305 0 06:00:49 pts/4 0:00 grep snmp
6.测试SNMP
6.1 本地测试
# snmpget -v 1 -c cmsnmp localhost sysUpTime.0 #当前配置文件下,使用localhost应该无数据输出。
# snmpwalk -v 1 -c cmsnmp -m ALL localhost .1.3 | more
# snmpwalk -v 1 -c cmsnmp -m ALL localhost .1.3 | wc -l #如果输出统计数量只有几十,请检查snmpd.conf文件
# 将localhost换成本地IP地址后再执行一遍,看看是否有输出信息
# snmpget -v 1 -c cmsnmp 192.168.56.105 sysUpTime.0
# snmpwalk -v 1 -c cmsnmp -m ALL 192.168.56.105 .1.3 | more
# snmpwalk -v 1 -c cmsnmp -m ALL 192.168.56.105 .1.3 | wc -l
6.2 server端测试
# cmsnmp为共同体名称
# 10.168.1.129为client端IP地址
snmpwalk -v 1 -c cmsnmp 192.168.56.105 .1.3.6.1.2.1.25.2.2 #取得系统总内存
snmpwalk -v 1 -c cmsnmp 192.168.56.105 hrSystemNumUsers #取得系统用户数
snmpwalk -v 1 -c cmsnmp 192.168.56.105 .1.3.6.1.2.1.4.20 #取得IP信息
snmpwalk -v 1 -c cmsnmp 192.168.56.105 system #查看系统信息
snmpwalk -v 1 -c cmsnmp 192.168.56.105 ifDescr #获取网卡信息
7.安装中遇到的报错
7.1 致命的: libcrypto.so.1.0.0: 打开失败
执行snmpd命令,会有如下报错信息:
#/opt/csw/sbin/snmpd -v
ld.so.1: snmpd: 致命的: libcrypto.so.1.0.0: 打开失败: 无此文件或目录
NET-SNMP version: 5.6.1.1
Web: http://www.net-snmp.org/
Email: [email protected]
这是因为缺少openssl的lib库文件,执行如下操作:
# pkgadd -d libssl_dev-1.0.1i,REV=2014.08.08-SunOS5.10-i386-CSW.pkg
# pkgadd -d libssl1_0_0-1.0.1i,REV=2014.08.08-SunOS5.10-i386-CSW.pkg
7.2 snmpwalk获取数据失败
故障现象:
在本地执行如下命令,有对应输出信息:
# snmpget -v 1 -c cmsnmp localhost sysUpTime.0
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (3589394) 9:58:13.94
# snmpwalk -v 1 -c cmsnmp -m ALL localhost .1.3 | more
SNMPv2-MIB::sysDescr.0 = STRING: SunOS solaris2 5.10 Generic_147148-26 i86pc
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-TC::solaris
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (3595007) 9:59:10.07
SNMPv2-MIB::sysContact.0 = STRING: Me <[email protected]>
SNMPv2-MIB::sysName.0 = STRING: solaris2
SNMPv2-MIB::sysLocation.0 = STRING: Sitting on the Dock of the Bay
SNMPv2-MIB::sysServices.0 = INTEGER: 72
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORID.1 = OID: SNMP-MPD-MIB::snmpMPDMIBObjects.3.1.1
...
...
在本地执行如下命令,没有输出信息(同样的命令,只是licalhost换成了本地IP地址)
# snmpget -v 1 -c cmsnmp 192.168.56.105 sysUpTime.0
Timeout: No Response from 192.168.56.105
# snmpwalk -v 1 -c cmsnmp -m ALL 192.168.56.105 .1.3 | more
Timeout: No Response from 192.168.56.105
在server端执行如下命令,同样没有输出信息:
# snmpget -v 1 -c cmsnmp 192.168.56.105 sysUpTime.0
Timeout: No Response from 192.168.56.105
# snmpwalk -v 1 -c cmsnmp -m ALL 192.168.56.105 .1.3 | more
Timeout: No Response from 192.168.56.105
一开始以为是防火墙设置导致,后来查看,solaris系统默认防火墙是关闭状态。
后来找到一个方法,需要在snmpd.conf配置文件,最后增加两行内容:
# vi /etc/opt/csw/snmp/snmpd.conf
#文件最后增加:
interface e1000g0 #e1000g0 为网口名称,根据实际配置情况修改
agentaddress 192.168.56.105:161 #192.168.56.105为本机IP
配置其他平台系统redhat,aix时,不曾遇到这个问题。而且solaris系统默认snmp或者编译方式安装的net-snmp也没遇到这个问题。目前只有在solaris下用pkg包安装遇到了这个问题,供工大家参考。
7.3 snmpget: command not found
故障现象
# snmpget -v 1 -c cmsnmp 192.168.56.105 sysUpTime.0
-bash: snmpget: command not found
解决:
# find / -name snmpget
/opt/csw/bin/snmpget
/usr/sfw/bin/snmpget
# vi ~/.profile #修改环境变量
在PATH路径中,添加:
/opt/csw/bin:
保存退出后,登出系统重新登录后生效。