5 SNMP OID的发现(传统)

概述

在本节中,我们将在交换机上执行SNMP discovery

监控项键

与 file 系统和网络接口发现不同,监控项 不一定必须具有 "snmp.discovery" 键 —— SNMP 监控项 类型的 agent 即可满足需求。

要配置发现规则,请执行以下操作:

  • 转至:数据采集模板
  • 在相应模板的行中点击 发现

  • 点击屏幕右上角的 创建发现规则
  • 按照下图所示填写发现规则表单

所有必填字段均以红色星号标记。

要发现的OID在SNMP OID字段中以如下格式定义:discovery[{#MACRO1}, oid1, {#MACRO2}, oid2, …,]

其中 {#MACRO1}, {#MACRO2} … 是有效的LLD宏名称,oid1, oid2... 是能够为这些宏生成有意义值的OID。一个内置宏 {#SNMPINDEX}(包含发现的OID索引)将应用于发现的实体。发现的实体将根据 {#SNMPINDEX} 宏值进行分组。

为了更好地理解,我们对交换机执行几个snmpwalk命令:

$ snmpwalk -v 2c -c public 192.168.1.1 IF-MIB::ifDescr
       IF-MIB::ifDescr.1 = string: WAN
       IF-MIB::ifDescr.2 = string: LAN1
       IF-MIB::ifDescr.3 = string: LAN2
       
       $ snmpwalk -v 2c -c public 192.168.1.1 IF-MIB::ifPhysAddress
       IF-MIB::ifPhysAddress.1 = string: 8:0:27:90:7a:75
       IF-MIB::ifPhysAddress.2 = string: 8:0:27:90:7a:76
       IF-MIB::ifPhysAddress.3 = string: 8:0:27:2b:af:9e

并将SNMP OID设置为: discovery[{#IFDESCR}, ifDescr, {#IFPHYSADDRESS}, ifPhysAddress]

现在,该规则将发现具有以下宏的实体:{#IFDESCR} 宏分别设置为 WANLAN1LAN2,{#IFPHYSADDRESS} 宏分别设置为 8:0:27:90:7a:758:0:27:90:7a:768:0:27:2b:af:9e,{#SNMPINDEX} 宏分别设置为发现的OID索引 123

[
           {
               "{#SNMPINDEX}": "1",
               "{#IFDESCR}": "WAN",
               "{#IFPHYSADDRESS}": "8:0:27:90:7a:75"
           },
           {
               "{#SNMPINDEX}": "2",
               "{#IFDESCR}": "LAN1",
               "{#IFPHYSADDRESS}": "8:0:27:90:7a:76"
           },
           {
               "{#SNMPINDEX}": "3",
               "{#IFDESCR}": "LAN2",
               "{#IFPHYSADDRESS}": "8:0:27:2b:af:9e"
           }
       ]

If an entity does not have the specified OID, then the corresponding macro will be omitted for this entity. For example if we have the following data:

ifDescr.1 "Interface #1"
       ifDescr.2 "Interface #2"
       ifDescr.4 "Interface #4"
       
       ifAlias.1 "eth0"
       ifAlias.2 "eth1"
       ifAlias.3 "eth2"
       ifAlias.5 "eth4"

Then in this case SNMP discovery discovery[{#IFDESCR}, ifDescr, {#IFALIAS}, ifAlias] will return the following structure:

{.java}
       [
           {
               "{#SNMPINDEX}": 1,
               "{#IFDESCR}": "Interface #1",
               "{#IFALIAS}": "eth0"
           },
           {
               "{#SNMPINDEX}": 2,
               "{#IFDESCR}": "Interface #2",
               "{#IFALIAS}": "eth1"
           },
           {
               "{#SNMPINDEX}": 3,
               "{#IFALIAS}": "eth2"
           },
           {
               "{#SNMPINDEX}": 4,
               "{#IFDESCR}": "Interface #4"
           },
           {
               "{#SNMPINDEX}": 5,
               "{#IFALIAS}": "eth4"
           }
       ]

监控项原型

以下截图说明了我们如何在 监控项 中使用这些宏 原型:

您可以根据需要create任意数量的监控项原型:

触发器原型

以下截图说明了我们如何在触发器原型中使用这些宏:

图形原型

以下截图说明了如何在图形原型中使用这些宏:

我们的发现规则概览:

发现的实体

当服务器运行时,它将基于SNMP发现规则返回的值来create真实的监控项、触发器和图形。在主机配置中,它们会带有橙色链接,指向其来源的发现规则。