OID,MIB是什么?用check_snmp检查转账金额

OID,MIB是什么?用check_snmp检查转账金额

我正在设置 snmpd 并尝试通过 check_snmp 进行检查。

snmpwalk -c public -v 2c localhost

iso.3.6.1.2.1.1.1.0 = STRING: "Linux ik1-325-22819 4.15.0-55-generic #60-Ubuntu SMP Tue Jul 2 18:22:20 UTC 2019 x86_64"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.8072.3.2.10
iso.3.6.1.2.1.1.3.0 = Timeticks: (45994) 0:07:39.94
iso.3.6.1.2.1.1.4.0 = STRING: "Me <[email protected]>"
iso.3.6.1.2.1.1.5.0 = STRING: "ik1-325-22819"
iso.3.6.1.2.1.1.6.0 = STRING: "Sitting on the Dock of the Bay"
iso.3.6.1.2.1.1.7.0 = INTEGER: 72
iso.3.6.1.2.1.1.8.0 = Timeticks: (1) 0:00:00.01
iso.3.6.1.2.1.1.9.1.2.1 = OID: iso.3.6.1.6.3.11.3.1.1
iso.3.6.1.2.1.1.9.1.2.2 = OID: iso.3.6.1.6.3.15.2.1.1
iso.3.6.1.2.1.1.9.1.2.3 = OID: iso.3.6.1.6.3.10.3.1.1
iso.3.6.1.2.1.1.9.1.2.4 = OID: iso.3.6.1.6.3.1
iso.3.6.1.2.1.1.9.1.2.5 = OID: iso.3.6.1.6.3.16.2.2.1
iso.3.6.1.2.1.1.9.1.2.6 = OID: iso.3.6.1.2.1.49
iso.3.6.1.2.1.1.9.1.2.7 = OID: iso.3.6.1.2.1.4
iso.3.6.1.2.1.1.9.1.2.8 = OID: iso.3.6.1.2.1.50
iso.3.6.1.2.1.1.9.1.2.9 = OID: iso.3.6.1.6.3.13.3.1.3
iso.3.6.1.2.1.1.9.1.2.10 = OID: iso.3.6.1.2.1.92
iso.3.6.1.2.1.1.9.1.3.1 = STRING: "The MIB for Message Processing and Dispatching."
iso.3.6.1.2.1.1.9.1.3.2 = STRING: "The management information definitions for the SNMP User-based Security Model."
iso.3.6.1.2.1.1.9.1.3.3 = STRING: "The SNMP Management Architecture MIB."
iso.3.6.1.2.1.1.9.1.3.4 = STRING: "The MIB module for SNMPv2 entities"
iso.3.6.1.2.1.1.9.1.3.5 = STRING: "View-based Access Control Model for SNMP."
iso.3.6.1.2.1.1.9.1.3.6 = STRING: "The MIB module for managing TCP implementations"
iso.3.6.1.2.1.1.9.1.3.7 = STRING: "The MIB module for managing IP and ICMP implementations"
iso.3.6.1.2.1.1.9.1.3.8 = STRING: "The MIB module for managing UDP implementations"
iso.3.6.1.2.1.1.9.1.3.9 = STRING: "The MIB modules for managing SNMP Notification, plus filtering."
iso.3.6.1.2.1.1.9.1.3.10 = STRING: "The MIB module for logging SNMP Notifications."
iso.3.6.1.2.1.1.9.1.4.1 = Timeticks: (1) 0:00:00.01
iso.3.6.1.2.1.1.9.1.4.2 = Timeticks: (1) 0:00:00.01
iso.3.6.1.2.1.1.9.1.4.3 = Timeticks: (1) 0:00:00.01
iso.3.6.1.2.1.1.9.1.4.4 = Timeticks: (1) 0:00:00.01
iso.3.6.1.2.1.1.9.1.4.5 = Timeticks: (1) 0:00:00.01
iso.3.6.1.2.1.1.9.1.4.6 = Timeticks: (1) 0:00:00.01
iso.3.6.1.2.1.1.9.1.4.7 = Timeticks: (1) 0:00:00.01
iso.3.6.1.2.1.1.9.1.4.8 = Timeticks: (1) 0:00:00.01
iso.3.6.1.2.1.1.9.1.4.9 = Timeticks: (1) 0:00:00.01
iso.3.6.1.2.1.1.9.1.4.10 = Timeticks: (1) 0:00:00.01
iso.3.6.1.2.1.2.1.0 = INTEGER: 6
iso.3.6.1.2.1.2.2.1.1.1 = INTEGER: 1
iso.3.6.1.2.1.2.2.1.1.2 = INTEGER: 2
iso.3.6.1.2.1.2.2.1.1.3 = INTEGER: 3
iso.3.6.1.2.1.2.2.1.1.4 = INTEGER: 4
iso.3.6.1.2.1.2.2.1.1.5 = INTEGER: 5
iso.3.6.1.2.1.2.2.1.1.6 = INTEGER: 6
iso.3.6.1.2.1.2.2.1.2.1 = STRING: "lo"
iso.3.6.1.2.1.2.2.1.2.2 = STRING: "Red Hat, Inc. Device 0001"
iso.3.6.1.2.1.2.2.1.2.3 = STRING: "Red Hat, Inc. Device 0001"
iso.3.6.1.2.1.2.2.1.2.4 = STRING: "Red Hat, Inc. Device 0001"
iso.3.6.1.2.1.2.2.1.2.5 = STRING: "docker0"
iso.3.6.1.2.1.2.2.1.2.6 = STRING: "br-6ec47ade44ad"
iso.3.6.1.2.1.2.2.1.3.1 = INTEGER: 24
iso.3.6.1.2.1.2.2.1.3.2 = INTEGER: 6
iso.3.6.1.2.1.2.2.1.3.3 = INTEGER: 6
iso.3.6.1.2.1.2.2.1.3.4 = INTEGER: 6
iso.3.6.1.2.1.2.2.1.3.5 = INTEGER: 6
iso.3.6.1.2.1.2.2.1.3.6 = INTEGER: 6
iso.3.6.1.2.1.2.2.1.4.1 = INTEGER: 65536
iso.3.6.1.2.1.2.2.1.4.2 = INTEGER: 1500
iso.3.6.1.2.1.2.2.1.4.3 = INTEGER: 1500
iso.3.6.1.2.1.2.2.1.4.4 = INTEGER: 1500
iso.3.6.1.2.1.2.2.1.4.5 = INTEGER: 1500
iso.3.6.1.2.1.2.2.1.4.6 = INTEGER: 1500
iso.3.6.1.2.1.2.2.1.5.1 = Gauge32: 10000000
iso.3.6.1.2.1.2.2.1.5.2 = Gauge32: 0
iso.3.6.1.2.1.2.2.1.5.3 = Gauge32: 0
iso.3.6.1.2.1.2.2.1.5.4 = Gauge32: 0
iso.3.6.1.2.1.2.2.1.5.5 = Gauge32: 0
iso.3.6.1.2.1.2.2.1.5.6 = Gauge32: 0
iso.3.6.1.2.1.2.2.1.6.1 = ""
iso.3.6.1.2.1.2.2.1.6.2 = Hex-STRING: 9C A3 BA 01 DF C3 
iso.3.6.1.2.1.2.2.1.6.3 = Hex-STRING: 9C A3 BA 03 66 63 
iso.3.6.1.2.1.2.2.1.6.4 = Hex-STRING: 9C A3 BA 04 ED 03 
iso.3.6.1.2.1.2.2.1.6.5 = Hex-STRING: 02 42 D7 D1 60 44 
iso.3.6.1.2.1.2.2.1.6.6 = Hex-STRING: 02 42 D8 24 17 95 
iso.3.6.1.2.1.2.2.1.7.1 = INTEGER: 1
iso.3.6.1.2.1.2.2.1.7.2 = INTEGER: 1
iso.3.6.1.2.1.2.2.1.7.3 = INTEGER: 2
iso.3.6.1.2.1.2.2.1.7.4 = INTEGER: 2
iso.3.6.1.2.1.2.2.1.7.5 = INTEGER: 1
iso.3.6.1.2.1.2.2.1.7.6 = INTEGER: 1
iso.3.6.1.2.1.2.2.1.8.1 = INTEGER: 1
iso.3.6.1.2.1.2.2.1.8.2 = INTEGER: 1
iso.3.6.1.2.1.2.2.1.8.3 = INTEGER: 2
iso.3.6.1.2.1.2.2.1.8.4 = INTEGER: 2
iso.3.6.1.2.1.2.2.1.8.5 = INTEGER: 2
iso.3.6.1.2.1.2.2.1.8.6 = INTEGER: 2
iso.3.6.1.2.1.2.2.1.9.1 = Timeticks: (0) 0:00:00.00
iso.3.6.1.2.1.2.2.1.9.2 = Timeticks: (0) 0:00:00.00
iso.3.6.1.2.1.2.2.1.9.3 = Timeticks: (0) 0:00:00.00
iso.3.6.1.2.1.2.2.1.9.4 = Timeticks: (0) 0:00:00.00
iso.3.6.1.2.1.2.2.1.9.5 = Timeticks: (0) 0:00:00.00
iso.3.6.1.2.1.2.2.1.9.6 = Timeticks: (0) 0:00:00.00
iso.3.6.1.2.1.2.2.1.10.1 = Counter32: 3214378817
iso.3.6.1.2.1.2.2.1.10.2 = Counter32: 1235162258
iso.3.6.1.2.1.2.2.1.10.3 = Counter32: 0
iso.3.6.1.2.1.2.2.1.10.4 = Counter32: 0
iso.3.6.1.2.1.2.2.1.10.5 = Counter32: 0
iso.3.6.1.2.1.2.2.1.10.6 = Counter32: 286316
iso.3.6.1.2.1.2.2.1.11.1 = Counter32: 135588065
iso.3.6.1.2.1.2.2.1.11.2 = Counter32: 60939410
iso.3.6.1.2.1.2.2.1.11.3 = Counter32: 0
iso.3.6.1.2.1.2.2.1.11.4 = Counter32: 0
iso.3.6.1.2.1.2.2.1.11.5 = Counter32: 0
iso.3.6.1.2.1.2.2.1.11.6 = Counter32: 4466
iso.3.6.1.2.1.2.2.1.12.1 = Counter32: 0
iso.3.6.1.2.1.2.2.1.12.2 = Counter32: 0
iso.3.6.1.2.1.2.2.1.12.3 = Counter32: 0
iso.3.6.1.2.1.2.2.1.12.4 = Counter32: 0
iso.3.6.1.2.1.2.2.1.12.5 = Counter32: 0
iso.3.6.1.2.1.2.2.1.12.6 = Counter32: 0
iso.3.6.1.2.1.2.2.1.13.1 = Counter32: 0
iso.3.6.1.2.1.2.2.1.13.2 = Counter32: 0
iso.3.6.1.2.1.2.2.1.13.3 = Counter32: 0
iso.3.6.1.2.1.2.2.1.13.4 = Counter32: 0
iso.3.6.1.2.1.2.2.1.13.5 = Counter32: 0
iso.3.6.1.2.1.2.2.1.13.6 = Counter32: 0
iso.3.6.1.2.1.2.2.1.14.1 = Counter32: 0
iso.3.6.1.2.1.2.2.1.14.2 = Counter32: 0
iso.3.6.1.2.1.2.2.1.14.3 = Counter32: 0
iso.3.6.1.2.1.2.2.1.14.4 = Counter32: 0
iso.3.6.1.2.1.2.2.1.14.5 = Counter32: 0
iso.3.6.1.2.1.2.2.1.14.6 = Counter32: 0
iso.3.6.1.2.1.2.2.1.15.1 = Counter32: 0
iso.3.6.1.2.1.2.2.1.15.2 = Counter32: 0
iso.3.6.1.2.1.2.2.1.15.3 = Counter32: 0
iso.3.6.1.2.1.2.2.1.15.4 = Counter32: 0
iso.3.6.1.2.1.2.2.1.15.5 = Counter32: 0
iso.3.6.1.2.1.2.2.1.15.6 = Counter32: 0
iso.3.6.1.2.1.2.2.1.16.1 = Counter32: 3214378817
iso.3.6.1.2.1.2.2.1.16.2 = Counter32: 2438196185
iso.3.6.1.2.1.2.2.1.16.3 = Counter32: 0
iso.3.6.1.2.1.2.2.1.16.4 = Counter32: 0
iso.3.6.1.2.1.2.2.1.16.5 = Counter32: 0
.
.
.

