一、什么是SNMP协议
SNMP(简单网络管理协议),顾名思义是一种网络管理的协议。SNMP是网络设备一个日常网络运维同行经常接触到的一个协议,不管是设备硬件系统的监控还是软件发出的告警,通通都能通过SNMP协议进行监控。SNMP总共有三个版本可以选择,通常选择的版本为v2c,因为配置简单深受大家的喜爱,V3版本虽然配置复杂,但是是可以进行加密和认证的,安全性比v2c要高很多。
二、SNMP协议的组成
SNMP协议总共有两大块组成,一是通过UDP161端口的系统监控,通常是通过网管周期性对监控设备进行主动读取(get)数据,如果读取(get)到的值过高就会产生告警通知到管理员。二是通过UDP162端口传输的TRAPS告警,这种告警通常是设备主动发起到网管,网管会进行记录并保存,可供网络管理员分析故障原因。
三、什么是SNMP的OID节点
每一个设备(agent)都有一个自己的MIB,MIB节点的OID节点通常分为公有节点和私有节点,顾名思义公有节点就是所有厂家都公认的部分,私有节点就是厂家自定义的部分节点。MIB节点是一个树状的结构,如1.3.6.1是前面根节点,后面的根据不同的功能进行扩展。比如最常见的读取接口up/down接口状态的oid节点为1.3.6.1.2.1.2.2.1.8,如某大厂知名服务器的私有节点为1.3.6.1.4.1.3761.2.1.600.3.1.5。具体的节点MIB和对应的OID说明可以找厂家找相关资料。
四、怎么用Snmpwalk进行节点值的读取
通常我们在通过snmp协议实际读取的过程中,总会出现读取到的值不正确,通常是MIB文件错误或是OID节点没对或者网管读取到数据之后解析有问题导致。这时候我们通常会使用手动读取的方式来查看是节点值不对还是网管解析有问题。
snmpwlak读取格式如下:
样例:
snmpwalk -v 2c -c public 192.168.1.1 1.3.6
snmpwalk -v 2c -c public 192.168.1.1 1.3.6.1.4.1
4.1 通过LINUX服务器命令行读取
suse系统
1、读取1.3.6.1.2.1.2.2.1.8公有节点,可以看到设备24个接口都是DOWN的状态。
2、通过1.3.6.1.4.1.3761.2.1.600.6.1.1.5私有节点
通过两个节点可以看到读取出来的值呈现出的是一样的,只是一个使用up/down的方式呈现,一个使用0-2的方式呈现,最终读取到的结果都是一样的。一般厂家的私有节点能读取出来的内容是要比公有节点要多,如可以读出子接口的状态,公有节点则不能读取出来。
4.2 通过snmpwalk的bat工具在wondows的cmd窗口读取
cmd命令行
1、打开snmpwalk工具
2、弹出cmd命令行
snmpwalk -v 2c -c Admin@123 192.168.1.1 1.3.6.1.2.1.2.2.1.8
可以看到读取的值和LINUX读取到的值是一样的,方便我们平时在电脑上就可以直接读取到数据。
五、总结
本文介绍了snmp的基础知识和snmpwalk工具的使用,方便大家可以直接在服务器和windows电脑上直接读取到设备上的数据。后续还会更新snmp的其他工具,例如通过工具遍历snmp的相关节点和traps等相关内容进行分享。
原创 网络工程师之路