我很难理解谈论 SNMP 时使用的某些术语,特别是谁负责 MIB——代理或管理站。
让我们看一个简单的场景:
- 我通过已知 OID(如 CPU 利用率)监控我的 Linux 机器
- 当我发送 CPU 利用率 OID 的 SNMP 请求时,谁来处理该请求 - 代理还是管理站?
- 如果所做的只是从 MIB 读取数据,那么代理在这里的作用是什么?
- 代理已同步获取 API,但如果我直接进入存储,为什么我会有这个获取。
有人能帮助我理解这个简单的 CPU OID 示例吗?那里发生了什么?
答案1
事实上,这非常简单。
SNMP 代理运行在您要管理的机器上,可以以任意方式(读取条目/proc
、通过 IPC 与进程通信、从文件读取或任何人能想到的其他方法)从机器读取(并可能设置)数据。然后,它根据一个或多个定义文件 MIB 以结构良好的方式表示这些数据。
然后,管理站(或 SNMP 客户端)可以与代理进行通信,根据此 MIB 从代理读取(或设置)数据。
此外,一些代理(通常只在管理站要求时才采取行动)可以配置为在满足某些条件时向管理站发送消息以通知管理站。这称为 SNMP 陷阱。
对于 CPU 示例:
- 代理正在机器上运行并可以读取系统数据。
- 管理站是 CPU 负载 OID 的轮询代理。
- 代理正在查找如何获取此 OID 的数据,读取数据点(CPU 负载)并将其发送回管理站。