然后我尝试检查_snmp。

./check_snmp -H localhost -O
No OIDs specified

两者都在同一主机上。

我怎样才能找到OID?对于 check_snmp?


我想知道接口的转账金额ens3

然而,老实说我不知道​​从哪里开始。

我试过这个。

$ snmpwalk -c public -v 2c localhost | grep ens3

iso.3.6.1.2.1.25.3.2.1.3.262146 = STRING: "network interface ens3"
iso.3.6.1.2.1.31.1.1.1.1.2 = STRING: "ens3"

$ ./check_snmp -H localost -O iso.3.6.1.2.1.31.1.1.1.1.2
No OIDs specified

答案1

OID 是对象ID实体。在数字形式中,它们表示为由点分隔的数字字符串。它们还具有符号形式,其中数字根据某些定义映射到关键字。

的 OIDiso只是1,因为它标识了 OID 树结构根部的第一个主分支。如果没有相应的可用符号信息,您可以从任何符号形式的 OID 开始,然后向其添加数字后缀。

这些定义以标准化格式存储在 MIB 文件中。

您的系统显然没有加载标准 MIB 文件,或者您的snmpwalk系统未配置为使用它们。否则,您的 snmpwalk 输出将看起来更像这样:

SNMPv2-MIB::sysDescr.0 = STRING: "Linux ik1-325-22819 4.15.0-55-generic #60-Ubuntu SMP Tue Jul 2 18:22:20 UTC 2019 x86_64"
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-TC::linux
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (45994) 0:07:39.94
SNMPv2-MIB::sysContact.0 = STRING: "Me <[email protected]>"
SNMPv2-MIB::sysName.0 = STRING: "ik1-325-22819"
SNMPv2-MIB::sysLocation.0 = STRING: "Sitting on the Dock of the Bay"
SNMPv2-MIB::sysServices.0 = INTEGER: 72
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (1) 0:00:00.01

