SNMP:hrSystemUptime.0:未知对象标识符(未找到子 ID:(顶部)-> hrSystemUptime)

SNMP:hrSystemUptime.0:未知对象标识符(未找到子 ID:(顶部)-> hrSystemUptime)

当我发出以下命令时,出现标题中的错误。

$  snmpget -v3 -u edgeos-snmpd-user -l authPriv -a SHA -x AES -A authPhrase -X privPhrase 192.168.x.x hrSystemUptime.0
hrSystemUptime.0: Unknown Object Identifier (Sub-id not found: (top) -> hrSystemUptime)

如果我在目标系统(192.168.xx)上输入相同的命令,我会得到有效的结果。

# snmpget -v3 -u edgeos-snmpd-user -l authPriv -a SHA -x AES -A authPhrase -X privPhrase localhost hrSystemUptime.0
HOST-RESOURCES-MIB::hrSystemUptime.0 = Timeticks: (1362660) 3:47:06.60

客户端是基于 Ubuntu 18.04.1 的 Docker 容器,目标是基于 Alpine 的 Linux 设备。

我已经snmp-mibs-downloader在容器中安装并且hrSystemUptime条目存在于"/var/lib/snmp/mibs/ietf/HOST-RESOURCES-MIB

-- The Host Resources System Group

hrSystemUptime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The amount of time since this host was last
        initialized.  Note that this is different from
        sysUpTime in the SNMPv2-MIB [RFC1907] because
        sysUpTime is the uptime of the network management
        portion of the system."
    ::= { hrSystem 1 }

但是,它似乎没有搜索该目录。

$ net-snmp-config --default-mibdirs
/home/edge/.snmp/mibs:/usr/share/snmp/mibs:/usr/share/snmp/mibs/iana:/usr/share/snmp/mibs/ietf:/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp

我复制HOST-RESOURCES-MIB/home/edge/.snmp/mibs但没有什么区别。

我必须在容器中做什么才能使其工作?

答案1

snmp包安装/etc/snmp/snmp.conf

# As the snmp packages come without MIB files due to license reasons, loading
# of MIBs is disabled by default. If you added the MIBs you can reenable
# loading them by commenting out the following line.
mibs :

注释掉最后一行可以解决文件中注释中描述的问题。snmp.conf完全删除会产生同样的效果。

答案2

当我尝试让 telegraf 通过 docker 轮询路由器以获取各种统计数据时,也遇到了类似的错误。

它似乎想要的文件 HOST-RESOURCES-MIB 位于硬链接文件夹中(不知道正确的术语,但使用 ls -l,它与指定的链接目标具有不同的颜色),但即使在 docker 配置中具有正确的卷和正确的 /usr/* 权限,也无法进行。

花了半个晚上的时间来解决它,但最终当我在docker中将两个硬链接文件夹指定为卷时它起作用了:

 - /var/lib/snmp/mibs/ietf:/usr/share/snmp/mibs/ietf:ro
 - /var/lib/snmp/mibs/iana:/usr/share/snmp/mibs/iana:ro

很确定这只是我太笨了,可能没有按照正确的顺序安装东西,但我越想越觉得这是一个 docker/ubuntu 的问题 - 应该可以开箱即用,对吧?

我完全是 Linux 菜鸟,所以可能很难解释我搞砸了什么,谁知道呢。希望这对某人有帮助

相关内容