4 自动发现SNMP OIDs

概述

在本章节中,我们将在交换机上执行一个SNMP 发现

从Zabbix server/proxy 6.4开始,支持 SNMP OIDs 这种发现方法。

监控项键值

创建一个SNMP监控项并在监控项键值字段使用以下 SNMP OID :

  1. walk[1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3]

4 自动发现SNMP OIDs - 图1

此监控项将对参数中指定的 OID (1.3.6.1.2.1.2.2.1.2, 1.3.6.1.2.1.2.2.1.3)执行 snmpwalk,然后返回一个与值拼接的列表, 例如:

  1. .1.3.6.1.2.1.2.2.1.2.1 = STRING: "lo"
  2. .1.3.6.1.2.1.2.2.1.2.2 = STRING: "ens33"
  3. .1.3.6.1.2.1.2.2.1.2.3 = STRING: "ens37"
  4. .1.3.6.1.2.1.2.2.1.3.1 = INTEGER: 24
  5. .1.3.6.1.2.1.2.2.1.3.2 = INTEGER: 6
  6. .1.3.6.1.2.1.2.2.1.3.3 = INTEGER: 6

依赖发现规则

进到模板/主机上的自动发现规则。单击页面右上角的 创建发现规则

自动发现规则 选项中填写所需的详细信息:

  • 监控项类型选择 相关项目
  • 选择之前创建的 SNMP walk 监控项作为主监控项
  • 用有意义的值配置监控项名称和键值

4 自动发现SNMP OIDs - 图2

预处理 选项中, 选择 SNMP walk to JSON 预处理步骤.

4 自动发现SNMP OIDs - 图3

在字段名称中指定有效的 LLD 宏名称。选择相应的 OID 路径以从发现值。

该规则将发现实体并设置如下:

  • {#IFDESCR} 宏设置为 lo, ens33, 和 ens37;
  • {#IFTYPE} 宏设置为 24, 6, 和 6.

内置宏 {#SNMPINDEX} 表示已发现实体的索引。所发现的实体按 {#SNMPINDEX} 宏的值分组: 1, 23:

  1. [
  2. {
  3. "{#SNMPINDEX}": "1",
  4. "{#IFDESCR}": "lo",
  5. "{#IFTYPE}": "24"
  6. },
  7. {
  8. "{#SNMPINDEX}": "2",
  9. "{#IFDESCR}": "ens33",
  10. "{#IFTYPE}": "6"
  11. },
  12. {
  13. "{#SNMPINDEX}": "3",
  14. "{#IFDESCR}": "ens37",
  15. "{#IFTYPE}": "6"
  16. }
  17. ]

如果一个实体没有指定的 OID,那么该实体的相应宏将被省略。.

监控项,触发器,图形原型

必须使用自动发现规则中的宏来创建 相关项目 类型监控项原型。

相关项目监控项从 walk[] 主监控项中获取值。因此,不需要让每个自动发现监控项单独再去轮询 SNMP 设备。

触发器和图形原型也可以通过使用自动发现规则中的宏来创建。.

被发现的实体

当服务器运行时,它将根据 SNMP 发现规则返回的值创建真实的依赖项、触发器和图表。