SNMP协议简介
SNMP 是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议。 SNMP 使网络管理员能够管理网络效能,发现并解决网络问题以及规划网络增长。通过 SNMP 接收随机消息(及事件报告)网络管理系统获知网络出现问题
SNMP用于保证管理信息在任意两点间传送,便于网络管理员在网络上的任何节点检索信息、修改信息、寻找故障、完成故障诊断、进行容量规划和生成报告。
SNMP采用轮询机制,提供最基本的功能集,特别适合在小型、快速和低价格的环境中使用。SNMP的实现基于无连接的传输层协议UDP,因此可以实现和众多产品的无障碍连接。
1. SNMP的工作机制
SNMP分为NMS和Agent两部分:
· NMS是运行客户端程序的工作站。
· Agent是运行在网络设备(比如:交换机)上的服务器端软件。
NMS可以向Agent发出GetRequest、GetNextRequest和SetRequest报文,Agent接收到NMS的这些请求报文后,根据报文类型对MIB进行Read或Write操作,生成Response报文,并将报文返回给NMS。
Agent在设备发生异常情况或状态改变时(比如:设备重新启动),也会主动向NMS发送Trap报文,向NMS汇报所发生的事件。
2. SNMP的版本
目前,SNMP Agent支持SNMP v1、SNMP v2c和SNMP v3三个版本。
SNMP v3采用用户名和密码认证方式;SNMP v1、SNMP v2c采用团体名(Community Name)认证,非认可团体名的SNMP报文将被丢弃。SNMP团体名用来定义SNMP NMS和SNMP Agent的关系。团体名起到了类似于密码的作用,可以限制SNMP NMS访问SNMP Agent。
3. MIB
在SNMP报文中用管理变量来描述管理对象。为了唯一标识管理对象,SNMP用层次结构命名方案来识别管理对象。整个层次结构就像一棵树,树的节点表示管理对象
每一个节点,都可以用从根开始的一条路径唯一地标识,MIB的作用就是用来描述树的层次结构,它是所监控设备的标准变量定义的集合。管理对象可以用一串数字{1.2.1.1}唯一确定,这串数字是管理对象的对象标识符
下面介绍在CentOS7下安装SNMP服务
1、yum install net-snmp net-snmp-utils
net-snmp (被监控端 Agent)
net-snmp-utils (NMS-command 工具包)
2、启动snmpd服务
1)rpm -ql net-snmp查看相当的配置文件
2)启动服务
systemctl enable snmpd.service
systemctl start snmpd.service
3、net-snmp的常用命令
1)、获取snmp信息
snmpwalk -v 2c -c public 127.0.0.1
-v 2c 指定版本信息
-c 指定团体名 public为默认团体名
2)snmpget获取指定OID的信息
snmpget -v 2c -c public 127.0.0.1 HOST-RESOURCES-MIB::hrSystemUptime.0
3)snmptranslate 在MIB OID 在数字和文字名称之间进行转换的命令
snmptranslate -On -IR HOST-RESOURCES-MIB::hrSystem
用-On(输出数字格式的oid),使用 -IR(允许“随机”访问 MIB)
4)修改配置文件
vi /etc/snmp/snmpd.conf
例如:修改团体名,定义一个可操作的范围(view)等操作均在此配置文件中进行修改
可以man snmpd.conf查看相关帮助文档