设为首页 收藏本站
查看: 2183|回复: 0

[经验分享] CentOS6.5下SNMP安装

[复制链接]

尚未签到

发表于 2018-4-26 07:47:54 | 显示全部楼层 |阅读模式
  SNMP(Simple Network Management Protocol,简单网络管理协议)的前身是简单网关监控协议(SGMP),用来对通信线路进行管理。

  一、查看是否安装snmp
  我的测试环境里已经安装过了snmp,这里我先卸载再安装
[root@localhost ~]# rpm -qa|grep -i net-snmp
net-snmp-5.5-49.el6.x86_64
net-snmp-libs-5.5-49.el6.x86_64
[root@localhost ~]# rpm -qa|grep -i net-snmp|xargs rpm -e --nodeps
[root@localhost ~]# rpm -qa|grep -i net-snmp
[root@localhost Packages]# rpm -qa|grep -i sensors
lm_sensors-libs-3.1.1-17.el6.x86_64
[root@localhost Packages]# rpm -qa|grep -i sensors|xargs rpm -e --nodeps
[root@localhost Packages]# rpm -qa|grep -i sensors
[root@localhost Packages]#  二、安装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@localhost src]# mount /dev/cdrom /mnt/
[root@localhost src]# cd /mnt/Packages/
[root@localhost Packages]# uname -i
x86_64
[root@localhost Packages]# rpm -ivh lm_sensors-libs-3.1.1-17.el6.x86_64.rpm
warning: lm_sensors-libs-3.1.1-17.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
   1:lm_sensors-libs        ########################################### [100%]
[root@localhost Packages]# rpm -ivh lm_sensors-3.1.1-17.el6.x86_64.rpm
warning: lm_sensors-3.1.1-17.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
   1:lm_sensors             ########################################### [100%]
[root@localhost Packages]# rpm -ivh net-snmp-libs-5.5-49.el6.x86_64.rpm
warning: net-snmp-libs-5.5-49.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
   1:net-snmp-libs          ########################################### [100%]
[root@localhost Packages]# rpm -ivh net-snmp-5.5-49.el6.x86_64.rpm
warning: net-snmp-5.5-49.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
   1:net-snmp               ########################################### [100%]
[root@localhost Packages]# rpm -ivh net-snmp-utils-5.5-49.el6.x86_64.rpm
warning: net-snmp-utils-5.5-49.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
   1:net-snmp-utils         ########################################### [100%]
[root@localhost Packages]#  或者yum装
[root@localhost Packages]# yum -y install net-snmp-libs net-snmp net-snmp-utils   ^C
[root@localhost Packages]# yum -y install net-snmp*  验证snmp服务
[root@localhost Packages]# chkconfig snmpd on
[root@localhost Packages]# rpm -qc net-snmp
/etc/snmp/snmpd.conf
/etc/snmp/snmptrapd.conf
/etc/sysconfig/snmpd
/etc/sysconfig/snmptrapd
[root@localhost Packages]# rpm -qf /etc/snmp/snmpd.conf
net-snmp-5.5-49.el6.x86_64
[root@localhost Packages]# snmpwalk -v 2c -c public 127.0.0.1 sysName.0  #获取到本机主机名
SNMPv2-MIB::sysName.0 = STRING: localhost.localdomain
[root@localhost Packages]# 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@localhost Packages]#  
  启动时发生错误:
  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@localhost Packages]# vim /etc/snmp/snmpd.conf
#         sec.name        source          community
com2sec  notConfigUser    default          public  首先定义一个共同体名称(community),这里是 public ,及可以访问这个 public 的用户名(sec name),这里是 notConfigUser 。public 相当于用户 notConfigUser 的密码。
  2、
[root@localhost Packages]# vim /etc/snmp/snmpd.conf
#       groupName       securityModel     securityName
group   notConfigGroup     v1             notConfigUser
group   notConfigGroup     v2c            notConfigUser  定义一个组名(groupName)这里是 notConfigGroup,及组的安全级别(v1/v2c),把notConfigUser 这个用户加到这个组中。
  

  3、修改查看设备节点的权限
