如何使用SNMP

how to use SNMP

我有一些 linux 服务器可以用作 SNMP 代理。我需要使用 Java 和 SNMP4J 来监控这些服务器(代理),而且 SNMP 管理器必须能够检查这些服务器。

  1. 如何在 SNMP 代理中实现 SNMP 以响应来自 SNMP 管理器的查询?
  2. MIB文件有什么用?如果我对 MIB 文件中的值进行硬编码,是否意味着我不需要解析 MIB 文件?

String product = "1.2.3.1.2.3.6421"

String productmgr = "1.2.3.1.2.3.6421.4"

有一些 SO 问题应该有所帮助。

#1 查看 Getting started with SNMP4J

对于#2,您确实可以对 OID 进行硬编码;但这只适用于微不足道的场景,有很多关于 MIB 的问题,例如question about SNMP MIB file

为了在客户端实现SNMP代理,安装snmp后,只需执行snmp命令与管理器通信即可。

管理信息库(Management Information Base,MIB)是网络管理信息的虚拟信息存储区,由被管理对象的集合组成。在 MIB 中有相关对象的集合,在 MIB 模块中定义。 MIB 模块使用 SNMP MIB 模块语言编写,如 STD 58、RFC 2578、RFC 2579 和 RFC 2580 中所定义。

当然,您可以在 SNMP MIB 中硬编码一些 OID。但在大多数情况下,它并不稳定。即使您对 MIB 文件中的值进行硬编码,您也需要重新解析相同的值。