SNMP(传统监控标准)
概述
参考:
Simple Network Management Protocol(简单网络管理协议,简称 SNMP)。想实现该协议,通常需要由两部分完成(监控端和被监控端),是在两端的两个进程之间进行通信,该进程都需要占用一个 socket
- 监控端:通常称为 NMS 端,管理端
- 被监控端:通常称为 Agent 端,NMS 要去收集被监控端的数据的时候,可能收集到的是一些很敏感的数据(CPU 使用率,带宽占用率等,这些一般是不公开的),所以需要在被监控节点上部署一个专门的程序,这个程序能在本地取得一定的管理权限,然后接受监控端发送的数据收集指令,代为在被监控节点本地完成数据收集,所以被称为 Agent 端,代理端
SNMP 的工作模式,使用 udp 协议发送报文
- 监控端主动发送请求到被监控端的 agent 去收集数据
- 被监控节点主动向监控端报告自己所采集的数据
- 当监控端发现被监控端发生异常时,可以发送一些控制指令,将被监控端修改一些参数
实现 SNMP 的组件
- Management Information Base(管理信息库,简称 MIB) # 用来定义所有监控端的 objects,其中包括 objects 的名称、OID、数据类型、描述(干什么用的)。MIB 也可以看作是 SNMP 的服务端与代理端的沟通桥梁,只有具有统一的格式,才能确定数据。
- Object(对象) # 这个对象可以是一个具体需要采集到的数据,比如 内存、CPU、磁盘、网络接口等等,也可以是一种抽象的集合,比如地区、硬件、系统、硬件、网络等等。上面说的所有事物,每一个都是一个 Object。所以,Object 可以包含另一个 Object,这也是人称常常将 MIB 称为树状的原因
- Object Identifier(对象标识符,简称 OID) # 每一个 Object 都有一个 OID
- 数据存取格式:即每个 object 除了 OID 用作标示以外,还有数据内容需要遵循一定个格式规范
- Object(对象) # 这个对象可以是一个具体需要采集到的数据,比如 内存、CPU、磁盘、网络接口等等,也可以是一种抽象的集合,比如地区、硬件、系统、硬件、网络等等。上面说的所有事物,每一个都是一个 Object。所以,Object 可以包含另一个 Object,这也是人称常常将 MIB 称为树状的原因
- Structure of Managerment Intormation(管理信息结构,简称 SMI) # 是 ASN.1 的子集
- SNMP 本身 # 一般通过 Net-SNMP 中的工具实现。
所谓的 MIB,其实主要是通过文件记录的内容。与其说是用文件记录,不如说 MIB 就是使用 ASN.1(标准的接口描述语言) 编写的代码。ASN.1 语言同样有类似 import、 function 这类的东西。只不过,记录 MIB 文件的语言,又与 ASN.1 有一些细微的区别,我们暂且称为 MIB 语言 吧~
可以这么说,MIB 就是一门描述 OID 的编程语言。
SNMP 安全
https://www.dnsstuff.com/snmp-community-string#what-is-an-snmp-community-string
Community String(团体字符串)
SNMP 的 Community String(团体字符串) 是一种访问存储在路由器或其他设备中的统计信息的方法。有时简称为社区字符串或 SNMP 字符串,它包含与 GET 请求一起提供的用户凭据(ID 或密码)。
反馈
此页是否对你有帮助?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.