[root@localhost Packages]# snmpwalk -v 2c -c public 127.0.0.1 1.3.6.1.4.1.2021.11.11.0
UCD-SNMP-MIB::ssCpuIdle.0 = No more variables left in this MIB View (It is past the end of the MIB tree)
[root@localhost Packages]#  无法获取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@localhost Packages]# vim /etc/snmp/snmpd.conf
# Make at least  snmpwalk -v 1 localhost -c public system fast again.
#          name           incl/excl     subtree         mask(optional)
view        all           included       .1
view    systemview        included       .1.3.6.1.2.1.1
view    systemview        included       .1.3.6.1.2.1.25.1.1  在此处添加了一行:
  view    all    included   .1
  表示可以查看.1节点下的所有设备信息。
[root@localhost Packages]# snmpwalk -v 2c -c public 127.0.0.1 1.3.6.1.4.1.2021.11.11.0
UCD-SNMP-MIB::ssCpuIdle.0 = INTEGER: 99
[root@localhost Packages]#  4
[root@localhost Packages]# vim /etc/snmp/snmpd.conf
#           group        context sec.model  sec.level prefix   read     write  notif
access  notConfigGroup    ""      any       noauth    exact     all      none  none
[root@localhost Packages]# /etc/init.d/snmpd restart  定义组notConfigGroup在all这个视图范围内可做的操作,这时定义了 notConfigGroup组的成员可对 .1 这个视图做只读操作。这里的名称all要和view中的名称all保持一致.这样对 snmpd.conf 文件就基本完成了.
[root@localhost Packages]# snmpwalk -v 2c 127.0.0.1 -c public system
SNMPv2-MIB::sysDescr.0 = STRING: Linux localhost.localdomain 2.6.32-431.el6.x86_64 #1 SMP Sun Nov 10 22:19:54 EST 2013 x86_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
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p tcp --dport 161 -j ACCEPT
[root@localhost ~]# /etc/init.d/iptables restartSNMP安装、简单配置完成,至此,可以通过SNMP获取本地的相关信息.

现在很多监控系统都是根据SNMP进行的,而SNMP监控的性能指标很多都是通过snmpwalk采集设备的OID信息。snmpwalk是SNMP的一个工具,它使用SNMP的GETNEXT请求查询指定OID(SNMP协议中的对象标识)入口的所有OID树信息,并显示给用户。通过snmpwalk也可以查看支持SNMP协议(可网管)的设备的一些其他信息,比如cisco交换机或路由器IP地址、内存使用率等。snmpwalk没有单独的安装包,它被包含在net-snmp-utils软件包中。

一、snmpwalk安装
[root@localhost ~]# yum -y install net-snmp-utils
[root@localhost ~]# snmpwalk -h DSC0000.png
  snmpwalk的参数比较多,但是我们比较常用的就只有-v和-c参数:
  –h:显示帮助。
  –v:指定snmp的版本, 1或者2c或者3。
  –c:指定连接设备SNMP密码。
  –V:显示当前snmpwalk命令行版本。
  –r:指定重试次数,默认为0次。
  –t:指定每次请求的等待超时时间,单为秒,默认为3秒。
  –l:指定安全级别:noAuthNoPriv|authNoPriv|authPriv。
  –a:验证协议:MD5|SHA。只有-l指定为authNoPriv或authPriv时才需要。
  –A:验证字符串。只有-l指定为authNoPriv或authPriv时才需要。
  –x:加密协议:DES。只有-l指定为authPriv时才需要。
  –X:加密字符串。只有-l指定为authPriv时才需要。
  二、snmpwalk的使用
  snmpwalk使用方法很简单:
  snmpwalk -v 1或2c或3(代表SNMP版本) -c SNMP密码 IP地址 OID(对象标示符)
  –v:指定snmp的版本, 1或2c或3,该参数必须有。
  –c:指定连接设备SNMP读密码,该参数必须有。
  IP:指定要walk的设备的IP地址,该参数必须有。
  OID:代表要获取设备的指标oid,该参数不是必须的。
例如:获取10.15.44.162进程数量、系统总内存
这里使用了iReasoning MIB Browser这个MIB浏览软件以配合实验。
DSC0001.png DSC0002.png
一些snmp常用的一些OID,比如cpu、内存、硬盘什么的。先了解这些,在使用snmp监控服务器。

系统参数(1.3.6.1.2.1.1)
OID描述备注请求方式
.1.3.6.1.2.1.1.1.0获取系统基本信息SysDescGET
.1.3.6.1.2.1.1.3.0监控时间sysUptimeGET
.1.3.6.1.2.1.1.4.0系统联系人sysContactGET
.1.3.6.1.2.1.1.5.0获取机器名SysNameGET
.1.3.6.1.2.1.1.6.0机器坐在位置SysLocationGET
.1.3.6.1.2.1.1.7.0机器提供的服务SysServiceGET
.1.3.6.1.2.1.25.4.2.1.2系统运行的进程列表hrSWRunNameWALK
.1.3.6.1.2.1.25.6.3.1.2系统安装的软件列表hrSWInstalledNameWALK

