澄清SNMP代理和pipe理器

在谈论SNMP时,我很难理解使用的一些术语,特别是谁负责MIB – 代理或pipe理工作站。

让我们看一个简单的场景:

  • 我通过已知的OID监视我的Linux机器(如CPU利用率)
  • 当我发送处理请求的CPU利用率OID的SNMP请求时 – 代理或pipe理站?
  • 如果所有的工作都是从MIB中读取数据的话,代理的作用是什么?
  • 代理已经同步API获取,但如果我直接去存储,为什么我有这个得到。

任何人都可以帮我理解这个简单的CPU OID的例子,那里发生了什么?

实际上这很简单。

SNMP代理正在您要pipe理的机器上运行,并且可以以任意方式读取(并可能设置)来自机器的数据(读取/proc条目,通过IPC与进程通信,从文件或其他方法中读取有人可以拿出)。 然后,它以一种结构良好的方式根据一个或多个定义文件MIB来表示这个数据。

然后,pipe理站(或SNMP客户端)可以与代理进行通信,以根据此MIB从代理读取(或设置)数据。

此外,有些代理(通常只有在pipe理站要求时才会采取行动)可以configuration为在满足某些条件时向pipe理站发送消息以通知它。 这被称为SNMP陷阱。

对于CPU示例:

  • 代理正在机器上运行并可以读取系统数据。
  • pipe理站是CPU负载OID的轮询代理。
  • 代理正在查找如何获取此OID的数据,读取数据点(CPU负载)并将其发送回pipe理站。