5 低级别自动发现宏

概述

[low-level] (/manual/discovery/low_level_discovery)中使用了一种宏发现](LLD) 功能:

· {#MACRO}

它是一个在 LLD 规则中使用并返回实际值的宏文件系统名称、网络接口、SNMP OID 等。

这些宏可用于创建监控项、触发器和图形原型。然后,当发现真正的文件系统时,网络接口等,这些宏被替换为实数值并且是创建真实监控项、触发器和图表的基础。

这些宏也用于创建主机和主机组 prototypes在虚拟机 发现 中。

一些低级别自动发现宏与 LLD “预打包”Zabbix 中的函数 - {#FSNAME}, {#FSTYPE}, {#IFNAME}, {#SNMPINDEX},{#SNMPVALUE}。然而,遵守这些名称不是强制性的,当创建一个自定义低级别自动发现规则。然后您可以使用任何其他 LLD 宏名称和参考那个名字。

支持的位置

可以使用 LLD 宏:

  • 在低级别自动发现规则过滤器中
  • 对于监控项原型
    • 姓名
    • 关键参数
    • 单元
    • 更新间隔1
    • -超时1
    • 历史存储期1
    • 趋势存储期1
    • 监控项值预处理步骤
    • SNMP OID
    • IPMI 传感器领域
    • 计算监控项公式
    • SSH 脚本和 Telnet 脚本
    • 数据库监控SQL查询
    • JMX 监控项端点字段
    • 描述
    • HTTP agent URL 字段
    • HTTP agent HTTP 查询字段字段
    • HTTP agent请求正文字段
    • HTTP agent所需的状态代码字段
    • HTTP agent标头字段键和值
    • HTTP agent HTTP 认证用户名字段
    • HTTP agent HTTP 认证密码字段
    • HTTP agent HTTP agent字段
    • HTTP agent HTTP SSL 证书文件字段
    • HTTP agent HTTP SSL 密钥文件字段
    • HTTP agent HTTP SSL 密钥密码字段
    • 标签
  • 用于触发器原型
    • 姓名
    • 运营数据
    • 表达式(仅在常量和函数参数中)
    • 网址
    • 描述
    • 标签
  • 对于图形原型
    • 姓名
  • 对于主机原型
    • 姓名
    • 可见名称
    • 自定义接口字段:IP、DNS、端口、SNMP v1/v2 社区、 SNMP v3 上下文名称、SNMP v3 安全名称、SNMP v3 身份验证密码,SNMP v3 隐私密码
    • 主机组原型名称
    • 主机标签值
    • 主机宏值
    • (参见完整列表)

在所有这些地方,LLD 宏都可以在静态用户 macro上下文

使用宏函数

低级别自动发现宏支持宏功能(在低级别自动发现规则过滤器),允许提取某个部分使用正则表达式的宏值。

例如,您可能想要提取客户名称和接口用于事件标记的以下 LLD 宏中的编号:

· {#IFALIAS}=customername_1

为此,可以将 regsub 宏函数与触发器原型的事件标签值字段:

5 低级别自动发现宏 - 图1

请注意,未引用的监控项中不允许使用逗号 key参数,所以必须引用包含宏函数的参数。反斜杠(\) 字符应用于转义范围。例子:

  1. net.if.in["{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \1)}",bytes]

有关宏函数语法的更多信息,请参阅:宏函数

自 Zabbix 以来,低级别自动发现宏支持宏功能4.0。

脚注

1 在标有 1 的字段中,单个宏必须填充整个字段。一个或多个字段中的多个宏不支持与文本混合。