... 等等。这样可以提供更多信息,您不觉得吗?

MIB 文件除了 OID 名称之外还定义了其他内容:它还包含各种值含义的描述,并定义形成信息表的 OID 组。

在 OID 处iso.3.6.1.2.1.31.1.1开始有一个网络接口统计信息表,称为IF-MIB::ifXTable。表单中的 OIDiso.3.6.1.2.1.31.1.1.1.1.N构成表的第一列,标识每个接口的名称。通过该接口向内传输的字节数位于表的另一列中,分别具有以下形式的 OID iso.3.6.1.2.1.31.1.1.1.6.N,其中 N 对应于接口的名称。通过接口向外传输的字节数位于另一列中,OID 的形式为iso.3.6.1.2.1.31.1.1.1.10.N

从你的命令中,我可以看到你的接口的 SNMP 表行号 ( N)ens3是 2。记住这一点;稍后会用到。

加载并使用 MIB 后,您将能够使用该snmptable命令以有意义的方式一次性查看所有这些表。例如,要查看此接口统计信息表,您可以运行:

snmptable -c public -v 2c localhost IF-MIB::ifXTable

并将其全部以表格形式显示。 (这是一个相当宽的桌子,所以如果您想尝试这个,请先将终端窗口拉得很宽。)

snmptable仅当定义相应表的 MIB 文件可用时,该命令才有效。