网络接口(1.3.6.1.2.1.2)
OID描述备注请求方式
.1.3.6.1.2.1.2.1.0网络接口的数目IfNumberGET
.1.3.6.1.2.1.2.2.1.2网络接口信息描述IfDescrWALK
.1.3.6.1.2.1.2.2.1.3网络接口类型IfTypeWALK
.1.3.6.1.2.1.2.2.1.4接口发送和接收的最大IP数据报[BYTE]IfMTUWALK
.1.3.6.1.2.1.2.2.1.5接口当前带宽[bps]IfSpeedWALK
.1.3.6.1.2.1.2.2.1.6接口的物理地址IfPhysAddressWALK
.1.3.6.1.2.1.2.2.1.8接口当前操作状态[up|down]IfOperStatusWALK
.1.3.6.1.2.1.2.2.1.10接口收到的字节数IfInOctetWALK
.1.3.6.1.2.1.2.2.1.16接口发送的字节数IfOutOctetWALK
.1.3.6.1.2.1.2.2.1.11接口收到的数据包个数IfInUcastPktsWALK
.1.3.6.1.2.1.2.2.1.17接口发送的数据包个数IfOutUcastPktsWALK

CPU及负载
OID描述备注请求方式
. 1.3.6.1.4.1.2021.11.9.0用户CPU百分比ssCpuUserGET
. 1.3.6.1.4.1.2021.11.10.0系统CPU百分比ssCpuSystemGET
. 1.3.6.1.4.1.2021.11.11.0空闲CPU百分比ssCpuIdleGET
. 1.3.6.1.4.1.2021.11.50.0原始用户CPU使用时间ssCpuRawUserGET
.1.3.6.1.4.1.2021.11.51.0原始nice占用时间ssCpuRawNiceGET
. 1.3.6.1.4.1.2021.11.52.0原始系统CPU使用时间ssCpuRawSystem.GET
. 1.3.6.1.4.1.2021.11.53.0原始CPU空闲时间ssCpuRawIdleGET
. 1.3.6.1.2.1.25.3.3.1.2CPU的当前负载,N个核就有N个负载hrProcessorLoadWALK

内存及磁盘(1.3.6.1.2.1.25)
OID描述描述请求方式
.1.3.6.1.2.1.25.2.2.0获取内存大小hrMemorySizeGET
.1.3.6.1.2.1.25.2.3.1.1.1.3.6.1.2.1.25.2.3.1.1hrStorageIndexWALK
.1.3.6.1.2.1.25.2.3.1.2.1.3.6.1.2.1.25.2.3.1.2hrStorageType[OID]WALK
.1.3.6.1.2.1.25.2.3.1.3存储设备描述hrStorageDescrWALK
.1.3.6.1.2.1.25.2.3.1.4簇的大小hrStorageAllocationUnitsWALK
.1.3.6.1.2.1.25.2.3.1.5簇的的数目hrStorageSizeWALK
.1.3.6.1.2.1.25.2.3.1.6使用多少,跟总容量相除就是占用率hrStorageUsedWALK
.1.3.6.1.4.1.2021.4.3.0Total Swap Size(虚拟内存)memTotalSwapGET



  端口:   .1.3.6.1.2.1.6.13.1.3
  .1.3.6.1.2.1.6.13.1.3.x.y  可以查出某个主机的某个端口的连接数(x为主机ip,y为端口号)
  snmpwalk -v2c -c public 10.15.44.239 .1.3.6.1.2.1.6.13.1.3.10.15.44.239.80
  用wc -l进行统计即可得出某个端口的连接数
  snmpwalk -v2c -c public 10.15.44.239 .1.3.6.1.2.1.6.13.1.3.10.15.44.239.80|wc -l
  进程:   .1.3.6.1.2.1.25.4.2.1.2
  目录:   .1.3.6.1.2.1.25.4.2.1.4
  挂载点:   .1.3.6.1.2.1.25.3.8.1.3

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-452016-1-1.html 上篇帖子: Centos 6 编译安装mysql 5.6 下篇帖子: centos 学习笔记——源码编译安装apache
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表