snmp相关(linux)

上一篇 / 下一篇  2018-09-16 19:34:34 / 个人分类:snmp

【简单介绍】

简单网络管理协议SNMP,由一组网络管理的标准组成,包含一个应用协议、数据库模型和一组资源对象。该协议可以支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。

【启动snmp

1、输入命令:systemctl  start snmpd

2、启动成功后,可以监测snmp端口(一般是161)状态:

   netstat -anp |grep 161

MIBOID

1、一套完整的SNMP系统主要包括管理信息库MIB、管理信息结构SMISNMP报文协议。

2、MIB

任何一个被管理的资源都表示成一个对象,称为被管理的对象。MIB是被管理对象的集合。它定义了被管理对象的一系列属性:对象的名称、对象的访问权限和对象的数据类型等。每个SNMP设备(Agent)都有自己的MIBMIB也可以看作是NMS(网管系统)和Agent之间的沟通桥梁。

MIB文件中的变量使用的名字取自ISOITU管理的对象标识符(object identifier)名字空间。它是一种分级树的结构。

    当网络管理协议在报文中使用MIB变量时,每个变量名后还要加一个后缀,以作为该变量的一个实例。如ipInReceives的实例数字表示为:1.3.6.1.2.1.4.3.0.

 需要注意的是,MIB中的管理对象的OID有些需要动态确定,如IP路由表,为了指明地址202.120.86.71的下一站路由(next hop),我们可以引用这样的实例:

 iso.org.dod.internet.mgmt.mib.ip. ipRouteTable.ipRouteEntry.ipRouteNextHop.202.120.86.71,

 相应的数字表示为:1.3.6.1.2.1.4.21.1.7.202.120.86.71

对于这种动态对象标识的实例,由于无法转换为预先指定的Readkey名称,与飞邻的产品架构冲突(需要动态生成可变Readkey),暂不考虑支持。

OID(对象标识符),是SNMP代理提供的具有唯一标识的键值。MIB(管理信息基)提供数字化OID到可读文本的映射。

3OID

 OID的编写规则和习惯

 SNMP OID是用一种按照层次化格式组织的、树状结构中的唯一地址来表示的,它与DNS层次相似。与其他格式的寻址方式类型,OID以两种格式加以应用:全名和先对名(有时称为“相关”)

完全验证格式从root根开始,并且向外移到某个设备的独立的质上。例如一个完整验证的地址为:

OID可用人们可读的方式重写为:

所有完全验证OID都有.iso.org.dod.internet.private开始,数字表达为: .1.3.6.4.。几乎所有的OID都会跟上企业(.1)和由IANA互联网编号分配中心分配的)唯一的厂商标号。例如OID 789表示Network Appliance格式的厂商编号( NetApp)。厂商编号后面的是基于厂商实现的功能,并且各不相同。请注意,在iso.前面的. `,与DNS中的后点相似,正确验证的OID是有一个表示根的前缀`.开始的。

OID的相对格式,从企业值开始,略过所有的隐含地址。因此,我们可以用相对地址enterprises.netapp.netappl.raid.diskSUmmary.diskSpaceCount.0来表示上述的OID,或者用数字格式.1.789.6.4.8.0 .

 OID的常用格式是用MIB名称和在MIB中定义的唯一键值。例如,我们可以用简写的格式重写上述OID

NETWORK-APPLIANCE-MIB::diskSpareCount.0

MIBOID的书写格式规则为::MIB Name::唯一键值.instance.

某些唯一键值,可用多个实例表示,这样所有的OID都以实例值结尾。这就是为什么你得注意到大多数OID都是以一个.0结尾的。

【使用snmpwalk命令探测】

1、知道具体探测点的OID

如输入命令:snmpwalk -c public -v 1 -m ALL 127.0.0.1 .1.3.6.1.2.1.1.1.0,返回系统的软件版本;

输入snmpwalk -c public -v 1 -m ALL 127.0.0.1 .1.3.6.1.2.1.25.4.2.1.2,返回当前系统运行的进程。

常用的OID,网络上可查看,参考http://www.ttlsa.com/monitor/snmp-oid/

2、不知道具体的OID,从设备信息表获取OID

1):输出所有设备信息表
snmpwalk -v 1 127.0.0.1 -c public  输出全部内容
snmpwalk -v 2c -c public  127.0.0.1 输出全部内容
v 1|2c|3         指定SNMP协议版本
抽一个:
HOST-RESOURCES-MIB::hrMemorySize.0 = INTEGER: 65894204 KBytes
2):根据第一步把OID的文字转成数字
MIB OID 在数字和文字名称之间进行转换
snmptranslate -On -IR HOST-RESOURCES-MIB::hrMemorySize.0

snmptranslate -On -IR hrMemorySize.0
.1.3.6.1.2.1.25.2.2.0
3)根据OID输出内容
snmpwalk -c public -v 1 -m ALL 127.0.0.1 .1.3.6.1.2.1.25.2.2.0
或者
snmpwalk -c public -v 1 -m ALL 127.0.0.1 .-IR hrMemorySize.0

3、不知道OID,且从设备信息表中也没找到,使用可扩展功能:

(1)编写监测的脚本,加可执行权限;

(2)修改配置文件/etc/snmp/snmpd.conf

# as well as the local/passtest script. used in the above example.

#【在这下面添加:

#关键字extend没有的OID标识符 命令或脚本 键值】

extend .1.3.6.1.4.1.2021.60 sensors /bin/sh /tmp/sensors.sh

就版本将关键字extend换成exec即可。

(3)重启snmpd服务:

systemctl  restart snmpd


TAG:

 

评分:0

我来说两句

Open Toolbar