在 Debian 上,大概也在 Ubuntu 上,您可以sudo apt install snmp-mibs-downloader从互联网上的权威标准源下载一组广泛的标准 MIB,对它们应用一些勘误表,然后为/var/lib/snmp/mibs/您存储它们。它可能会在安装包时自动下载它们,或者您可能需要使用该sudo download-mibs命令。

要开始使用下载的 MIB,您可能需要注释掉以下行/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 :

只需注释掉最后一行或将其替换为mibs ALL,或~/.snmp/snmp.conf使用一行创建mibs ALL,您就可以自动使用下载的 MIB。

还有供应商特定的 MIB,它可以描述特定于供应商的 OID,以及特定于特定品牌和型号的设备的更多信息。通常,您可以从供应商的支持下载站点获取这些内容,通常作为某些特定于供应商的管理包的一部分。


对于check_snmp,您需要使用-o(小写) 选项。例如,要监控网络接口上入站传输的数据量ens3,您应该运行:

./check_snmp -H localhost -C public -P 2c -O -o iso.3.6.1.2.1.31.1.1.1.6.2

或者如果您安装了 MIB:

./check_snmp -H localhost -C public -P 2c -O -o IF-MIB::ifHCInOctets.2

对于出站传输的数据:

./check_snmp -H localhost -C public -P 2c -O -o iso.3.6.1.2.1.31.1.1.1.10.2

或者使用 MIB:

./check_snmp -H localhost -C public -P 2c -O -o IF-MIB::ifHCOutOctets.2

相关内容