
这篇文章是使用prometheus监控snmap设备的第一篇,主要介绍snmp相关的概念和数据组织方式,如果已经熟悉可以跳过。
SNMP
SNMP(Simple Network Management Protocol)由IETF(Internet Engineer Task Force)在80年代开发,作为IP协议的一部分,但是随着时间的流逝,SNMP已成为监视网络连接设备的事实标准,当然snmp也提供了对各种设备进行远程管理的功能,但这里我们只关注监控。
SNMP由SNMP Manager和SNMP Agent组成。Agent安装在网络设备中,一般出厂默认就装好并启用了,Manager是用于查询Agent暴露的信息来确定设备状态是否正常的组件。

Manager与Agent交互的方式
GET 查询指定的OID信息
GETNEXT 查询下一个指定的OID信息
GETBULK 批量查询方法
SET 设置参数
TRAP Agent主动上报设备event
SNMP版本
v1 这个是最初的版本,基本不用了
v2 目前主流的版本,改进性能、新加验证
v3 在加密和验证增强,提供了更强和更多的验证方式
MIB (Management Information Base)OID (Object Identifier)

OID是由ITU和ISO组织创建的用于数据国际标准化的系统。它不仅用于网络监控或SNMP,它还是用于各种数据的标准。例如Hl7,它与电子病历分类法或轻型目录访问协议(LDAP)协议属性和对象类有关。可以将其视为索引数据的国际标准。
MIB是驻留在SNMP管理器中的格式化文本文件,旨在收集信息并将其组织为分层格式。SNMP管理器使用来自MIB的信息来翻译和解释消息,然后再将其发送给最终用户。
简而言之,OID是规定好的用于唯一标识一个对象或者信息的id,表示形式就是.1.3.6.1.4.1.9这样的数字串,但这个不好读懂,MIB是按树结构存放了OID对应信息的数据库,可以实现OID到用户可读信息的转换。
OID示例
.1 - ISO assigned.
.1.3 - ISO identified organizations
.1.3.6 - The US Department of Defense
.1.3.6.1 - The Internet
.1.3.6.1.4.1 - IANA (Internet Assigned Numbers Authority) registered private enterprises.
.1.3.6.1.4.1.9 - Cisco Systems (They embraced SNMP pretty early as you can see by their low number)
.1.3.6.1.4.1.2636 - Juniper
.1.3.6.1.4.1.311 - Microsoft.
.1.3.6.1.2.1.1 - SNMP MIB2 System: Contains system description, contact information etc...
监控主要涉及以下OIDs
.1.3.6.1.2.1.2 - the IF-MIB, which contains a wide variety of network statistics information. Everything from number of Octets coming into an interface to a description of the interface.
.1.3.6.1.2.1.25 - The Host-resources MIB, everything from disk utilization to CPU and Memory.
.1.3.6.1.2.1.43 - The Printer MIB, which contains all general printer statistics.
参考
https://www.comparitech.com/net-admin/snmp-mibs-oids-explained/www.comparitech.com Understanding SNMP, OID, and MIB and How They are Relatedwww.pei.com