运维人

snmp协议详解

监控主机的方式:
1.基于通行的snmp
2.基于专用agent
3.基于ssh(shell)

对于不同的监控指标,最后实现的功能也有所不同.下面是本人通过学习总结关于与snmp协议的一些解释以及运用

SNMP<simple network management protocol>
主要几个简单的操作就可以实现对远程设备上的服务、资源等各种系统状态信息的获取,不仅仅是获取信息这么简单,还能在达到我们设定值或状态状态发生转换时能向对方发送控制指令;

SNMP的工作机制:
监控端/一个或多个被监控端
监控端:NMS,这个平台会为管理员提供命令行接口,可以发送snmp指令到任何一个被监控主机,而在被监控端安装了一个服务进程,它用于接收来自监控端的查询请求, 并且能够解析对方的查询请求,并将查询数据返回给对方,所以这个服务进程可以称之为是一个agent,它只是接收一些查询或者是管理指令而存在的;
监控端发送请求—>agent接受请求(根据查询请求内容)—>agent返回查询请求到监控端.
但是上面有个弊端,也就是说任何主机连接到我们的agent就可以发送指令,这样一来安全方面就有了很大的隐患,于是在此基础上面就引入了communities在监控端和agent之间建立通信的;相当于两个端之间发送认证信息,但是这个认证信息是明文的;

SNMP的协议
v1: 所有的安全机制都是基于communities机制来实现,snmp的所有操作在服务器端、客户端也是基于communities机制来实现,在此版本中communities有三种:
read-only:只读,监控端只能到agent端获取信息;
read-write:读写,可发送管理指令;有权限操作agent端
trap:agent端主动联系监控端;引起监控端注意的一种机制;
v2: 对于v2来说只是对v1做了强化,此版本是基于community-string-based,这个版本也叫做v2c;

v3: 由于前面两个版本过于简化,认证机制较为薄弱,故此增强了其认证机制,数据传输方面也有了安全性.但是在三个版本中用得最多的还是v1版本,原因是简单;

snmp(NMS)只是提供了命令接口去完成采集数据而已,对于采集到的数据保存在哪里它不会关心;

snmp这种机制虽然实现了网络管理功能,但是它只是一种协议,把这种协议予以实现的软件的功能也是各不相同的;

MIBs<Management Information Base>管理信息库.
OID<对象标识符>
将大多数监控对象它的名称和ID号之间的对应关系;
比如在agent端,它不仅仅要收集主机的信息外还需要维持一个MIB,请求达到agent端后它要知道请求的内容是什么,那么在agent端就会记录下监控对象和ID之间的映射关系;所以一个标准的agent要提供至少一个基本的MIB,以维持监控对象;也叫做MIB-II,根据主机不同的需要,MIB的内容也有所不同;

大多数能够基于snmp的管理功能都属于mgmt节点,而在mgmt下面的这个mib下面则有众多的监控对象,1.3.6.1.2.1是每一个主机或设备默认提供的MIB的标识:

    分享到:
码字很辛苦,转载请注明来自运维人《snmp协议详解》

评论