SNMP(Simple Network Management Protocol,简单网络管理协议)的前身是简单网关监控协议(SGMP),用来对通信线路进行管理。
一、查看是否安装snmp
我的测试环境里已经安装过了snmp,这里我先卸载再安装
[root@localhost~]#rpm-qa|grep-inet-snmp net-snmp-5.5-49.el6.x86_64 net-snmp-libs-5.5-49.el6.x86_64 [root@localhost~]#rpm-qa|grep-inet-snmp|xargsrpm-e--nodeps [root@localhost~]#rpm-qa|grep-inet-snmp [root@localhostPackages]#rpm-qa|grep-isensors lm_sensors-libs-3.1.1-17.el6.x86_64 [root@localhostPackages]#rpm-qa|grep-isensors|xargsrpm-e--nodeps [root@localhostPackages]#rpm-qa|grep-isensors [root@localhostPackages]#
二、安装snmp
直接挂载系统安装盘,里面就有rpm安装包,
安装snmp服务需要的rpm包:
lm_sensors-libs-3.1.1-17.el6.x86_64.rpm
lm_sensors-3.1.1-17.el6.x86_64.rpm
以下这三个包有一定的版本要求,必须版本一致,否则安装无法成功。安装也有一定顺序,在安装的时候,会有提示。
net-snmp-libs-5.5-49.el6.x86_64.rpm
net-snmp-5.5-49.el6.x86_64.rpm 必须先安装net-snmp-libs
net-snmp-utils-5.5-49.el6.x86_64.rpm 不是必须安装的包,但安装它会带来不少帮助,它提供了很多工具,例如可以使用snmptranslate命令查看oid,可以使用snmpget、snmpwalk命令等。
[root@localhostsrc]#mount/dev/cdrom/mnt/ [root@localhostsrc]#cd/mnt/Packages/ [root@localhostPackages]#uname-i x86_64 [root@localhostPackages]#rpm-ivhlm_sensors-libs-3.1.1-17.el6.x86_64.rpm warning:lm_sensors-libs-3.1.1-17.el6.x86_64.rpm:HeaderV3RSA/SHA1Signature,keyIDc105b9de:NOKEY Preparing...###########################################[100%] 1:lm_sensors-libs###########################################[100%] [root@localhostPackages]#rpm-ivhlm_sensors-3.1.1-17.el6.x86_64.rpm warning:lm_sensors-3.1.1-17.el6.x86_64.rpm:HeaderV3RSA/SHA1Signature,keyIDc105b9de:NOKEY Preparing...###########################################[100%] 1:lm_sensors###########################################[100%] [root@localhostPackages]#rpm-ivhnet-snmp-libs-5.5-49.el6.x86_64.rpm warning:net-snmp-libs-5.5-49.el6.x86_64.rpm:HeaderV3RSA/SHA1Signature,keyIDc105b9de:NOKEY Preparing...###########################################[100%] 1:net-snmp-libs###########################################[100%] [root@localhostPackages]#rpm-ivhnet-snmp-5.5-49.el6.x86_64.rpm warning:net-snmp-5.5-49.el6.x86_64.rpm:HeaderV3RSA/SHA1Signature,keyIDc105b9de:NOKEY Preparing...###########################################[100%] 1:net-snmp###########################################[100%] [root@localhostPackages]#rpm-ivhnet-snmp-utils-5.5-49.el6.x86_64.rpm warning:net-snmp-utils-5.5-49.el6.x86_64.rpm:HeaderV3RSA/SHA1Signature,keyIDc105b9de:NOKEY Preparing...###########################################[100%] 1:net-snmp-utils###########################################[100%] [root@localhostPackages]#
或者yum装
[root@localhostPackages]#yum-yinstallnet-snmp-libsnet-snmpnet-snmp-utils^C [root@localhostPackages]#yum-yinstallnet-snmp*
验证snmp服务
[root@localhostPackages]#chkconfigsnmpdon [root@localhostPackages]#rpm-qcnet-snmp /etc/snmp/snmpd.conf /etc/snmp/snmptrapd.conf /etc/sysconfig/snmpd /etc/sysconfig/snmptrapd [root@localhostPackages]#rpm-qf/etc/snmp/snmpd.conf net-snmp-5.5-49.el6.x86_64 [root@localhostPackages]#snmpwalk-v2c-cpublic127.0.0.1sysName.0#获取到本机主机名 SNMPv2-MIB::sysName.0=STRING:localhost.localdomain [root@localhostPackages]#snmptranslate-To|head#查oid .1.3 .1.3.6 .1.3.6.1 .1.3.6.1.1 .1.3.6.1.2 .1.3.6.1.2.1 .1.3.6.1.2.1.1 .1.3.6.1.2.1.1.1 .1.3.6.1.2.1.1.2 .1.3.6.1.2.1.1.3 [root@localhostPackages]#
启动时发生错误:
snmpd: error while loading shared libraries: libnetsnmpagent.so.25:
cannot open shared object file: No such file or directory
解决办法:#export LD_LIBRARY_PATH=/usr/local/lib
但这样只能使用一次,最好是:vi /etc/profile 在最后一行加入:export
LD_LIBRARY_PATH=/usr/local/lib
三、配置snmp
安装完成后,使用的是snmp的默认配置,通过这些默认配置,我们只能获取主机的部分信息。但一些其他的重要信息,无法获取。如主机的cpu使用情况,内存使用情况等。
1、
[root@localhostPackages]#vim/etc/snmp/snmpd.conf #sec.namesourcecommunity com2secnotConfigUserdefaultpublic
首先定义一个共同体名称(community),这里是 public ,及可以访问这个 public 的用户名(sec name),这里是 notConfigUser 。public 相当于用户 notConfigUser 的密码。
2、
[root@localhostPackages]#vim/etc/snmp/snmpd.conf #groupNamesecurityModelsecurityName groupnotConfigGroupv1notConfigUser groupnotConfigGroupv2cnotConfigUser
定义一个组名(groupName)这里是 notConfigGroup,及组的安全级别(v1/v2c),把notConfigUser 这个用户加到这个组中。
3、修改查看设备节点的权限
[root@localhostPackages]#snmpwalk-v2c-cpublic127.0.0.11.3.6.1.4.1.2021.11.11.0 UCD-SNMP-MIB::sscpuIdle.0=NomorevariablesleftinthisMIBView(ItispasttheendoftheMIBtree) [root@localhostPackages]#
无法获取cpu的空闲率(注:1.3.6.1.4.1.2021.11.11.0是主机cpu空闲率的oid),
view:定义了可以查看哪些节点设备的信息。snmp默认配置只能查看.1.3.6.1.2.1.1和.1.3.6.1.2.1.25.1.1节点下的设备信息,而主机cpu和内存等设备都不在这些节点下,所以无法获取这些数据。
[root@localhostPackages]#vim/etc/snmp/snmpd.conf #Makeatleastsnmpwalk-v1localhost-cpublicsystemfastagain. #nameincl/exclsubtreemask(optional) viewallincluded.1 viewsystemviewincluded.1.3.6.1.2.1.1 viewsystemviewincluded.1.3.6.1.2.1.25.1.1
在此处添加了一行:
view all included .1
表示可以查看.1节点下的所有设备信息。
[root@localhostPackages]#snmpwalk-v2c-cpublic127.0.0.11.3.6.1.4.1.2021.11.11.0 UCD-SNMP-MIB::sscpuIdle.0=INTEGER:99 [root@localhostPackages]#
4
[root@localhostPackages]#vim/etc/snmp/snmpd.conf #groupcontextsec.modelsec.levelprefixreadwritenotif accessnotConfigGroup""anynoauthexactallnonenone [root@localhostPackages]#/etc/init.d/snmpdrestart
定义组notConfigGroup在all这个视图范围内可做的操作,这时定义了 notConfigGroup组的成员可对 .1 这个视图做只读操作。这里的名称all要和view中的名称all保持一致.这样对 snmpd.conf 文件就基本完成了.
[root@localhostPackages]#snmpwalk-v2c127.0.0.1-cpublicsystem SNMPv2-MIB::sysDescr.0=STRING:Linuxlocalhost.localdomain2.6.32-431.el6.x86_64#1SMPSunNov1022:19:54EST2013x86_64 SNMPv2-MIB::sysObjectID.0=OID:NET-SNMP-MIB::netSnmpAgentOIDs.10 DISMAN-EVENT-MIB::sysUpTimeInstance=Timeticks:(212)0:00:02.12 SNMPv2-MIB::sysContact.0=STRING:Root<root@localhost>(configure/etc/snmp/snmp.local.conf) SNMPv2-MIB::sysName.0=STRING:localhost.localdomain
上述信息说明 SNMP 已经正常工作了
三、防火墙开启UDP 161端口
[root@localhost~]#vim/etc/sysconfig/iptables -AINPUT-mstate--stateNEW-mtcp-ptcp--dport22-jACCEPT -AINPUT-mstate--stateNEW-mudp-ptcp--dport161-jACCEPT [root@localhost~]#/etc/init.d/iptablesrestart